Merge pull request #486 from begriffs/improved-usage

Adjust usage message to indicate required arguments
This commit is contained in:
Joe Nelson
2016-02-06 18:02:09 -08:00
4 changed files with 9 additions and 9 deletions
+1
View File
@@ -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
+3 -3
View File
@@ -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>
+4 -5
View File
@@ -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
View File
@@ -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