{ "info": { "author": "Robert Hafner", "author_email": "tedivm@tedivm.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Environment :: Console", "Intended Audience :: Developers", "Intended Audience :: System Administrators", "License :: OSI Approved :: MIT License", "Programming Language :: Python :: 3" ], "description": "secretcli\n=========\n\nThe secretcli project provides a simple to use command line interface to\nthe `AWS Secrets Manager `__.\nIt is capable of uploading or downloading the entire secret as well as\nworking with individual fields.\n\nInstalling\n----------\n\nThis project is available on\n`pypi `__ and can be installed with\npip.\n\n``pip3 install secretcli``\n\nUsage\n-----\n\nInitializing a new Secret\n~~~~~~~~~~~~~~~~~~~~~~~~~\n\nNew secrets are easy to initiate. This will create a new Secret in the\nAWS Secret Manager and store an empty javascript object as the first\nversion.\n\n.. code:: bash\n\n $ secretcli init TestSecret\n\nWorking with individual Keys\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nAdditional Key/Value pairs can be added to the secret using a single\ncommand. Behind the scenes this downloads the existing database, updates\nit with the new key/value pair, and uploads it as the current version.\n\n.. code:: bash\n\n $ secretcli set TestSecret postgreshost 10.10.10.16\n $ secretcli set TestSecret postgresuser postgres\n $ secretcli set TestSecret postgrespassword super_secret_string\n $ secretcli set TestSecret longstring \"This is a string with spaces.\"\n\nRetrieving values is just as simple. This can be useful when trying to\nuse values in bash scripts.\n\n.. code:: bash\n\n $ secretcli get TestSecret postgreshost\n 10.10.10.16\n $ secretcli get TestSecret postgresuser\n postgres\n $ secretcli get TestSecret postgrespassword\n super_secret_string\n\nValues can also be completely removed from the secret.\n\n.. code:: bash\n\n $ secretcli get TestSecret postgreshost\n 10.10.10.16\n $ secretcli remove TestSecret postgreshost\n $ secretcli get TestSecret postgreshost\n\nTo avoid passing the value directly into the console (potentially\nlogging it in places like bash history) the ``-s`` flag can be passed\nand the value can be passed in interactively without displaying it.\n\n.. code:: bash\n\n $ secretcli set TestSecret postgrespassword -s\n Value:\n Repeat for confirmation:\n $ secretcli get TestSecret postgrespassword\n super_secret_string\n\nWorking with entire Files\n~~~~~~~~~~~~~~~~~~~~~~~~~\n\nThe entire Secret can be downloaded as a file. This command works\nregardless of the format of the file- Secrets that are not managed by\n``secretcli`` can be downloaded using this tool.\n\n.. code:: bash\n\n $ secretcli download TestSecret ./secret_configuration.json\n\nThe file can also be uploaded- but be careful, it will be uploaded\nexactly as is without any verification of the json formatting.\n\n.. code:: bash\n\n $ secretcli upload TestSecret ./secret_configuration.json\n\nDatastore Format\n----------------\n\n``secretcli`` stores data as a JSON Object in an attempt to be as\ninteroperable as possible. Each ``key`` passed to ``secretcli`` is\nrepresented by a ``key`` in the JSON Object.\n\nWhen storing in AWS Secret Manager ``secretcli`` uses the\n``SecretString`` field in the AWS Secrets Manager. This allows the\ndatabase to be viewed in the AWS Console both as a raw string and using\nthe Key/Value table.\n\n\n", "description_content_type": "", "docs_url": null, "download_url": "https://github.com/tedivm/secretcli/archive/v0.1.4.tar.gz", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/tedivm/secretcli", "keywords": "", "license": "", "maintainer": "", "maintainer_email": "", "name": "secretcli", "package_url": "https://pypi.org/project/secretcli/", "platform": "", "project_url": "https://pypi.org/project/secretcli/", "project_urls": { "Download": "https://github.com/tedivm/secretcli/archive/v0.1.4.tar.gz", "Homepage": "https://github.com/tedivm/secretcli" }, "release_url": "https://pypi.org/project/secretcli/0.1.4/", "requires_dist": [ "boto3 (<2.0,>=1.9)", "click (<8.0,>=6.0)", "requests", "pyyaml", "urllib3 (<1.24)", "pypandoc ; extra == 'dev'", "twine ; extra == 'dev'", "wheel ; extra == 'dev'" ], "requires_python": ">=3", "summary": "", "version": "0.1.4" }, "last_serial": 5883081, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "f7854984023043edef35f8ea2a80a0f6", "sha256": "6a54a839663f4ce06ccc233cfcaedcba08a9b66eb07a870019c1f3479c4d85c6" }, "downloads": -1, "filename": "secretcli-0.1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "f7854984023043edef35f8ea2a80a0f6", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3", "size": 5029, "upload_time": "2018-10-21T03:44:08", "url": "https://files.pythonhosted.org/packages/3b/6c/8451fe1c46717f2a49d4121d22de13894bfa3bb148679b5ad73d639d6672/secretcli-0.1.0-py3-none-any.whl" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "69ea80398e96fb31561895454cb1df34", "sha256": "50d612e9e0dc35b1aa373450edc5bfebfd1d7e57ade7cf87c104100e66a3ca3e" }, "downloads": -1, "filename": "secretcli-0.1.1-py3-none-any.whl", "has_sig": false, "md5_digest": "69ea80398e96fb31561895454cb1df34", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3", "size": 5040, "upload_time": "2018-10-21T03:58:41", "url": "https://files.pythonhosted.org/packages/c0/ed/78504710f72ac1e0feaa57ed2766e713555f49b4aaeffae1adf30641ba06/secretcli-0.1.1-py3-none-any.whl" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "10df3918871f343592638905e8308230", "sha256": "2c84b8aeff281f4ea1b865a13ddb4560a4daf88b5e55f737ef873f23acf9f83f" }, "downloads": -1, "filename": "secretcli-0.1.2-py3-none-any.whl", "has_sig": false, "md5_digest": "10df3918871f343592638905e8308230", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3", "size": 5438, "upload_time": "2018-10-21T08:04:53", "url": "https://files.pythonhosted.org/packages/c0/6e/c7adddd08562acc72c9b672d1e0e9df9505da59e3345e125261a3b33ad4d/secretcli-0.1.2-py3-none-any.whl" } ], "0.1.3": [ { "comment_text": "", "digests": { "md5": "09f2ad6bc8c4f002837ed7a8b0b58b74", "sha256": "53bb8bdcfb3f080e04a90546c9e3b1137580c79e7bd38ecac2b9109a257e966d" }, "downloads": -1, "filename": "secretcli-0.1.3-py3-none-any.whl", "has_sig": false, "md5_digest": "09f2ad6bc8c4f002837ed7a8b0b58b74", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3", "size": 5504, "upload_time": "2018-10-21T20:19:04", "url": "https://files.pythonhosted.org/packages/7c/10/a62e22aaecf7c0847df4ed9da85fc3a6bce828eb7885c2b1d79eba43042a/secretcli-0.1.3-py3-none-any.whl" } ], "0.1.4": [ { "comment_text": "", "digests": { "md5": "cd85a1b43f22012c7136e885afb304b2", "sha256": "4315dd83c392ff556c97aeaef3cac2dbedd5bf5602d99e46d10b52e182f4e9e7" }, "downloads": -1, "filename": "secretcli-0.1.4-py3-none-any.whl", "has_sig": false, "md5_digest": "cd85a1b43f22012c7136e885afb304b2", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3", "size": 5505, "upload_time": "2019-09-25T04:52:36", "url": "https://files.pythonhosted.org/packages/02/58/f16bdfd8524e664efb5d692f93e67ae745fe6d78265fec8851b59f48f3e6/secretcli-0.1.4-py3-none-any.whl" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "cd85a1b43f22012c7136e885afb304b2", "sha256": "4315dd83c392ff556c97aeaef3cac2dbedd5bf5602d99e46d10b52e182f4e9e7" }, "downloads": -1, "filename": "secretcli-0.1.4-py3-none-any.whl", "has_sig": false, "md5_digest": "cd85a1b43f22012c7136e885afb304b2", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3", "size": 5505, "upload_time": "2019-09-25T04:52:36", "url": "https://files.pythonhosted.org/packages/02/58/f16bdfd8524e664efb5d692f93e67ae745fe6d78265fec8851b59f48f3e6/secretcli-0.1.4-py3-none-any.whl" } ] }