{"id":15396572,"url":"https://github.com/hupe1980/aws-parameter-cache","last_synced_at":"2025-04-15T01:20:48.575Z","repository":{"id":34244260,"uuid":"173097873","full_name":"hupe1980/aws-parameter-cache","owner":"hupe1980","description":"Parameter cache for AWS System Manager Parameter Store and AWS Secrets Manager","archived":false,"fork":false,"pushed_at":"2024-01-24T18:42:04.000Z","size":1370,"stargazers_count":25,"open_issues_count":4,"forks_count":7,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-03-28T13:12:15.888Z","etag":null,"topics":["aws","cache","parameter-store","secrets-manager","ssm"],"latest_commit_sha":null,"homepage":null,"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/hupe1980.png","metadata":{"files":{"readme":"README.md","changelog":null,"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":"2019-02-28T11:13:51.000Z","updated_at":"2024-05-17T22:24:46.000Z","dependencies_parsed_at":"2024-06-18T21:29:24.938Z","dependency_job_id":"00d2ecb8-a022-4e97-97b5-dd0ddc37b1e8","html_url":"https://github.com/hupe1980/aws-parameter-cache","commit_stats":{"total_commits":65,"total_committers":10,"mean_commits":6.5,"dds":0.4769230769230769,"last_synced_commit":"e4eecf050de8b3687b4ae64b410e7b41a4c9911a"},"previous_names":[],"tags_count":16,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hupe1980%2Faws-parameter-cache","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hupe1980%2Faws-parameter-cache/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hupe1980%2Faws-parameter-cache/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hupe1980%2Faws-parameter-cache/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hupe1980","download_url":"https://codeload.github.com/hupe1980/aws-parameter-cache/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248815595,"owners_count":21165952,"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","cache","parameter-store","secrets-manager","ssm"],"created_at":"2024-10-01T15:34:14.124Z","updated_at":"2025-04-15T01:20:48.531Z","avatar_url":"https://github.com/hupe1980.png","language":"TypeScript","readme":"# aws-parameter-cache\n![Build](https://github.com/hupe1980/aws-parameter-cache/workflows/build/badge.svg)\n![Release](https://github.com/hupe1980/aws-parameter-cache/workflows/release/badge.svg)\n\n\u003e Parameter cache for AWS System Manager Parameter Store and AWS Secrets Manager\n\n## Installation\n\n```bash\nnpm install aws-parameter-cache @aws-sdk/client-ssm @aws-sdk/client-secrets-manager\n```\n\n## How to use\n\n```typescript\nimport { ssmParameter } from 'aws-parameter-cache';\n\nconst param = ssmParameter({ name: 'foo' });\nconst value = await param.value;\n```\n\n### Secrets Manager Parameter\n\n```typescript\n// https://docs.aws.amazon.com/systems-manager/latest/userguide/integration-ps-secretsmanager.html\nimport { secretsManagerParameter } from 'aws-parameter-cache';\n\nconst param = secretsManagerParameter({ name: 'foo' });\nconst value = await param.value;\n```\n### Secrets Manager Secret\n\n```typescript\nimport { secretsManagerSecret } from 'aws-parameter-cache';\n\nconst secret = secretsManagerSecret({ secretId: 'foo' });\nconst secretString = await secret.secretString;\n```\n\n### Cache invalidation\n\n```typescript\nconst param = ssmParameter({ name: 'foo', maxAge: 1000 * 60 * 5 });\nconst value = await param.value;\n```\n\n### Force refresh\n\n```typescript\nconst param = ssmParameter({ name: 'foo' });\nconst value = await param.value;\n\nparam.refresh();\n\nconst newValue = await param.value;\n```\n\n### StringList (SSM Parameter)\n```typescript\nconst param = ssmParameter({ name: 'fooList' }); // XXX,YYY,ZZZ\nconst valueArray = await param.value; // ['XXX','YYY','ZZZ']\n\nvalueArray.forEach(console.log)\n```\n\n### Usage with AWS Lambda\n```typescript\nconst param = ssmParameter({ name: 'name' });\n\nexport const handler =  async (event, context) =\u003e {\n  const value = await param.value\n  return `Hello ${value}`\n}\n\n```\n\n## IAM (SSM Parameter)\n```json\n{\n    \"Version\": \"2012-10-17\",\n    \"Statement\": [\n        {\n            \"Effect\": \"Allow\",\n            \"Action\": [\n                \"ssm:GetParameter\"\n            ],\n            \"Resource\": \"arn:aws:ssm:\u003cREGION\u003e:\u003cACCOUNT_ID\u003e:parameter/\u003cPARAMETER_NAME\u003e\"\n        },\n        {\n            \"Effect\": \"Allow\",\n            \"Action\": [\n                \"kms:Decrypt\"\n            ],\n            \"Resource\": \"arn:aws:kms:\u003cREGION\u003e:\u003cACCOUNT_ID\u003e:alias/aws/ssm\"\n        }\n    ]\n}\n```\n\n## License\n\n[MIT](LICENSE)\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhupe1980%2Faws-parameter-cache","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhupe1980%2Faws-parameter-cache","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhupe1980%2Faws-parameter-cache/lists"}