{"id":18702194,"url":"https://github.com/gagoar/alohomora","last_synced_at":"2025-04-12T08:32:48.732Z","repository":{"id":38422143,"uuid":"263165536","full_name":"gagoar/alohomora","owner":"gagoar","description":"✨ A cli that makes using AWS Parameter Store... as simple as the flick of a wand 🧙","archived":false,"fork":false,"pushed_at":"2025-03-31T19:03:29.000Z","size":1809,"stargazers_count":16,"open_issues_count":25,"forks_count":2,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-04-11T16:17:21.932Z","etag":null,"topics":["aws-ssm","aws-ssm-agent","cli","ssm"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","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/gagoar.png","metadata":{"files":{"readme":"readme.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-05-11T21:46:47.000Z","updated_at":"2023-08-29T03:52:42.000Z","dependencies_parsed_at":"2024-05-20T20:46:21.979Z","dependency_job_id":"c1d385aa-74bd-45c3-a2f5-cd7330ee0a7b","html_url":"https://github.com/gagoar/alohomora","commit_stats":{"total_commits":371,"total_committers":4,"mean_commits":92.75,"dds":"0.15633423180592987","last_synced_commit":"701f391543343d89901a45a35c1ce869d398ccab"},"previous_names":[],"tags_count":9,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gagoar%2Falohomora","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gagoar%2Falohomora/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gagoar%2Falohomora/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gagoar%2Falohomora/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/gagoar","download_url":"https://codeload.github.com/gagoar/alohomora/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248540306,"owners_count":21121330,"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":["aws-ssm","aws-ssm-agent","cli","ssm"],"created_at":"2024-11-07T11:45:01.275Z","updated_at":"2025-04-12T08:32:43.722Z","avatar_url":"https://github.com/gagoar.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003c!-- PROJECT LOGO --\u003e\n\u003cp align=\"center\"\u003e\n    \u003ca href=\"https://www.npmjs.com/package/alohomora\"\u003e\n      \u003cimg src=\"https://img.shields.io/npm/v/alohomora/latest.svg?style=flat-square\" alt=\"NPM Version\" /\u003e\n    \u003c/a\u003e\n    \u003ca href=\"https://github.com/gagoar/alohomora/actions\"\u003e\n      \u003cimg src=\"https://github.com/gagoar/alohomora/workflows/alohomora/badge.svg\" alt=\"Workflow\" /\u003e\n    \u003c/a\u003e\n    \u003ca href=\"https://codecov.io/gh/gagoar/alohomora\"\u003e\n      \u003cimg src=\"https://codecov.io/gh/gagoar/alohomora/branch/master/graph/badge.svg?token=48gHuQl8zV\" alt=\"codecov\" /\u003e\n    \u003c/a\u003e\n    \u003ca href=\"https://codeclimate.com/github/gagoar/alohomora/maintainability\"\u003e\n      \u003cimg src=\"https://api.codeclimate.com/v1/badges/9ab29ec3ef970bf219da/maintainability\" /\u003e\n    \u003c/a\u003e\n    \u003ca href=\"https://github.com/gagoar/alohomora/blob/master/LICENSE\"\u003e\n      \u003cimg src=\"https://img.shields.io/npm/l/alohomora.svg?style=flat-square\" alt=\"MIT license\" /\u003e\n    \u003c/a\u003e\n    \u003ca href=\"https://deepsource.io/gh/gagoar/alohomora/?ref=repository-badge\" target=\"_blank\"\u003e\u003cimg alt=\"DeepSource\" title=\"DeepSource\" src=\"https://deepsource.io/gh/gagoar/alohomora.svg/?label=active+issues\u0026show_trend=true\"/\u003e\n    \u003c/a\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://github.com/gagoar/alohomora\"\u003e\n    \u003cimg src=\"images/logo.png\" alt=\"Logo\" width=\"128\" height=\"128\"\u003e\n  \u003c/a\u003e\n\n  \u003ch3 align=\"center\"\u003eAlohomora\u003c/h3\u003e\n\n  \u003cp align=\"center\"\u003e\n    ✨ A cli that makes using AWS Parameter Store... as simple as the flick of a wand 🧙\n    \u003cbr /\u003e\n    \u003ca href=\"https://github.com/gagoar/alohomora#table-of-contents\"\u003e\u003cstrong\u003eExplore the docs »\u003c/strong\u003e\u003c/a\u003e\n    \u003cbr /\u003e\n    \u003ca href=\"https://github.com/gagoar/alohomora/issues\"\u003eReport Bug\u003c/a\u003e\n    ·\n    \u003ca href=\"https://github.com/gagoar/alohomora/issues\"\u003eRequest Feature\u003c/a\u003e\n  \u003c/p\u003e\n\u003c/p\u003e\n\n\u003c!-- TABLE OF CONTENTS --\u003e\n\n## Table of Contents\n\n- [About the Project](#about-the-project)\n- [Built With](#built-with)\n- [Getting Started](#getting-started)\n- [Prerequisites](#prerequisites)\n- [Installation](#installation)\n- [Usage](#usage)\n- [Contributing](#contributing)\n- [License](#license)\n\n\u003c!-- ABOUT THE PROJECT --\u003e\n\n## About The Project\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://github.com/gagoar/alohomora\"\u003e\n    \u003cimg src=\"images/cast.png\" alt=\"cast spell\"\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\nMany libraries deal with parameter store secrets. However, I didn't find one that suits my needs, so I created this one. I wanted to develop a library that will solve all my needs while using secrets, including exporting the key/secrets to different formats\n\nHere's why:\n\n- Many solutions require prefixes to store keys, making it difficult to migrate when needed.\n- Support for exporting keys to widely accepted file formats such as JSON was limited.\n\n### Built With\n\n- [aws-sdk](https://github.com/aws/aws-sdk-js)\n- [ora](https://github.com/sindresorhus/ora)\n- [cli-table3](https://github.com/cli-table/cli-table3)\n- [dateformat](https://github.com/felixge/node-dateformat)\n- [commander](https://github.com/tj/commander.js/)\n- [cosmiconfig](https://github.com/davidtheclark/cosmiconfig)\n\n\u003c!-- GETTING STARTED --\u003e\n\n## Getting Started\n\nBelow is an example of instructions you can integrate into your own project's _Getting Started_ section. You can follow these simple steps to get a local copy up and running:\n\n### Prerequisites\n\n- Node 8 or higher\n- AWS credentials to your account. ([more info here](https://docs.aws.amazon.com/sdk-for-javascript/v2/developer-guide/loading-node-credentials-environment.html))\n\n### Installation\n\nIf you wish to use `alohamora` as a standalone utility:\n\n```sh\nnpm -g install alohomora\n```\n\nThis will make the `alo` command available in your terminal.\n\n```sh\nalo --help\n```\n\nIf instead you would like to add it to a package:\n\n```sh\nnpm install --only=dev alohomora\n```\n\n\u003c!-- USAGE EXAMPLES --\u003e\n\n## Usage\n\nEvery command accepts several options through command line or custom configuration [see configuration for more](#configuration)\n\n### List secrets.\n\n```sh\n  alo list --prefix my-company/my-app\n```\n\n### Get a secret.\n\n```sh\n  alo get SECRET_KEY_NAME --prefix my-company/my-app\n```\n\n### Set/Update/Create a secret.\n\n```sh\n  alo set SECRET_KEY_NAME VALUE --prefix my-company/my-app --environment development\n```\n\n### Delete a secret.\n\n```sh\n  alo delete SECRET_KEY_NAME --prefix my-company/my-app --environment production\n```\n\n### Export secrets\n\n```sh\n  alo export json --prefix my-company/my-app --environment production\n```\n\n\u003c!-- CONFIGURATION --\u003e\n\n## Configuration\n\nYou can configure `alohomora` from several places:\n\n### CLI options\n\n- **Prefix** (`--prefix`): The prefix used to store the keys (it should not start or end with a `/`, ex: if the path to the secret is `/my-app/[env]/secretName`, the prefix will be `my-app` )\n\n- **AWS region** (`--aws-region`): The AWS region code where the secrets will be stored (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-regions-availability-zones.html#concepts-available-regions)', `default: us-east-1`\n\n- **Environment** (`--environment`): It will be used to filter the secrets (production, staging, test, all), `default: all`\n\n- **AWS Access Key ID** (`--aws-access-key-id`): Credentials following https://docs.aws.amazon.com/sdk-for-javascript/v2/developer-guide/loading-node-credentials-environment.html\n\n- **AWS Secret Access Key** (`--aws-secret-access-key`): Credentials following https://docs.aws.amazon.com/sdk-for-javascript/v2/developer-guide/loading-node-credentials-environment.html\n\n- **AWS Session Token** (`--aws-session-token`): Credentials following https://docs.aws.amazon.com/sdk-for-javascript/v2/developer-guide/loading-node-credentials-environment.html\n\n- **AWS Profile** (`--aws-profile`): Following https://docs.aws.amazon.com/sdk-for-javascript/v2/developer-guide/loading-node-credentials-shared.html\n\n- **CI flag** (`--ci`): Removes colors to avoid odd input. `default: false`\n\nIf you are using `alo` as a [global command](#installation), you can provide all the above options via command line:\n\n```sh\n  alo list --prefix my-company/my-app --aws-region us-west-2  --aws-profile myCustomAWSProfile --environment production\n```\n\nfor more details you can invoke:\n\n```sh\n  alo --help\n```\n\n### Custom Configuration\n\nYou can also define custom configuration in your package:\n\n```json\n{\n  \"name\": \"my-package\",\n  \"alohomora\": {\n    \"prefix\": \"my-company/my-app\",\n    \"environment\": \"production\",\n    \"region\": \"us-west-2\"\n  },\n  \"scripts\": {\n    \"secrets\": \"alo export\"\n  },\n  \"devDependencies\": {\n    \"alohomora\": \"^1.0.0\"\n  }\n}\n```\n\nWhen the command is invoked it will look for the `alohomora` configuration block.\n\n```bash\n(my-package)$ npm run secrets\n```\n\nCustom configuration can be defined in many places, for more information check [cosmiconfig](https://github.com/davidtheclark/cosmiconfig)\n\n**notes about custom configuration**\n\n- If `prefix` is provided via cli, the custom configuration will be ignored.\n- If configuration is provided via the cli, custom configuration will be merged with the provided cli configuration (except `prefix`)\n\nexample with overrides:\n\n```json\n\"alohomora\": {\n  \"prefix\": \"my-company/my-app\",\n  \"region\": \"us-west-2\",\n  \"environment\": \"development\",\n}\n```\n\n```bash\n  alo list --environment production\n```\n\nresult: We will use everything from the custom configuration and use `environment` provided by the cli instead of the one on the custom configuration\n\nexample ignoring custom configuration:\n\n```json\n\"alohomora\": {\n  \"prefix\": \"my-company/my-app\",\n  \"region\": \"us-west-2\",\n  \"environment\": \"development\",\n}\n```\n\n```bash\n  alo list prefix \"my-other-company/my-other-app\"\n```\n\nresult: We will ignore custom configuration given that `prefix` was provided via cli.\n\n\u003c!-- ROADMAP --\u003e\n\n## Roadmap\n\nSee the [open issues](https://github.com/gagoar/alohomora/issues) for a list of proposed features (and known issues).\n\n\u003c!-- CONTRIBUTING --\u003e\n\n## Contributing\n\nContributions are what makes the open-source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated **greatly appreciated**.\n\n1. Fork the Project\n2. Create your Feature Branch (`git checkout -b feature/AmazingFeature`)\n3. Commit your Changes (`git commit -m 'Add some AmazingFeature'`)\n4. Push to the Branch (`git push origin feature/AmazingFeature`)\n5. Open a Pull Request\n\n\u003c!-- LICENSE --\u003e\n\n## License\n\nDistributed under the MIT License. See `LICENSE` for more information.\n\n\u003c!-- CONTACT --\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://linkedin.com/in/gagoar\"\u003e\n      \u003cimg src=\"https://img.shields.io/badge/-LinkedIn-black.svg?style=flat-square\u0026logo=linkedin\u0026colorB=555\" alt=\"follow on Twitter\"\u003e\n  \u003c/a\u003e\n    \u003ca href=\"https://twitter.com/intent/follow?screen_name=gagoar\"\u003e\n      \u003cimg src=\"https://img.shields.io/twitter/follow/gagoar?style=social\u0026logo=twitter\" alt=\"follow on Twitter\"\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\n\u003c!-- MARKDOWN LINKS \u0026 IMAGES --\u003e\n\u003c!-- https://www.markdownguide.org/basic-syntax/#reference-style-links --\u003e\n\n[contributors-shield]: https://img.shields.io/github/contributors/gagoar/alohomora.svg?style=flat-square\n[contributors-url]: https://github.com/gagoar/alohomora/graphs/contributors\n[forks-shield]: https://img.shields.io/github/forks/gagoar/alohomora.svg?style=flat-square\n[forks-url]: https://github.com/gagoar/alohomora/network/members\n[stars-shield]: https://img.shields.io/github/stars/gagoar/alohomora.svg?style=flat-square\n[stars-url]: https://github.com/gagoar/alohomora/stargazers\n[issues-shield]: https://img.shields.io/github/issues/gagoar/alohomora.svg?style=flat-square\n[issues-url]: https://github.com/gagoar/alohomora/issues\n[license-shield]: https://img.shields.io/github/license/gagoar/alohomora.svg?style=flat-square\n[license-url]: https://github.com/gagoar/alohomora/blob/master/LICENSE\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgagoar%2Falohomora","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgagoar%2Falohomora","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgagoar%2Falohomora/lists"}