UNCLASSIFIED - NO CUI

Update Administrator Guide authored by Mark Howard's avatar Mark Howard
......@@ -93,20 +93,23 @@ Finally, there are additional specifics that some of the collectors will need fo
## Environmental Variables needed for the API
The API needs the following environmental variables for the setup:
- `DB_USER`: the postgres database user.
- `DB_PASS`: the postgres database user's password.
- `DB_HOST`: the postgres database host.
- `DB_PORT`: the postgres database port.
- `DB_NAME`: the postgres database name.
- `SSO_ENABLED`: determines whether the SSO is enabled or not (can only be one of "true" or "false" as value).
- `SSO_ADMIN_GROUP`: the SSO group name for admin access.
- `SSO_LEADERSHIP_GROUP`: the SSO group name for leadership access.
- `SSO_GROUPS_KEY`: the key found in user token indicating the list of groups a user is part of (this can include `SSO_ADMIN_GROUP`, `SSO_LEADERSHIP_GROUP` values in the list). This list will determine what SSO permissions a user has. For example, if `SSO_GROUPS_KEY="foo"` and `SSO_ADMIN_GROUP="bar"` is set, then the API will try and check the user token (as a sample token json `{"foo": ["bar"]}`) to determine if user is admin which in this case the user is admin.
- `SSO_USERNAME_KEY`: the key found in user token indicating the user's username. For example, if the `SSO_USERNAME_KEY="foo"` is set, then the API would get the username by checking the token (as a sample token json `{"foo": "bar"}`) for `foo` as key. In this case, the username would be `bar`.
- `RATE_LIMITS`: how often an IP address can make requests of the API. Defaults to `300/day,50/hour`. The format can be seen here: https://flask-limiter.readthedocs.io/en/stable/configuration.html#rate-limit-string-notation
- `RATE_LIMITING_IP_WHITELIST`: a comma-delineated list of IP addresses to exempt from rate limiting.
- `OPENAPI_VERSION`: the open api version for the app to use.
- `MODE`: the mode of operation for the app (can be "production" or "development")
- `DB_USER`: The postgres database user.
- `DB_PASS`: The postgres database user's password.
- `DB_HOST`: The postgres database host.
- `DB_PORT`: The postgres database port.
- `DB_NAME`: The postgres database name.
- `SSO_ENABLED`: Determines whether the SSO is enabled or not. Defaults to `true`.
- `SSO_ADMIN_GROUP`: The SSO group name for admin access.
- `SSO_LEADERSHIP_GROUP`: The SSO group name for leadership access.
- `SSO_GROUPS_KEY`: The key found in user token indicating the list of groups a user is part of (this can include `SSO_ADMIN_GROUP`, `SSO_LEADERSHIP_GROUP` values in the list). This list will determine what SSO permissions a user has. For example, if `SSO_GROUPS_KEY="foo"` and `SSO_ADMIN_GROUP="bar"` is set, then the API will try and check the user token (as a sample token json `{"foo": ["bar"]}`) to determine if user is admin which in this case the user is admin.
- `SSO_USERNAME_KEY`: The key found in user token indicating the user's username. For example, if the `SSO_USERNAME_KEY="foo"` is set, then the API would get the username by checking the token (as a sample token json `{"foo": "bar"}`) for `foo` as key. In this case, the username would be `bar`.
- `RATE_LIMITS`: How often an IP address can make requests of the API. Defaults to `300/day,50/hour`. The format can be seen here: https://flask-limiter.readthedocs.io/en/stable/configuration.html#rate-limit-string-notation
- `RATE_LIMITING_IP_WHITELIST`: A comma-delineated list of IP addresses to exempt from rate limiting.
- `RATE_LIMITER_ENABLED`: Determines whether the rate limiter is enabled or not. Defaults to `true`.
- `CIRCUIT_BREAKER_ENABLED`: Determines whether the circuit breaker is enabled or not.
- `REQUEST_IP_HEADER`: The header containing the IP addresss of an incoming request. Used by logging, rate limiting, and circuit breaking.
- `OPENAPI_VERSION`: The open api version for the app to use.
- `MODE`: The mode of operation for the app (can be "production" or "development")
### Experimental features that can be enabled
The API can enable experimental features by setting the variable name that describes the feature
......
......