{ "info": { "author": "Martin P. Hellwig", "author_email": "martin.hellwig@gmail.com", "bugtrack_url": null, "classifiers": [ "Programming Language :: Python :: 3" ], "description": ".. image:: https://img.shields.io/codeship/e8d9f750-264b-0134-0de7-62f9de04cc38/default.svg\n :target: https://bitbucket.org/hellwig/django-cenvars\n.. image:: https://coveralls.io/repos/bitbucket/hellwig/django-cenvars/badge.svg?branch=default \n :target: https://coveralls.io/bitbucket/hellwig/django-cenvars?branch=default\n.. image:: https://img.shields.io/pypi/v/django-cenvars.svg\n :target: https://pypi.python.org/pypi/django-cenvars\n.. image:: https://img.shields.io/badge/Donate-PayPal-blue.svg\n :target: https://paypal.me/MartinHellwig\n.. image:: https://img.shields.io/badge/Donate-Patreon-orange.svg\n :target: https://www.patreon.com/hellwig\n \n##############\ndjango-cenvars\n##############\n\nWhat is it?\n===========\nDjango Cenvars is the reference implementation of cenvars, the Centralised\nEnvironment Variables Service. Cenvars describes a method by which a machine\nfetches and sets environmental variables that are stored on a central server.\n\n\nWhat problem does it solve?\n===========================\nWhen developing server side applications you often have to store username and\npasswords for the interaction with other services. As storing these security\nsensitive information in the repository is a huge risk, developers often have to\nresort to either having a non-versioned secret file or store these in the \nenvironment variables. Both solutions provide a problem with management of these\ndata points. django-cenvars mitigates the management side of these problems by\nrequiring only the cenvars connection details to be stored in the environment.\nAll other variables can than be resolved via this service.\n\nThe Protocol\n============\n\nOverview\n--------\nFor encryption we use both RSA and AES, for AES a 256 bit key is used which is\nencrypted with an 2048 bit RSA key. \nThe RSA is an asymmetric key, the decryption key (Private key) is used by the\nclient, whilst the encryption key (Public key) is used by the server.\n\nPrior to sending the 'data' to the client, the server creates a new 256 bit AES\nkey. This key is used to encrypt the text block and than is encrypter with the\nRSA encryption key. The resulting blob is prepended to the \n\n\n> json dict > zip > AES encrypt > \n \n\n\n> https://example.com/cenvars/?identifier=hexdigest\n< BLOB\n\n \n\n(this is the hexdigest of the N value of\nan RSA key).\n\n\n\n\nCaveat\n-------\nIntroducing single points of failure in your architecture should not be\nundertaken lightly, unless having a centralised variables services makes sense\nin your setup, I would recommend against using this service.\n \nThe cryptography used in the library (RSA and AES) are there to provide a\nbarrier for accidental leaking of the raw file data, however the access keys are\nin the end stored on the machines themselves, thus having login access to the\nclient machine will show all the environment variables of that machine.\nHaving login access to the server will reveal all environmental variables.\n\nProceed with caution, be forewarned and vigilant, you are putting all eggs into\none basket here, however unless you have another way to cryptographically\nstore and injecting environmental variables, this will be a big improvement,\nboth for security and management.\n\n\n\nHow do I install it?\n====================\n::\n\n $ pip install django-cenvars\n\n\nHow do I use it?\n================\nThis is an Django-Integrator compliant project, thus in the settings file add:\n::\n\n django_integrator.add_application('django_cenvars')\n\nYou will also need to set the following environment variables:\n\n - CENVARS_URL\n - CENVARS_KEY\n \nThe CENVARS_URL is the url where the exernal client can connect to the server\nand get it's environment variables. \n\nThe CENVARS_KEY is the encryption key used for encrypting the data in the\npersistent database. It can be generated with the following command:\n\n::\n\n python manage.py cenvars_newkey \n\n\nWhat license is this?\n=====================\nTwo-clause BSD\n\n\nHow can I get support?\n======================\nPlease use the repo's bug tracker to leave behind any questions, feedback,\nsuggestions and comments. I will handle them depending on my time and what looks\ninteresting. If you require guaranteed support please contact me via\ne-mail so we can discuss appropriate compensation.\n\n\nSigning Off\n===========\nIs my work helpful or valuable to you? You can repay me by donating via:\n\nhttps://paypal.me/MartinHellwig\n\n.. image:: https://img.shields.io/badge/PayPal-MartinHellwig-blue.svg\n :target: https://paypal.me/MartinHellwig\n :alt: Donate via PayPal.Me\n :scale: 120 %\n\n-or-\n\nhttps://www.patreon.com/hellwig\n\n.. image:: https://img.shields.io/badge/Patreon-hellwig-orange.svg\n :target: https://www.patreon.com/hellwig\n :alt: Donate via Patreon\n :scale: 120 %\n\n\nThank you!", "description_content_type": null, "docs_url": null, "download_url": "https://bitbucket.org/hellwig/django-cenvars/download/0.0.1.2.zip", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://bitbucket.org/hellwig/django-cenvars/", "keywords": "django,django-integrator", "license": "BSD", "maintainer": null, "maintainer_email": null, "name": "django-cenvars", "package_url": "https://pypi.org/project/django-cenvars/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/django-cenvars/", "project_urls": { "Download": "https://bitbucket.org/hellwig/django-cenvars/download/0.0.1.2.zip", "Homepage": "https://bitbucket.org/hellwig/django-cenvars/" }, "release_url": "https://pypi.org/project/django-cenvars/0.0.1.2/", "requires_dist": null, "requires_python": null, "summary": "Django Centralised Environment Variables Service", "version": "0.0.1.2" }, "last_serial": 2432937, "releases": { "0.0.0.1": [ { "comment_text": "", "digests": { "md5": "56b304ce8fc519579e548a161f1c11ab", "sha256": "1efec2d5a49e1561d7533f7e352963fcb2f6f295f2db73c9b1840a373e8cbd86" }, "downloads": -1, "filename": "django-cenvars-0.0.0.1.tar.gz", "has_sig": false, "md5_digest": "56b304ce8fc519579e548a161f1c11ab", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10488, "upload_time": "2016-09-18T14:34:45", "url": "https://files.pythonhosted.org/packages/a2/6c/bf82bc3cd19572c4bf84dc421c6a8e5118f791f6ea9c68a73ab2894a0335/django-cenvars-0.0.0.1.tar.gz" } ], "0.0.0.2": [ { "comment_text": "", "digests": { "md5": "9fb95f6be71732151b48c90e76082638", "sha256": "fa1bb81abfdd1f7befc2561c392322c834739fe214776a7bc9ba72e45f00f80c" }, "downloads": -1, "filename": "django-cenvars-0.0.0.2.tar.gz", "has_sig": false, "md5_digest": "9fb95f6be71732151b48c90e76082638", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10490, "upload_time": "2016-09-18T21:59:59", "url": "https://files.pythonhosted.org/packages/35/f0/89a2938aaaad89e615809234dc88406ad7c975a1753bbd8943be78663af2/django-cenvars-0.0.0.2.tar.gz" } ], "0.0.0.3": [ { "comment_text": "", "digests": { "md5": "30588bd1e31269edc047d28c2110ef9b", "sha256": "79d361eb83b42d345ae2d6e319a7fd120ef32bdc3f008d7c80ea0623f90ec2af" }, "downloads": -1, "filename": "django-cenvars-0.0.0.3.tar.gz", "has_sig": false, "md5_digest": "30588bd1e31269edc047d28c2110ef9b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10402, "upload_time": "2016-09-18T22:32:02", "url": "https://files.pythonhosted.org/packages/6c/e0/34023a764131f5f775372204864726eb80214d55e7600a27b6137aa35007/django-cenvars-0.0.0.3.tar.gz" } ], "0.0.0.4": [ { "comment_text": "", "digests": { "md5": "10d8cbf5bfad3b62234af0f887c486b3", "sha256": "ecf314da1d2151ca5e235759fcc5af0726d365e497772be7fc02141b7edab750" }, "downloads": -1, "filename": "django-cenvars-0.0.0.4.tar.gz", "has_sig": false, "md5_digest": "10d8cbf5bfad3b62234af0f887c486b3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10413, "upload_time": "2016-09-18T23:18:55", "url": "https://files.pythonhosted.org/packages/d9/2f/4d859f2607b3fa2ce5b63001c1454cdd634bdac7275fdb8bf693a61fe7e0/django-cenvars-0.0.0.4.tar.gz" } ], "0.0.0.5": [ { "comment_text": "", "digests": { "md5": "df9bfc974071e6fd0c051455db3f1e70", "sha256": "ec173c8e4f1151a7ca9e95ea77dd81ad48937af16cb9a2d07de8e705411eaa76" }, "downloads": -1, "filename": "django-cenvars-0.0.0.5.tar.gz", "has_sig": false, "md5_digest": "df9bfc974071e6fd0c051455db3f1e70", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10415, "upload_time": "2016-09-19T00:02:01", "url": "https://files.pythonhosted.org/packages/b4/15/7b5105b31c548ff9ce2df0874a6c1e2b50e1e2e05208d7002d4010a10265/django-cenvars-0.0.0.5.tar.gz" } ], "0.0.0.6": [ { "comment_text": "", "digests": { "md5": "6622c3d810e12881c88b675828e29915", "sha256": "ff10d3b8756b63ce267617a3a2e8c230c185e749ac202cdb3451842b18f6d458" }, "downloads": -1, "filename": "django-cenvars-0.0.0.6.tar.gz", "has_sig": false, "md5_digest": "6622c3d810e12881c88b675828e29915", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10819, "upload_time": "2016-09-20T10:39:28", "url": "https://files.pythonhosted.org/packages/26/81/aedb1e42adccebdea51366e07a4fb7171886e4d95b84147dfd792c80c3bd/django-cenvars-0.0.0.6.tar.gz" } ], "0.0.1.1": [ { "comment_text": "", "digests": { "md5": "b6935e014c40555ec667fce4bb68cb9e", "sha256": "a0a81a9b050020229c1edd633c84c8d672d8e2b1b5e042167e845ab3fcd55773" }, "downloads": -1, "filename": "django-cenvars-0.0.1.1.tar.gz", "has_sig": false, "md5_digest": "b6935e014c40555ec667fce4bb68cb9e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10131, "upload_time": "2016-09-21T11:51:14", "url": "https://files.pythonhosted.org/packages/f6/b1/2164636127721333cece20b250d01eed5669157e642cf0650ef4871f84d1/django-cenvars-0.0.1.1.tar.gz" } ], "0.0.1.2": [ { "comment_text": "", "digests": { "md5": "593963eaa5d6618f0e81a3f99b3c4557", "sha256": "11ceb899afe46af27c92206521f4d132b134d3dd193dbdcefc11844e8d4db443" }, "downloads": -1, "filename": "django-cenvars-0.0.1.2.tar.gz", "has_sig": false, "md5_digest": "593963eaa5d6618f0e81a3f99b3c4557", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10410, "upload_time": "2016-10-31T14:12:07", "url": "https://files.pythonhosted.org/packages/12/ba/84ded4e679ec42327410131fd5df893ceb4759069b5409c7dc1df811cd39/django-cenvars-0.0.1.2.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "593963eaa5d6618f0e81a3f99b3c4557", "sha256": "11ceb899afe46af27c92206521f4d132b134d3dd193dbdcefc11844e8d4db443" }, "downloads": -1, "filename": "django-cenvars-0.0.1.2.tar.gz", "has_sig": false, "md5_digest": "593963eaa5d6618f0e81a3f99b3c4557", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10410, "upload_time": "2016-10-31T14:12:07", "url": "https://files.pythonhosted.org/packages/12/ba/84ded4e679ec42327410131fd5df893ceb4759069b5409c7dc1df811cd39/django-cenvars-0.0.1.2.tar.gz" } ] }