{"id":16475987,"url":"https://github.com/softprops/envy-store","last_synced_at":"2025-03-16T18:31:35.438Z","repository":{"id":48506913,"uuid":"152839466","full_name":"softprops/envy-store","owner":"softprops","description":"🏪 deserialize AWS Parameter Store values into type safe structs","archived":false,"fork":false,"pushed_at":"2021-07-22T10:14:45.000Z","size":587,"stargazers_count":41,"open_issues_count":8,"forks_count":5,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-03-06T16:50:12.923Z","etag":null,"topics":["aws","aws-lambda","aws-parameter-store","config","configuration","configuration-management","secret-management"],"latest_commit_sha":null,"homepage":"","language":"Rust","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/softprops.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2018-10-13T05:43:23.000Z","updated_at":"2024-10-26T02:32:15.000Z","dependencies_parsed_at":"2022-09-01T13:50:33.833Z","dependency_job_id":null,"html_url":"https://github.com/softprops/envy-store","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/softprops%2Fenvy-store","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/softprops%2Fenvy-store/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/softprops%2Fenvy-store/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/softprops%2Fenvy-store/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/softprops","download_url":"https://codeload.github.com/softprops/envy-store/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243826788,"owners_count":20354220,"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","aws-lambda","aws-parameter-store","config","configuration","configuration-management","secret-management"],"created_at":"2024-10-11T12:41:10.550Z","updated_at":"2025-03-16T18:31:34.525Z","avatar_url":"https://github.com/softprops.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# envy store [![Build Status](https://travis-ci.org/softprops/envy-store.svg?branch=master)](https://travis-ci.org/softprops/envy-store) [![Coverage Status](https://coveralls.io/repos/github/softprops/envy-store/badge.svg?branch=master)](https://coveralls.io/github/softprops/envy-store?branch=master) [![Software License](https://img.shields.io/badge/license-MIT-brightgreen.svg)](LICENSE) [![crates.io](http://meritbadge.herokuapp.com/envy-store)](https://crates.io/crates/envy-store) [![Released API docs](https://docs.rs/envy-store/badge.svg)](http://docs.rs/envy-store) [![Master API docs](https://img.shields.io/badge/docs-master-green.svg)](https://softprops.github.io/envy-store)\n\n\u003e 🏪 deserialize [AWS Parameter Store](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-paramstore.html) values into typesafe structs\n\n## 📦 Install\n\n```toml\n[dependencies]\nenvy-store = \"0.\"\n```\n\n## 🤸 Usage\n\nEnvy store assumes you are using the AWS best practice of [storing related parameters under\na prefixed hierarchy](https://aws.amazon.com/blogs/mt/organize-parameters-by-hierarchy-tags-or-amazon-cloudwatch-events-with-amazon-ec2-systems-manager-parameter-store/).\nThis leads to better clarity on what application a set of parameters belong to as well as enables\nthe paths based query API which has performance benefits and is the recommended best practice by AWS.\n\nEnvy store also assumes the use of the [AWS default credential chain](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-getting-started.html) for authenticating requests\nwith AWS. Don't worry, if you've used any AWS tooling in the past, you likely already have this configured. You will also need to ensure these credentials have the `ssm:GetParametersByPath` [IAM permission](https://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-paramstore-access.html).\n\nSee the [demo example](examples/demo.rs) for an example application and [documentation](https://softprops.github.io/envy-store) for more information\n\n\u003e 👭 Consider this crate a cousin of [envy](https://github.com/softprops/envy), a crate for deserializing environment variables into typesafe structs.\n\n## 🤔 Why AWS Parameter Store\n\nEnvironment variables are a perfectly good and probably\nbest solution for storing application configuration as they are more or less\nuniversally supported across runtimes and languages.\n\nAs an application grows additional factors need may come into consideration.\n\n1) Security. Environment variables alone are a poor transport for secret information\nas they can easily be leaked in their plain text format. AWS Parameter Store has\nbuilt-in support for storing values in encrypted format preventing unwanted access\nfrom prying eyes.\n\n2) Management. The strategy for configuring environment variables for your application\nwill likely vary and become less managable over time. The source of truth for their\nvalues may require some centralization in order to manage. Systems exist for helping\nyou manage these. AWS Parameter Store is a self managed system as a service removing\nthe need for you to operate one of these systems yourself.\n\n3) Access control. Related to encryption security, you may also want to limit _who_ can access\nconfiguration. Identity access management is [built into AWS Parameter Store](https://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-paramstore-access.html) so you don't have to implement this yourself.\n\n\u003e 💡 Note that as AWS Parameter Store is a hosted service, it comes with limits to ensure quality of service for its users. You can review a list of these limits [here](https://docs.aws.amazon.com/general/latest/gr/aws_service_limits.html#limits_ssm)\n\nDoug Tangren (softprops) 2018","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsoftprops%2Fenvy-store","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsoftprops%2Fenvy-store","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsoftprops%2Fenvy-store/lists"}