escape-inventory [CONFIG_FILE]
The Escape Inventory can be configured using a simple JSON or YAML file (default /etc/escape-inventory/config.json
), and/or environment variables. If the provided configuration file does not exist the program falls back to the following default configuration:
{
"port": "7770",
"database": "ql",
"database_settings": {
"path": "/var/lib/escape/inventory.db"
},
"storage_backend": "local",
"storage_settings": {
"path": "/var/lib/escape/releases"
}
}
This configures the Inventory with an ql database and a local file system storage backend, which is the recommended way to run the Inventory for development purposes. For production use we currently support a Google Cloud Storage backend and a Postgresql database.
JSON/YAML field | Environment Variable | Default | Description |
---|---|---|---|
port | PORT | 7770 | The port to listen on. |
database | DATABASE | ql | The database to use (one of: ql , postgres ). |
database_settings . path | DATABASE_SETTINGS_PATH | /var/lib/escape/inventory.db | The path to the database. Only relevant for the ql backend. |
database_settings . postgres_url | DATABASE_SETTINGS_POSTGRES_URL | The URL to a postgres database. For more information see the documentation for the postgres backend. | |
storage_backend | STORAGE_BACKEND | local | The storage backend to use (one of: local , gcs ). |
storage_settings . path | STORAGE_SETTINGS_PATH | /var/lib/escape/releases/ | Where packages will be stored. Only relevant for the the local storage backend. |
storage_settings . bucket | STORAGE_SETTINGS_BUCKET | The bucket where packages will be stored. Only relevant for the gcs storage backend. | |
storage_settings . credentials | STORAGE_SETTINGS_CREDENTIALS | This path points to the credentials for the GCS bucket. For more information see the documentation for the GCS storage backend. | |
basic_auth_username | BASIC_AUTH_USERNAME | escape | The username for basic authentication. Only used when basic_auth_password is set. |
basic_auth_password | BASIC_AUTH_PASSWORD | The password for basic authentication. When set this will require HTTP Basic Authentication on all requests. |
The storage backends are used to store and retrieve uploaded packages.
The default way to use the Inventory is to have it store uploaded packages on the local file system. The destination path can be configured using the database_settings.path
variable:
{
"storage_backend": "local",
"storage_settings": {
"path": "/var/lib/escape/releases"
}
}
Using environment variables:
STORAGE_BACKEND=local
STORAGE_SETTINGS_PATH=/var/lib/escape/releases
Stores uploaded packages in Google Cloud Storage. The credentials
variable is optional, but should point to an existing service account json file if provided. The service account should have the “Storage -> Storage Admin” role. If no credentials are provided the Inventory is assumed to be running in GCP under the storage-rw
scope.
{
"storage_backend": "gcs",
"storage_settings": {
"bucket": "my-bucket",
"credentials": "/my/secret/service/credentials.json",
}
}
Or using environment variables:
export STORAGE_BACKEND=gcs
export STORAGE_SETTINGS_BUCKET=my-bucket
export STORAGE_SETTINGS_CREDENTIALS=/my/secret/service/credentials.json
This is the default database, which will work out of the box (provided the path is accessible) and will store the data on the local disk. The path is configurable using the database_settings.path
variable:
{
"database": "ql",
"database_settings": {
"path": "/var/lib/escape/inventory.db"
}
}
Or using environment variables:
export DATABASE=ql
export DATABASE_SETTINGS_PATH=/var/lib/escape/inventory.db
Postgresql can be configured using the postgres_url
variable. Please see pq for the full connection string parameters.
{
"database": "postgres",
"database_settings": {
"postgres_url": "postgres://user:pass@localhost/database?sslmode=disable"
}
}
Or using environment variables:
export DATABASE=postgres
export DATABASE_SETTINGS_POSTGRES_URL=postgres://user:pass@localhost/database?sslmode=disable