[![image](https://github.com/okfn/ckanext-envvars/actions/workflows/test.yml/badge.svg)](https://github.com/okfn/ckanext-envvars/actions)
ckanext-envvars
===============
This CKAN extension checks for environmental variables conforming to an
expected format and updates the corresponding CKAN config settings with
its value.
For the extension to correctly identify which env var keys map to the
format used for the config object, env var keys should be formatted in
the following way:
1) All uppercase
2) Replace periods (\'.\') with two underscores (\'\_\_\')
3) Keys must begin with \'CKAN\' or \'CKANEXT\'
Some examples:
ckan.site_id --> CKAN__SITE_ID
ckanext.s3filestore.aws_bucket_name --> CKANEXT__S3FILESTORE__AWS_BUCKET_NAME
For keys that don\'t normally begin with \'CKAN\', add \'CKAN\_\_\_\' (3
underscores) to the beginning to help the extension identify these keys,
e.g.:
sqlalchemy.url --> CKAN___SQLALCHEMY__URL
beaker.session.secret --> CKAN___BEAKER__SESSION__SECRET
Starting from CKAN 2.10 (and ckanext-envvars 0.0.4), if a configuration option is defined using CKAN's
[configuration declaration](https://docs.ckan.org/en/latest/maintaining/configuration.html#config-declaration)
the key is not further processed. This allows to keep eg upper case setttings like SECRET_KEY, WTF_CSRF_ENABLED, e.g:
SECRET_KEY --> CKAN___SECRET_KEY
WTF_CSRF_ENABLED --> CKAN___WTF_CSRF_ENABLED
Requirements
------------
Tested in CKAN 2.7, CKAN 2.8, CKAN 2.9 and CKAN 2.10, but may work in other
versions.
To ensure all config settings are overridden by env var values,
`envvars` must be the last plugin entry in the `ckan.plugins` list (see
\'Installation\' below).
Installation
------------
To install ckanext-envvars:
1. Activate your CKAN virtual environment, for example:
. /usr/lib/ckan/default/bin/activate
2. Install the ckanext-envvars Python package into your virtual
environment:
pip install ckanext-envvars
3. Add `envvars` to the `ckan.plugins` setting in your CKAN config file
(by default the config file is located at
`/etc/ckan/default/production.ini`).
4. Restart CKAN. For example if you\'ve deployed CKAN with Apache on
Ubuntu:
sudo service apache2 reload
Development Installation
------------------------
To install ckanext-envvars for development, activate your CKAN
virtualenv and do:
git clone https://github.com/okfn/ckanext-envvars.git
cd ckanext-envvars
python setup.py develop
pip install -r dev-requirements.txt
Running the Tests
-----------------
They follow the guidelines for [testing CKAN extensions](https://docs.ckan.org/en/2.8/extensions/testing-extensions.html#testing-extensions).
To run the tests, do:
> pytest --ckan-ini=test.ini ckanext/envvars/tests.py
#### ckanext-envvars on PyPI
ckanext-envvars is availabe on PyPI as [ckanext-envvars](https://pypi.org/project/ckanext-envvars).
##### Releasing a New Version of ckanext-envvars
To release a new version of this CKAN extension you should:
- Update the `setup.py` file with a new version number (N.N.N)
- Tag this repo with the new version
```
git tag vN.N.N
git push --tags
```
- Create a source distribution of the new version:
```
python setup.py sdist
```
- Set up twine. The `$HOME/.pypirc` file must containg the following:
```
[pypi]
username = __token__
password = <the token value, including the `pypi-` prefix>
```
- Upload the new version to PyPI:
```
pip install twine
twine check dist/*
twine upload dist/*
```
Raw data
{
"_id": null,
"home_page": "https://github.com/okfn/ckanext-envvars",
"name": "ckanext-envvars",
"maintainer": null,
"docs_url": null,
"requires_python": null,
"maintainer_email": null,
"keywords": "CKAN config",
"author": "Brook Elgie",
"author_email": "brook.elgie@okfn.org",
"download_url": "https://files.pythonhosted.org/packages/e9/8d/a192dc523ac207cf78cf81d62b7a96c324b27847218f8dcb698b1b3f8269/ckanext_envvars-0.0.6.tar.gz",
"platform": null,
"description": "[![image](https://github.com/okfn/ckanext-envvars/actions/workflows/test.yml/badge.svg)](https://github.com/okfn/ckanext-envvars/actions)\n\nckanext-envvars\n===============\n\nThis CKAN extension checks for environmental variables conforming to an\nexpected format and updates the corresponding CKAN config settings with\nits value.\n\nFor the extension to correctly identify which env var keys map to the\nformat used for the config object, env var keys should be formatted in\nthe following way:\n\n1) All uppercase\n2) Replace periods (\\'.\\') with two underscores (\\'\\_\\_\\')\n3) Keys must begin with \\'CKAN\\' or \\'CKANEXT\\'\n\nSome examples:\n\n ckan.site_id --> CKAN__SITE_ID\n ckanext.s3filestore.aws_bucket_name --> CKANEXT__S3FILESTORE__AWS_BUCKET_NAME\n\nFor keys that don\\'t normally begin with \\'CKAN\\', add \\'CKAN\\_\\_\\_\\' (3\nunderscores) to the beginning to help the extension identify these keys,\ne.g.:\n\n sqlalchemy.url --> CKAN___SQLALCHEMY__URL\n beaker.session.secret --> CKAN___BEAKER__SESSION__SECRET\n\n\nStarting from CKAN 2.10 (and ckanext-envvars 0.0.4), if a configuration option is defined using CKAN's\n[configuration declaration](https://docs.ckan.org/en/latest/maintaining/configuration.html#config-declaration)\nthe key is not further processed. This allows to keep eg upper case setttings like SECRET_KEY, WTF_CSRF_ENABLED, e.g:\n\n SECRET_KEY --> CKAN___SECRET_KEY\n WTF_CSRF_ENABLED --> CKAN___WTF_CSRF_ENABLED\n\n\n\nRequirements\n------------\n\nTested in CKAN 2.7, CKAN 2.8, CKAN 2.9 and CKAN 2.10, but may work in other\nversions.\n\nTo ensure all config settings are overridden by env var values,\n`envvars` must be the last plugin entry in the `ckan.plugins` list (see\n\\'Installation\\' below).\n\nInstallation\n------------\n\nTo install ckanext-envvars:\n\n1. Activate your CKAN virtual environment, for example:\n\n . /usr/lib/ckan/default/bin/activate\n\n2. Install the ckanext-envvars Python package into your virtual\n environment:\n\n pip install ckanext-envvars\n\n3. Add `envvars` to the `ckan.plugins` setting in your CKAN config file\n (by default the config file is located at\n `/etc/ckan/default/production.ini`).\n\n4. Restart CKAN. For example if you\\'ve deployed CKAN with Apache on\n Ubuntu:\n\n sudo service apache2 reload\n\nDevelopment Installation\n------------------------\n\nTo install ckanext-envvars for development, activate your CKAN\nvirtualenv and do:\n\n git clone https://github.com/okfn/ckanext-envvars.git\n cd ckanext-envvars\n python setup.py develop\n pip install -r dev-requirements.txt\n\nRunning the Tests\n-----------------\n\nThey follow the guidelines for [testing CKAN extensions](https://docs.ckan.org/en/2.8/extensions/testing-extensions.html#testing-extensions).\n\nTo run the tests, do:\n\n> pytest --ckan-ini=test.ini ckanext/envvars/tests.py\n\n\n#### ckanext-envvars on PyPI\n\nckanext-envvars is availabe on PyPI as [ckanext-envvars](https://pypi.org/project/ckanext-envvars). \n\n##### Releasing a New Version of ckanext-envvars\n\n\nTo release a new version of this CKAN extension you should:\n\n - Update the `setup.py` file with a new version number (N.N.N)\n - Tag this repo with the new version\n\n```\ngit tag vN.N.N\ngit push --tags\n```\n\n - Create a source distribution of the new version:\n\n```\npython setup.py sdist\n```\n\n - Set up twine. The `$HOME/.pypirc` file must containg the following:\n\n```\n[pypi]\nusername = __token__\npassword = <the token value, including the `pypi-` prefix>\n```\n\n - Upload the new version to PyPI:\n\n```\npip install twine\ntwine check dist/*\ntwine upload dist/*\n```\n",
"bugtrack_url": null,
"license": "AGPL",
"summary": "CKAN configuration settings available from env vars",
"version": "0.0.6",
"project_urls": {
"Homepage": "https://github.com/okfn/ckanext-envvars"
},
"split_keywords": [
"ckan",
"config"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "5650e4375319f747f485e3061451a27f4d7582db3df8c5d91a0e9ef4755be82b",
"md5": "684327533949bccdd4618a0fb4a14f91",
"sha256": "e2f8d05806be05f655f7e548c87672a61c6933343898d62bb4e4d99088dc4e07"
},
"downloads": -1,
"filename": "ckanext_envvars-0.0.6-py3-none-any.whl",
"has_sig": false,
"md5_digest": "684327533949bccdd4618a0fb4a14f91",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 18864,
"upload_time": "2024-09-09T11:10:30",
"upload_time_iso_8601": "2024-09-09T11:10:30.954482Z",
"url": "https://files.pythonhosted.org/packages/56/50/e4375319f747f485e3061451a27f4d7582db3df8c5d91a0e9ef4755be82b/ckanext_envvars-0.0.6-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "e98da192dc523ac207cf78cf81d62b7a96c324b27847218f8dcb698b1b3f8269",
"md5": "b6b65090eaaf6c855cb2f631b9fb33f8",
"sha256": "77a9b487cdff96f43b5a7053e6f30304e02c4e3b8bcc0e5fb9e656900d3f0a67"
},
"downloads": -1,
"filename": "ckanext_envvars-0.0.6.tar.gz",
"has_sig": false,
"md5_digest": "b6b65090eaaf6c855cb2f631b9fb33f8",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 19089,
"upload_time": "2024-09-09T11:10:32",
"upload_time_iso_8601": "2024-09-09T11:10:32.033984Z",
"url": "https://files.pythonhosted.org/packages/e9/8d/a192dc523ac207cf78cf81d62b7a96c324b27847218f8dcb698b1b3f8269/ckanext_envvars-0.0.6.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-09-09 11:10:32",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "okfn",
"github_project": "ckanext-envvars",
"travis_ci": false,
"coveralls": true,
"github_actions": true,
"lcname": "ckanext-envvars"
}