{"id":29125599,"url":"https://github.com/mbrg/crd","last_synced_at":"2025-06-29T22:02:48.786Z","repository":{"id":58211796,"uuid":"166092443","full_name":"mbrg/crd","owner":"mbrg","description":"Your private secret storage, with a familiar dict API","archived":false,"fork":false,"pushed_at":"2022-08-30T11:56:37.000Z","size":45,"stargazers_count":7,"open_issues_count":2,"forks_count":33,"subscribers_count":1,"default_branch":"master","last_synced_at":"2024-10-04T02:09:57.821Z","etag":null,"topics":["cross-platform","linux","osx","password-manager","privacy","windows"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mbrg.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2019-01-16T18:47:01.000Z","updated_at":"2024-06-21T00:07:59.000Z","dependencies_parsed_at":"2022-08-31T03:51:40.817Z","dependency_job_id":null,"html_url":"https://github.com/mbrg/crd","commit_stats":null,"previous_names":["mibarg/crd"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/mbrg/crd","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mbrg%2Fcrd","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mbrg%2Fcrd/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mbrg%2Fcrd/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mbrg%2Fcrd/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mbrg","download_url":"https://codeload.github.com/mbrg/crd/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mbrg%2Fcrd/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":262674928,"owners_count":23346739,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cross-platform","linux","osx","password-manager","privacy","windows"],"created_at":"2025-06-29T22:01:49.079Z","updated_at":"2025-06-29T22:02:48.694Z","avatar_url":"https://github.com/mbrg.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![stars](https://img.shields.io/github/stars/mbrg?icon=github\u0026style=social)](https://github.com/mbrg)\n[![twitter](https://img.shields.io/twitter/follow/mbrg0?icon=twitter\u0026style=social\u0026label=Follow)](https://twitter.com/intent/follow?screen_name=mbrg0)\n[![email me](https://img.shields.io/badge/michael.bargury-owasp.org-red?logo=Gmail)](mailto:michael.bargury@owasp.org)\n\nHi there!\n\nI'm considering to revisit this project. If you're interested, please 👍 [crd 2.0](https://github.com/mbrg/crd/issues/3)\n\n## *crd* - your private secret storage, with a familiar dict API\n\nA simple secret manager which uses your own secret storage as backend.\n_crd_ provides a familiar dict-like API access your secret storage, \nand a CLI to perform daily tasks (get/set/del secrets).\n\nInstall with: `pip install crd`\n\nQuick reference:\n - [CLI usage samples](#cli-usage-samples)\n   - [Configuration](#config)\n   - [Usage](#usage)\n - [Storage API](#storage-api)\n - [Supported backends](#supported-backends)\n   - [Azure](#azure)\n   - [Secured locally](#secured-locally)\n   - [Virtual](#virtual)\n\n\n## CLI usage samples\n\n### Config\n\n```bash\n# show current configuratiom\n$ cfg config --show\n\n# configure local persistent storage, secured by your platform credentials\n$ cfg config keyring\n\n# configure Azure-based persistent storage, secured by Azure KeyVault and Azure Active Directory\n$ cfg config azure -v MY_KEYVAULT_NAME -t MY_TENANT_GUID\n```\n\n### Usage\n```bash\n# store a new secret\n$ cfg set -k my_github_creds        \ncrd \u003e Secret: ****\ncrd \u003e Secret my-github-creds stored safely.\n\n# retrieve a secret\n$ cfg get -k git        \ncrd \u003e Found 2 options:\n        0 | my-git-creds\n        1 | my-github-creds\ncrd \u003e Choose {0..1} or q to quit: 1\ncrd \u003e Secret my-github-creds was copied to clipboard.\n\n# delete a secret\n$crd del -k my-git-creds\ncrd \u003e Are you sure you want to delete secret my-git-creds? (y/Y) to accept: y\ncrd \u003e Secret my-git-creds deleted successfully.\n```\n\n## Storage API\n\n_crd_ provides a familiar dict-like API for secret storage.\n\nHere are a few usage examples:\n\n``` python\nfrom crd.storage import AzureKeyVaultStorage, KeyringStorage, VirtualStorage\n\n# init Storage object, uncomment lines bellow to use other storage backends\nstrg = AzureKeyVaultStorage(vault=MY_KEYVAULT_NAME, tenant_id=MY_TENANT_GUID)\n# strg = KeyringStorage()\n# strg = VirtualStorage() \n\n# Use storage like you would use a Python dict\nstrg[\"my-github-pass\"] = \"MY_PASS\"\nstrg[\"my-github-pass\"] = \"MY_NEW_PASS\"\nstrg[\"my-git-pass\"] = \"MY_OTHER_PASS\"\n\nprint(len(strg))\n# 2\n\nfor key in strg:\n    print(key):\n# my-git-pass\n# my-github-pass\n\ndel strg['my-git-pass']\nprint(len(strg))\n# 1\n```\n\n\n## Supported backends\n\n### Azure\n\n`AzureKeyVaultStorage` - Azure-based persistent storage, secured by Azure KeyVault and Azure Active Directory\n\nHow to:\n\n- [Create your own][1] Azure KeyVault and copy the vault name (_Contoso-Vault2_ for example)\n- Copy your tenant id from \n[Azure portal -\u003e Azure Active Directory -\u003e Properties -\u003e Directory ID][2]\n(_e887307a-6b6b-4404-b00b-bcc673928db6_ for example)\n- Configure _crd_ by running: `$ cfg config azure -v Contoso-Vault2 -t e887307a-6b6b-4404-b00b-bcc673928db6`\n\n\n[1]: https://portal.azure.com/#blade/Microsoft_AAD_IAM/ActiveDirectoryMenuBlade/Properties\n[2]: https://docs.microsoft.com/en-us/azure/key-vault/quick-create-portal\n\n### Secured locally\n\n`KeyringStorage` - Platform-agnostic local persistent storage, secured by your platform credentials\n\nHow to:\n\n- Configure `crd` by running: `$ cfg config keyring`\n\n### Virtual\n\n`VirtualStorage` - In-memory none-persistent storage, to be used for debugging only (not secure).\n\nHow to:\n\n- Configure `crd` by running: `$ cfg config virtual`\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmbrg%2Fcrd","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmbrg%2Fcrd","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmbrg%2Fcrd/lists"}