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 ...@@ -93,20 +93,23 @@ Finally, there are additional specifics that some of the collectors will need fo
## Environmental Variables needed for the API ## Environmental Variables needed for the API
The API needs the following environmental variables for the setup: The API needs the following environmental variables for the setup:
- `DB_USER`: the postgres database user. - `DB_USER`: The postgres database user.
- `DB_PASS`: the postgres database user's password. - `DB_PASS`: The postgres database user's password.
- `DB_HOST`: the postgres database host. - `DB_HOST`: The postgres database host.
- `DB_PORT`: the postgres database port. - `DB_PORT`: The postgres database port.
- `DB_NAME`: the postgres database name. - `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_ENABLED`: Determines whether the SSO is enabled or not. Defaults to `true`.
- `SSO_ADMIN_GROUP`: the SSO group name for admin access. - `SSO_ADMIN_GROUP`: The SSO group name for admin access.
- `SSO_LEADERSHIP_GROUP`: the SSO group name for leadership 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_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`. - `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_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_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. - `RATE_LIMITER_ENABLED`: Determines whether the rate limiter is enabled or not. Defaults to `true`.
- `MODE`: the mode of operation for the app (can be "production" or "development") - `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 ### Experimental features that can be enabled
The API can enable experimental features by setting the variable name that describes the feature The API can enable experimental features by setting the variable name that describes the feature
... ...
......