Merge pull request #486 from begriffs/improved-usage
Adjust usage message to indicate required arguments
This commit is contained in:
@@ -6,6 +6,7 @@ This project adheres to [Semantic Versioning](http://semver.org/).
|
|||||||
## Unreleased
|
## Unreleased
|
||||||
|
|
||||||
### Fixed
|
### Fixed
|
||||||
|
- Improved usage screen - @begriffs
|
||||||
- Reject non-POSTs to rpc endpoints - @begriffs
|
- Reject non-POSTs to rpc endpoints - @begriffs
|
||||||
- Throw an error for OPTIONS on nonexistent tables - @calebmer
|
- Throw an error for OPTIONS on nonexistent tables - @calebmer
|
||||||
|
|
||||||
|
|||||||
@@ -65,7 +65,7 @@ If you want to run the test suite, stack can do that too: `stack test`.
|
|||||||
### Running the Server
|
### Running the Server
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
postgrest postgres://user:pass@host:port/db [flags]
|
postgrest postgres://user:pass@host:port/db -a anon_user [other flags]
|
||||||
```
|
```
|
||||||
|
|
||||||
The user in the connection string is the "authenticator role," i.e.
|
The user in the connection string is the "authenticator role," i.e.
|
||||||
@@ -73,14 +73,14 @@ a role which is used temporarily to switch into other roles depending
|
|||||||
on the authentication request JWT. For simple API's you can use the
|
on the authentication request JWT. For simple API's you can use the
|
||||||
same role for authenticator and anonymous.
|
same role for authenticator and anonymous.
|
||||||
|
|
||||||
The possible flags are:
|
The complete list of options:
|
||||||
|
|
||||||
<dl>
|
<dl>
|
||||||
<dt>-p, --port</dt>
|
<dt>-p, --port</dt>
|
||||||
<dd>The port on which the server will listen for HTTP requests.
|
<dd>The port on which the server will listen for HTTP requests.
|
||||||
Defaults to 3000.</dd>
|
Defaults to 3000.</dd>
|
||||||
|
|
||||||
<dt>-a, --anonymous</dt>
|
<dt>-a, --anonymous (required)</dt>
|
||||||
<dd>The database role used to execute commands for those requests
|
<dd>The database role used to execute commands for those requests
|
||||||
which provide no JWT authorization.</dd>
|
which provide no JWT authorization.</dd>
|
||||||
|
|
||||||
|
|||||||
@@ -37,9 +37,9 @@ import Prelude
|
|||||||
-- | Data type to store all command line options
|
-- | Data type to store all command line options
|
||||||
data AppConfig = AppConfig {
|
data AppConfig = AppConfig {
|
||||||
configDatabase :: String
|
configDatabase :: String
|
||||||
, configPort :: Int
|
|
||||||
, configAnonRole :: String
|
, configAnonRole :: String
|
||||||
, configSchema :: String
|
, configSchema :: String
|
||||||
|
, configPort :: Int
|
||||||
, configJwtSecret :: Secret
|
, configJwtSecret :: Secret
|
||||||
, configPool :: Int
|
, configPool :: Int
|
||||||
, configMaxRows :: Maybe Integer
|
, configMaxRows :: Maybe Integer
|
||||||
@@ -47,11 +47,10 @@ data AppConfig = AppConfig {
|
|||||||
|
|
||||||
argParser :: Parser AppConfig
|
argParser :: Parser AppConfig
|
||||||
argParser = AppConfig
|
argParser = AppConfig
|
||||||
<$> argument str (help "database connection string" <> metavar "STRING")
|
<$> argument str (help "(REQUIRED) database connection string, e.g. postgres://user:pass@host:port/db" <> metavar "DB_URL")
|
||||||
|
<*> strOption (long "anonymous" <> short 'a' <> help "(REQUIRED) postgres role to use for non-authenticated requests" <> metavar "ROLE")
|
||||||
<*> option auto (long "port" <> short 'p' <> help "port number on which to run HTTP server" <> metavar "PORT" <> value 3000 <> showDefault)
|
|
||||||
<*> strOption (long "anonymous" <> short 'a' <> help "postgres role to use for non-authenticated requests" <> metavar "ROLE")
|
|
||||||
<*> strOption (long "schema" <> short 's' <> help "schema to use for API routes" <> metavar "NAME" <> value "public" <> showDefault)
|
<*> strOption (long "schema" <> short 's' <> help "schema to use for API routes" <> metavar "NAME" <> value "public" <> showDefault)
|
||||||
|
<*> option auto (long "port" <> short 'p' <> help "port number on which to run HTTP server" <> metavar "PORT" <> value 3000 <> showDefault)
|
||||||
<*> (secret . cs <$>
|
<*> (secret . cs <$>
|
||||||
strOption (long "jwt-secret" <> short 'j' <> help "secret used to encrypt and decrypt JWT tokens" <> metavar "SECRET" <> value "secret" <> showDefault))
|
strOption (long "jwt-secret" <> short 'j' <> help "secret used to encrypt and decrypt JWT tokens" <> metavar "SECRET" <> value "secret" <> showDefault))
|
||||||
<*> option auto (long "pool" <> short 'o' <> help "max connections in database pool" <> metavar "COUNT" <> value 10 <> showDefault)
|
<*> option auto (long "pool" <> short 'o' <> help "max connections in database pool" <> metavar "COUNT" <> value 10 <> showDefault)
|
||||||
|
|||||||
+1
-1
@@ -30,7 +30,7 @@ dbString :: String
|
|||||||
dbString = "postgres://postgrest_test_authenticator@localhost:5432/postgrest_test"
|
dbString = "postgres://postgrest_test_authenticator@localhost:5432/postgrest_test"
|
||||||
|
|
||||||
cfg :: String -> Maybe Integer -> AppConfig
|
cfg :: String -> Maybe Integer -> AppConfig
|
||||||
cfg conStr = AppConfig conStr 3000 "postgrest_test_anonymous" "test" (secret "safe") 10
|
cfg conStr = AppConfig conStr "postgrest_test_anonymous" "test" 3000 (secret "safe") 10
|
||||||
|
|
||||||
cfgDefault :: AppConfig
|
cfgDefault :: AppConfig
|
||||||
cfgDefault = cfg dbString Nothing
|
cfgDefault = cfg dbString Nothing
|
||||||
|
|||||||
Reference in New Issue
Block a user