{ "info": { "author": "Nic Cheneweth", "author_email": "nic.cheneweth@thoughtworks.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "License :: OSI Approved :: MIT License", "Operating System :: POSIX :: Linux", "Programming Language :: Python :: 3" ], "description": "\n\n# secretctl\n[![CirclecI][circle-badge]][circle-repo]\n[![Test Coverage][cc-coverage-badge]][cc-coverage-repo]\n[![Maintainability][cc-maintainability-badge]][cc-maintainability-repo]\n[![PyPI version][pypy-badge]][pypy]\n[![License][license-badge]][license]\nCommand-line tool for working with aws secrets manager.\n\n[circle-badge]: https://circleci.com/gh/ncheneweth/secretctl.svg?style=svg\n[circle-repo]: https://circleci.com/gh/ncheneweth/secretctl\n[cc-coverage-badge]: https://api.codeclimate.com/v1/badges/01a1314e60921919bb12/test_coverage\n[cc-coverage-repo]: https://codeclimate.com/github/ncheneweth/secretctl/test_coverage\n[cc-maintainability-badge]: https://api.codeclimate.com/v1/badges/01a1314e60921919bb12/maintainability\n[cc-maintainability-repo]: https://codeclimate.com/github/ncheneweth/secretctl/maintainability\n[pypy-badge]: https://badge.fury.io/py/secretctl.svg\n[pypy]: https://pypi.python.org/pypi/secretctl\n[license-badge]: https://img.shields.io/badge/license-MIT-blue.svg\n[license]: https://raw.githubusercontent.com/feedyard/circleci-base-agent/master/LICENSE\n\n## Installing\n\n`secretctl` is a python package.\n\n```bash\n$ pip install secretctl\n```\n\n## Authenticating\n\n'secretctl' requires an authenticated AWS user with permissions to use the Secrets Manager, as resolved by boto3.\nThe primary example being identity settings in ~/.aws/credentials. A recommended way to do this is using `aws-vault`,\nas in:\n\n```bash\n$ aws-vault exec prod -- secretctl ..\n```\n\n## Usage\n\n### Creating and Updating Secrets\n\n```bash\n$ secretctl create \n```\n\nThis command will write a secret into the Secret Managers. If `-` is provided as the value argument, the value will be read from standard input. A description can be added using the --description flag. Tags are added using the --tags flag\nand flag values in the tag=value format.\n\n```bash\n$ secretctl create --description --tags =, ..\n```\n\nIf the path/key already exists, the process will fail. Use `update` to change the value of a\nsecret.\n\n```bash\n$ cat | secretctl update myapp/dev/public-key -\n```\nUse `secretctl tag` and `secretctl untag` to add/remove/modify tags.\n\n### Reading Secrets\n\n```bash\n$ secretctl read myapp/dev/docker_login\n\n Path/Key Version Value\n myapp/dev/docker_login 1 mydockerlogin\n```\nUse `--quiet` to return only the secret value.\n\n### Listing Secrets\n\n```bash\n$ secretctl list --path di/dev/\n\nPath/Key Description Tags\ndi/dev/docker_username access credentials for private regis.. team=di, circleci-context=team-di\ndi/dev/docker_password access credentials for private regis.. team=di, circleci-context=team-di\ndi/dev/vault_token team vault token team=di, circleci-context=team-di\nFound 3 secrets.\n```\n\nIf no --path is provided, all secrets will be listed. Use the --tags to filter for secrets where tags or values\nmatch STRING.\n\n### Exporting\n```bash\n$ secretctl export di/dev/\n\ndocker_username=mydockerlogin\ndocker_password=mydockerpassword\nvault_token=myvaulttoken\n```\n\nExample use in a deploy pipeline:\n```bash\n$ secretctl export di/dev/ > local.env\n$ source local.env\n```\n\n`export` can export secrets in various file formats. The following\nfile formats are supported:\n\n* tfvars (default)\n* json\n* csv\n\n\n\n### under development\n\nsercretctl does not yet support:\ncustom KMS key\nbinary secret value type\n(unit testing) no moto support for testing descriptions or resource tags\n\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/ncheneweth/secretctl", "keywords": "", "license": "", "maintainer": "", "maintainer_email": "", "name": "secretctl", "package_url": "https://pypi.org/project/secretctl/", "platform": "", "project_url": "https://pypi.org/project/secretctl/", "project_urls": { "Homepage": "https://github.com/ncheneweth/secretctl" }, "release_url": "https://pypi.org/project/secretctl/0.0.19/", "requires_dist": [ "invoke (==1.3.0)", "boto3 (==1.9.226)", "pyyaml (==5.1.2)", "requests (==2.22.0)", "colorama (==0.4.1)" ], "requires_python": ">=3.5", "summary": "Command line tool for working with aws secrets manager", "version": "0.0.19" }, "last_serial": 5832986, "releases": { "0.0.0": [ { "comment_text": "", "digests": { "md5": "1410271698230b4d25ba9e87d74daed1", "sha256": "9482352ac65bc617507c70d8318a8b2e0f79904b86f16f59064a999e110a6881" }, "downloads": -1, "filename": "secretctl-0.0.0-py3-none-any.whl", "has_sig": false, "md5_digest": "1410271698230b4d25ba9e87d74daed1", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5", "size": 9767, "upload_time": "2019-09-11T04:41:07", "url": "https://files.pythonhosted.org/packages/8d/f6/28ed19f86a297d8e83efcd3b2a4f2fc16f56739227f9d48e196eb16d08f9/secretctl-0.0.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "dd1248aea6be434f5d9eb39921efa5e3", "sha256": "51f94d1ae18cdf3002ec8bb8875d64aed17a71d0db1d05ac0a828b083fa2aa83" }, "downloads": -1, "filename": "secretctl-0.0.0.tar.gz", "has_sig": false, "md5_digest": "dd1248aea6be434f5d9eb39921efa5e3", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 7378, "upload_time": "2019-09-11T04:41:08", "url": "https://files.pythonhosted.org/packages/97/a0/02a8c6feb625762dd01c615c9d77a56e9643ff22d3746873627e4d30f0a6/secretctl-0.0.0.tar.gz" } ], "0.0.10": [ { "comment_text": "", "digests": { "md5": "9e3f8e4e202e783105004a24137cd78f", "sha256": "ed42605f8a76e4d3c159ef1a1480df1b2d98b41e4bb852cf847121c04c5108a6" }, "downloads": -1, "filename": "secretctl-0.0.10-py3-none-any.whl", "has_sig": false, "md5_digest": "9e3f8e4e202e783105004a24137cd78f", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5", "size": 9465, "upload_time": "2019-08-24T03:28:19", "url": "https://files.pythonhosted.org/packages/49/fc/33da1d6e2c65d12c31315c88149d213003e5bb037332b4e31027e807ab1f/secretctl-0.0.10-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "246580b8702d6e289198ef352b434587", "sha256": "5e0b9cdbb5ab5f9352854ea0474de20ce0cbd768a51cc31b2883f08147426c23" }, "downloads": -1, "filename": "secretctl-0.0.10.tar.gz", "has_sig": false, "md5_digest": "246580b8702d6e289198ef352b434587", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 7013, "upload_time": "2019-08-24T03:28:20", "url": "https://files.pythonhosted.org/packages/87/29/f47b6488b203caa657c234aae305d8ad008bc3e786cc6dd5e2100b7a61ee/secretctl-0.0.10.tar.gz" } ], "0.0.11": [ { "comment_text": "", "digests": { "md5": "61a850587f0156da982cbd1250ac1be4", "sha256": "76006c8ecc9d200e47a6b788cda1b8e885f16da5f618925769764e097880471d" }, "downloads": -1, "filename": "secretctl-0.0.11-py3-none-any.whl", "has_sig": false, "md5_digest": "61a850587f0156da982cbd1250ac1be4", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5", "size": 9462, "upload_time": "2019-08-24T03:43:26", "url": "https://files.pythonhosted.org/packages/3d/e9/5490a356a46e8045781329235e192bc29723f2d2672bdb27562af9c4612a/secretctl-0.0.11-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "64b152bbf82ebf7bbadba2499ea89027", "sha256": "42f269af121d730b7b23e8cd66d17f7788578c6a5ff42afb61e2b0c4bfb0b6b2" }, "downloads": -1, "filename": "secretctl-0.0.11.tar.gz", "has_sig": false, "md5_digest": "64b152bbf82ebf7bbadba2499ea89027", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 7012, "upload_time": "2019-08-24T03:43:27", "url": "https://files.pythonhosted.org/packages/43/86/d75a96ea640fa87d5a18b93fef121ded1bd6655e31dcc0fbf0177d2d5379/secretctl-0.0.11.tar.gz" } ], "0.0.12": [ { "comment_text": "", "digests": { "md5": "58fcefb981b18773fa8b632a9532e11c", "sha256": "dcd969f3a76f6727818f9f855dfc6f80601aa9f3810170ad8df5e52079943b19" }, "downloads": -1, "filename": "secretctl-0.0.12-py3-none-any.whl", "has_sig": false, "md5_digest": "58fcefb981b18773fa8b632a9532e11c", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5", "size": 9465, "upload_time": "2019-08-24T03:58:57", "url": "https://files.pythonhosted.org/packages/09/f3/e17034954d923f01c47b56334f934137847da399758076bc8f7e3ed43fa5/secretctl-0.0.12-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d4ac0f51ce71f13147f307507231bf08", "sha256": "fa87ef0974dfe1e752c6a4fc479c300b242bfb9a2695a480301c4349d9236c1b" }, "downloads": -1, "filename": "secretctl-0.0.12.tar.gz", "has_sig": false, "md5_digest": "d4ac0f51ce71f13147f307507231bf08", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 7015, "upload_time": "2019-08-24T03:58:58", "url": "https://files.pythonhosted.org/packages/c5/52/7a474cdcdb4fd0917819e34d1c0f5bacbc4b79408a8472d5f0ed3a99d068/secretctl-0.0.12.tar.gz" } ], "0.0.13": [ { "comment_text": "", "digests": { "md5": "3f0a55e80ec4fac4e5dfc6a3ee99aac1", "sha256": "e6b66ba138f007b9d8f4d96c7360e53a6a99f2ccb8d66cd7444f98cfc485c542" }, "downloads": -1, "filename": "secretctl-0.0.13-py3-none-any.whl", "has_sig": false, "md5_digest": "3f0a55e80ec4fac4e5dfc6a3ee99aac1", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5", "size": 9676, "upload_time": "2019-08-25T01:51:06", "url": "https://files.pythonhosted.org/packages/21/8e/bde9b09f26aaec10044bf0c38f921f82e11991d69b1e3479d3144965a295/secretctl-0.0.13-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "959058a3a56ba7b6d9f0b30ac4a32f55", "sha256": "28a3e3ccabfd3bbb1b65ac1b5ae0a9ea7e8be4ec349d217322e7146d98e4c8e3" }, "downloads": -1, "filename": "secretctl-0.0.13.tar.gz", "has_sig": false, "md5_digest": "959058a3a56ba7b6d9f0b30ac4a32f55", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 7221, "upload_time": "2019-08-25T01:51:07", "url": "https://files.pythonhosted.org/packages/a1/1e/9156909098614c545a8b28d9b366fe9235d34a99d4602da6925d4bf6ce3b/secretctl-0.0.13.tar.gz" } ], "0.0.19": [ { "comment_text": "", "digests": { "md5": "3aa2fb06d18042d84d392ff29070f303", "sha256": "95f5603a0ea720017c50ed979334a232f6e750d4438f7cd13ce7b7bfd65fe304" }, "downloads": -1, "filename": "secretctl-0.0.19-py3-none-any.whl", "has_sig": false, "md5_digest": "3aa2fb06d18042d84d392ff29070f303", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5", "size": 10221, "upload_time": "2019-09-15T20:44:57", "url": "https://files.pythonhosted.org/packages/23/e0/920e71a32ef414b2d27dac41c4d48f04e2a1bdd17c00f7e6d702a815fb8f/secretctl-0.0.19-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "478e0f7de4344cf273d906bddbc088c1", "sha256": "4005a6657f01b236ac3c88889bbe8f3289ca6f2eb5099e977e60d4c69f653e7e" }, "downloads": -1, "filename": "secretctl-0.0.19.tar.gz", "has_sig": false, "md5_digest": "478e0f7de4344cf273d906bddbc088c1", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 8286, "upload_time": "2019-09-15T20:44:59", "url": "https://files.pythonhosted.org/packages/4b/40/0eba831bc04b7f9c907d42b9ec6693531fd39c8878469fdaf4c61b1f2f55/secretctl-0.0.19.tar.gz" } ], "0.0.9": [ { "comment_text": "", "digests": { "md5": "0fc03e3c55e7a216556e6540347c8d48", "sha256": "5c81a5c246f3c226008a51546c6cb28533c2229b149fcf7577534393902806c3" }, "downloads": -1, "filename": "secretctl-0.0.9-py3-none-any.whl", "has_sig": false, "md5_digest": "0fc03e3c55e7a216556e6540347c8d48", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5", "size": 9449, "upload_time": "2019-08-23T22:19:43", "url": "https://files.pythonhosted.org/packages/2b/5d/469e03672aeb5a941a94e04b839c57018427abda647f724740c53c1d675f/secretctl-0.0.9-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "253174ad3891a1e2cc583d4b58d63600", "sha256": "7c06eda2f8e75365d7ab4dfaa34273dd691ac6bce949833f7d10a7173a586928" }, "downloads": -1, "filename": "secretctl-0.0.9.tar.gz", "has_sig": false, "md5_digest": "253174ad3891a1e2cc583d4b58d63600", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 7012, "upload_time": "2019-08-23T22:19:45", "url": "https://files.pythonhosted.org/packages/a6/b6/aa3314acd09e2cd42a9686c51c58ec2ec6b5d16718be99b301eb1ed984cf/secretctl-0.0.9.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "3aa2fb06d18042d84d392ff29070f303", "sha256": "95f5603a0ea720017c50ed979334a232f6e750d4438f7cd13ce7b7bfd65fe304" }, "downloads": -1, "filename": "secretctl-0.0.19-py3-none-any.whl", "has_sig": false, "md5_digest": "3aa2fb06d18042d84d392ff29070f303", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5", "size": 10221, "upload_time": "2019-09-15T20:44:57", "url": "https://files.pythonhosted.org/packages/23/e0/920e71a32ef414b2d27dac41c4d48f04e2a1bdd17c00f7e6d702a815fb8f/secretctl-0.0.19-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "478e0f7de4344cf273d906bddbc088c1", "sha256": "4005a6657f01b236ac3c88889bbe8f3289ca6f2eb5099e977e60d4c69f653e7e" }, "downloads": -1, "filename": "secretctl-0.0.19.tar.gz", "has_sig": false, "md5_digest": "478e0f7de4344cf273d906bddbc088c1", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 8286, "upload_time": "2019-09-15T20:44:59", "url": "https://files.pythonhosted.org/packages/4b/40/0eba831bc04b7f9c907d42b9ec6693531fd39c8878469fdaf4c61b1f2f55/secretctl-0.0.19.tar.gz" } ] }