acme-config
Description
System to store application configuration
Motivation
To support a release system that can store references to various application artifacts we need a config system that can store environment variables needed by a specific application (i.e. what is put into .env file). Specifically, we want to make the configurations immutable so once they are refered to from a release system they won't change.
Features
- Uses AWS Parameter Store as a storage layer for parameters
- Enforces each parameter needs to be assigned to an application identifier (
app-name), an environment identifier (env) and a integer version (ver-number) - Once parameters are written with such combination of identifiers
acme-configprevents from overwriting them. - Allows to retreive parameters for a given combination of (
app-name,envandver-number) and stores it in a local file in.envfile format convenient for editing. - Allows to set parameters from
.envfile specified at a file path. - Each (app-name, env) combination can set a default version number. This can be set with
set-versioncommand - Default version can be retrieved with
get-versioncommand. Value will be put tostdout.
Example usage
Requires setup of a default AWS profile e.g. via aws sso login. Can be specified via AWS_PROFILE env var.
To set
ac set -app-name acme-config -env dev -ver-number 1 --params-path .env
To set default version
ac set-version -app-name acme-config -env dev -ver-number 1
To get default version
ac get-version -app-name acme-config -env dev
To fetch
ac fetch -app-name acme-config -env dev -ver-number 1
Will save parameters to a file acme-config.dev.1.env
Dev environment
The project comes with a python development environment. To generate it, after checking out the repo run:
chmod +x create_env.sh
Then to generate the environment (or update it to latest version based on state of uv.lock), run:
./create_env.sh
This will generate a new python virtual env under .venv directory. You can activate it via:
source .venv/bin/activate
If you are using VSCode, set to use this env via Python: Select Interpreter command.
Project template
This project has been setup with acme-project-create, a python code template library.
Required setup post use
- Enable GitHub Pages to be published via GitHub Actions by going to
Settings-->Pages-->Source - Create
releaseenvironment for GitHub Actions to enable uploads of the library to PyPi - Setup auth to PyPI for the GitHub Action implemented in
.github/workflows/release.yml: Linkuv publishdoc
Metadata
Release files for acme_config 0.0.14
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| acme_config-0.0.14.tar.gz | 5.3 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| acme_config-0.0.14-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 11.1 kB
Release files / acme_config-0.0.14.tar.gz
| Download URL | acme_config-0.0.14.tar.gz |
|---|---|
| Size | 5.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
5d0ebdb435b113a1a828a4bc2436ffde454b47e0ecc0c2402ff5ae9661ec2a3b
|
|
BLAKE2b-256 checksum How to use checksums |
381e8209b017ee7aded320f813a27ff05aed8f866a24ae57f0c7cae28e7ad4d7
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.8.8
|
Release files / acme_config-0.0.14-py3-none-any.whl
| Download URL | acme_config-0.0.14-py3-none-any.whl |
|---|---|
| Size | 5.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
e04e5de91e595efd0014fe2639f924ebf64b593197ebe285bb3f0aaefc82b00a
|
|
BLAKE2b-256 checksum How to use checksums |
05390d4150b8cddf18a6e3c244bb80bec3c2146fd240a8f4aec40c231eca8f79
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.8.8
|
Security for acme_config 0.0.14
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.