{"id":43942121,"url":"https://github.com/b-b3rn4rd/json2ssm","last_synced_at":"2026-02-07T02:06:10.730Z","repository":{"id":57532418,"uuid":"133352684","full_name":"b-b3rn4rd/json2ssm","owner":"b-b3rn4rd","description":"AWS Parameter Store import \u0026 export functionality for JSON","archived":false,"fork":false,"pushed_at":"2020-01-15T19:56:40.000Z","size":39,"stargazers_count":52,"open_issues_count":2,"forks_count":10,"subscribers_count":3,"default_branch":"master","last_synced_at":"2024-06-19T05:43:02.031Z","etag":null,"topics":["aws","golang","json","ssm"],"latest_commit_sha":null,"homepage":null,"language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/b-b3rn4rd.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}},"created_at":"2018-05-14T11:48:12.000Z","updated_at":"2024-06-19T05:43:02.032Z","dependencies_parsed_at":"2022-09-26T18:22:07.580Z","dependency_job_id":null,"html_url":"https://github.com/b-b3rn4rd/json2ssm","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/b-b3rn4rd/json2ssm","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/b-b3rn4rd%2Fjson2ssm","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/b-b3rn4rd%2Fjson2ssm/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/b-b3rn4rd%2Fjson2ssm/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/b-b3rn4rd%2Fjson2ssm/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/b-b3rn4rd","download_url":"https://codeload.github.com/b-b3rn4rd/json2ssm/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/b-b3rn4rd%2Fjson2ssm/sbom","scorecard":{"id":221780,"data":{"date":"2025-08-11","repo":{"name":"github.com/b-b3rn4rd/json2ssm","commit":"44a84018e03504c63762a3833362e859ae3f6fbe"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":2.7,"checks":[{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Pinned-Dependencies","score":-1,"reason":"no dependencies found","details":null,"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Code-Review","score":0,"reason":"Found 1/18 approved changesets -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Dangerous-Workflow","score":-1,"reason":"no workflows found","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Token-Permissions","score":-1,"reason":"No tokens found","details":null,"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: Apache License 2.0: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Signed-Releases","score":0,"reason":"Project has not signed or included provenance with any releases.","details":["Warn: release artifact 1.0.1 not signed: https://api.github.com/repos/b-b3rn4rd/json2ssm/releases/11058685","Warn: release artifact 1.0.0 not signed: https://api.github.com/repos/b-b3rn4rd/json2ssm/releases/10996774","Warn: release artifact 1.0.1 does not have provenance: https://api.github.com/repos/b-b3rn4rd/json2ssm/releases/11058685","Warn: release artifact 1.0.0 does not have provenance: https://api.github.com/repos/b-b3rn4rd/json2ssm/releases/10996774"],"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":0,"reason":"branch protection not enabled on development/release branches","details":["Warn: branch protection not enabled for branch 'master'"],"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 5 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}}]},"last_synced_at":"2025-08-17T02:42:26.981Z","repository_id":57532418,"created_at":"2025-08-17T02:42:26.985Z","updated_at":"2025-08-17T02:42:26.985Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29184977,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-07T00:44:15.062Z","status":"online","status_checked_at":"2026-02-07T02:00:07.217Z","response_time":63,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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","golang","json","ssm"],"created_at":"2026-02-07T02:06:10.059Z","updated_at":"2026-02-07T02:06:10.724Z","avatar_url":"https://github.com/b-b3rn4rd.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![Go Report Card](https://goreportcard.com/badge/github.com/b-b3rn4rd/json2ssm)](https://goreportcard.com/report/github.com/b-b3rn4rd/json2ssm)  [![Build Status](https://travis-ci.org/b-b3rn4rd/gocfn.svg?branch=master)](https://travis-ci.org/b-b3rn4rd/json2ssm) JSON import/export functions with AWS SSM Parameter Store\n================================================\n*json2ssm* - provides JSON import, export and delete functionality when working with AWS SSM parameter store while keeping original data types.\n\nMotivation\n--------------\nAWS SSM Parameter Store is a great service for centrally storing and managing application parameters and secrets.\nHowever, seeding parameters often becomes an adhoc process when parameters are added manually\nor provisioned from different scripts which makes it difficult to promote applications between environments.\n\nUsing `json2ssm` parameters can be imported from a single or multiple JSON source files, additionally, it also provides export function to recursively retrieve parameters in JSON format for scenarios\nwhen it's easier to work with JSON structure, for example with Jenkins pipelines or inside ansible playbooks.\n\nExamples\n----------------\n\nLet's start with an example and import following file into SSM parameter store:\n\n```bash\n$ cat ../../pkg/storage/testdata/colors.json\n{\n  \"colors\": [\n    {\n      \"color\": \"black\",\n      \"category\": \"hue\",\n      \"type\": \"primary\",\n      \"code\": {\n        \"rgba\": [255,255,255,1],\n        \"hex\": \"#000\"\n      }\n    },\n    {\n      \"color\": \"white\",\n      \"category\": \"value\",\n      \"code\": {\n        \"rgba\": [0,0,0,1],\n        \"hex\": \"#FFF\"\n      }\n    },\n    {\n      \"color\": \"red\",\n      \"category\": \"hue\",\n      \"type\": \"primary\",\n      \"code\": {\n        \"rgba\": [255,0,0,1],\n        \"hex\": \"#FF0\"\n      }\n    },\n    {\n      \"color\": \"blue\",\n      \"category\": \"hue\",\n      \"type\": \"primary\",\n      \"code\": {\n        \"rgba\": [0,0,255,1],\n        \"hex\": \"#00F\"\n      }\n    },\n    {\n      \"color\": \"yellow\",\n      \"category\": \"hue\",\n      \"type\": \"primary\",\n      \"code\": {\n        \"rgba\": [255,255,0,1],\n        \"hex\": \"#FF0\"\n      }\n    },\n    {\n      \"color\": \"green\",\n      \"category\": \"hue\",\n      \"type\": \"secondary\",\n      \"code\": {\n        \"rgba\": [0,255,0,1],\n        \"hex\": \"#0F0\"\n      }\n    }\n  ]\n}\n```\n\n```bash\n$ json2ssm put-json --json-file ../../pkg/storage/testdata/colors.json\n 47 / 47 [=============================================================================\u003e]  100%\n Import has successfully finished, 47 parameters have been (over)written to SSM parameter store. \n```\n\nRetrieve the first color:\n\n```bash\n$ json2ssm get-json --path \"/colors/0\"\n 8 / 8 [==============================================================================] 8s\n{\n \"category\": \"hue\",\n \"code\": {\n  \"hex\": \"#000\",\n  \"rgba\": [\n   255,\n   255,\n   255,\n   1\n  ]\n },\n \"color\": \"black\",\n \"type\": \"primary\"\n}\n```\n\nRetrieve the first color's `rgba` value and store it in a file:\n```bash\n$ json2ssm get-json --path \"/colors/0/code/rgba\" \u003e rgba.son\n 4 / 4 [==============================================================================] 2s\n$ cat rgba.json \n  [\n   255,\n   255,\n   255,\n   1\n  ]\n```\n\nInstallation\n=============\n```bash\nbrew tap b-b3rn4rd/homebrew-tap\nbrew install json2ssm\n```\n\n*Using go get*\n\n```bash\ngo get github.com/b-b3rn4rd/json2ssm\n```\n\nUsage\n=============\n```bash\n$ json2ssm --help\n  usage: json2ssm [\u003cflags\u003e] \u003ccommand\u003e [\u003cargs\u003e ...]\n  \n  Flags:\n        --help     Show context-sensitive help (also try --help-long and\n                   --help-man).\n    -d, --debug    Enable debug logging.\n        --version  Show application version.\n  \n  Commands:\n    help [\u003ccommand\u003e...]\n      Show help.\n  \n    put-json --json-file=JSON-FILE --encrypt [\u003cflags\u003e]\n      Creates SSM parameters from the specified JSON file.\n  \n    get-json --path=PATH --decrypt\n      Retrieves JSON document from SSM parameter store using given path (prefix).\n  \n    del-json --json-file=JSON-FILE\n      Deletes parameters from SSM parameter store based on the specified JSON\n      file.\n\n```","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fb-b3rn4rd%2Fjson2ssm","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fb-b3rn4rd%2Fjson2ssm","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fb-b3rn4rd%2Fjson2ssm/lists"}