Added
- Fidelius mode - Alviss now reads the `ALVISS_FIDELIUS_MODE` environment
variable to determine one of these Fidelius modes available:
- `ON_DEMAND` (**default**): Fidelius is only ever loaded (i.e. an import is
attempted) if fidelius expressions (`__FID__`) are encountered when reading
a config
- `ENABLED`: Alviss tries to import fidelius on startup and raises an
`ImportError` if it fails
- `DISABLED`: All fidelius expressions (`__FID__`) are simply ignored and
left unparsed
- `SUBSTITUTE_ENV`: All fidelius expressions (`__FID__`) are treated as if
they are environment variable expressions (`__ENV__`)
- `MOCK`: Fidelius will be initialised using its mock implementation,
which uses a singleton in-memory datastore, making this useful for testing
- Error reporting on the keys that have Fidelius tags in them in case of a
Fidelius related error _(like access problems or if fidelius is not installed)_
- Fidelius can now grab config values from the config files Alviss is
reading via the `__fidelius__` special key (e.g. `ALVISS_FIDELIUS_MODE`
and any `kwargs` that `AwsParamStoreRepo` takes.
Changed
- Migrated the project from our internal repos to Github and Pypi
- Alviss now ships by default without [fidelius](https://pypi.org/project/fidelius/)
support and runs in `ALVISS_FIDELIUS_MODE=ON_DEMAND` and this only tries
to import fidelius if a `__FID__` expression is encountered
- Installing Alviss with built in fidelius support can still be done via
`pip install alviss[fidelius]` plus all the `boto3` stuff and such
- Bumped the `fidelius` version to 1.0.0 so now all the new environment
variables available in that version can be used to configure fidelius in
Alviss, e.g. by setting `FIDELIUS_AWS_ENDPOINT_URL` to point to a
[LocalStack](https://github.com/localstack/localstack) container for testing
and/or development.
Fixed
- An issue where the default values of environment variables could not
contain any whitespaces (like a simple space)