{"id":40830303,"url":"https://github.com/daidokoro/qaz","last_synced_at":"2026-01-21T22:21:44.254Z","repository":{"id":47108053,"uuid":"81691609","full_name":"daidokoro/qaz","owner":"daidokoro","description":"qaz—A CLI tool for Templating \u0026 Managing stacks in AWS Cloudformation","archived":false,"fork":false,"pushed_at":"2025-04-22T16:18:14.000Z","size":7572,"stargazers_count":91,"open_issues_count":3,"forks_count":8,"subscribers_count":6,"default_branch":"master","last_synced_at":"2025-08-14T11:43:05.405Z","etag":null,"topics":["aws-cloudformation","cli","cli-app","cloudformation","dependency-chain","go","managing-stacks","qaz","stack","template","templating","yaml"],"latest_commit_sha":null,"homepage":"http://qaz.daidokoro.io","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/daidokoro.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":"2017-02-12T00:07:21.000Z","updated_at":"2024-09-27T03:21:02.000Z","dependencies_parsed_at":"2023-02-10T14:31:43.271Z","dependency_job_id":null,"html_url":"https://github.com/daidokoro/qaz","commit_stats":null,"previous_names":[],"tags_count":29,"template":false,"template_full_name":null,"purl":"pkg:github/daidokoro/qaz","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daidokoro%2Fqaz","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daidokoro%2Fqaz/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daidokoro%2Fqaz/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daidokoro%2Fqaz/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/daidokoro","download_url":"https://codeload.github.com/daidokoro/qaz/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daidokoro%2Fqaz/sbom","scorecard":{"id":317038,"data":{"date":"2025-08-11","repo":{"name":"github.com/daidokoro/qaz","commit":"72bab5c1d8fc7371767444bf40bba5a77b1ec8bd"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":2,"checks":[{"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":"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":"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":"Code-Review","score":5,"reason":"Found 3/6 approved changesets -- score normalized to 5","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":"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":"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":"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":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: goCommand not pinned by hash: publish-release.sh:18","Info:   0 out of   1 goCommand dependencies pinned"],"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":"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":"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":"Signed-Releases","score":0,"reason":"Project has not signed or included provenance with any releases.","details":["Warn: release artifact v0.82.0-beta not signed: https://api.github.com/repos/daidokoro/qaz/releases/26602513","Warn: release artifact v0.81.3-beta not signed: https://api.github.com/repos/daidokoro/qaz/releases/22646065","Warn: release artifact v0.81.2-beta not signed: https://api.github.com/repos/daidokoro/qaz/releases/22504600","Warn: release artifact v0.81.1-beta not signed: https://api.github.com/repos/daidokoro/qaz/releases/20954268","Warn: release artifact v0.81-beta not signed: https://api.github.com/repos/daidokoro/qaz/releases/10954930","Warn: release artifact v0.82.0-beta does not have provenance: https://api.github.com/repos/daidokoro/qaz/releases/26602513","Warn: release artifact v0.81.3-beta does not have provenance: https://api.github.com/repos/daidokoro/qaz/releases/22646065","Warn: release artifact v0.81.2-beta does not have provenance: https://api.github.com/repos/daidokoro/qaz/releases/22504600","Warn: release artifact v0.81.1-beta does not have provenance: https://api.github.com/repos/daidokoro/qaz/releases/20954268","Warn: release artifact v0.81-beta does not have provenance: https://api.github.com/repos/daidokoro/qaz/releases/10954930"],"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 28 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"}},{"name":"Vulnerabilities","score":0,"reason":"39 existing vulnerabilities detected","details":["Warn: Project is vulnerable to: GO-2022-0391 / GHSA-6jvc-q2x7-pchv / GHSA-76wf-9vgp-pj7w","Warn: Project is vulnerable to: GO-2022-0635 / GHSA-7f33-f4f5-xwgw","Warn: Project is vulnerable to: GO-2022-0646 / GHSA-f5pg-7wfw-84q9","Warn: Project is vulnerable to: GO-2021-0227 / GHSA-3vm4-22fp-5rfm","Warn: Project is vulnerable to: GO-2022-0968 / GHSA-gwc9-m7rh-j2ww","Warn: Project is vulnerable to: GO-2021-0356 / GHSA-8c26-wmh5-6g9v","Warn: Project is vulnerable to: GO-2024-2961","Warn: Project is vulnerable to: GO-2023-2402 / GHSA-45x7-px36-x8w8","Warn: Project is vulnerable to: GO-2024-3321 / GHSA-v778-237x-gjrc","Warn: Project is vulnerable to: GO-2025-3487 / GHSA-hcg3-q754-cr77","Warn: Project is vulnerable to: GO-2024-2456 / GHSA-449p-3h89-pw88","Warn: Project is vulnerable to: GO-2024-2466 / GHSA-mw99-9chc-xw7r","Warn: Project is vulnerable to: GO-2025-3367 / GHSA-r9px-m959-cxf4","Warn: Project is vulnerable to: GO-2025-3368 / GHSA-v725-9546-7q7m","Warn: Project is vulnerable to: GO-2022-0493 / GHSA-p782-xgp4-8hr8","Warn: Project is vulnerable to: GO-2021-0061 / GHSA-r88r-gmrh-7j83","Warn: Project is vulnerable to: GO-2022-0956 / GHSA-6q6q-88xp-6f2r","Warn: Project is vulnerable to: GO-2020-0036 / GHSA-wxc4-f4m6-wwqv","Warn: Project is vulnerable to: GO-2022-0209 / GHSA-r5c5-pr8j-pfp7","Warn: Project is vulnerable to: GO-2023-1992 / GHSA-x3jr-pf6g-c48f","Warn: Project is vulnerable to: GO-2022-0229 / GHSA-cjjc-xp8v-855w","Warn: Project is vulnerable to: GO-2020-0012 / GHSA-ffhg-7mh4-33c4","Warn: Project is vulnerable to: GO-2022-0536 / GHSA-39qc-96h7-956f / GHSA-hgr8-6h9x-f7q9","Warn: Project is vulnerable to: GO-2022-0236 / GHSA-h86h-8ppg-mxmh","Warn: Project is vulnerable to: GO-2021-0238 / GHSA-83g2-8m93-v3w7","Warn: Project is vulnerable to: GO-2022-0288","Warn: Project is vulnerable to: GO-2022-0969 / GHSA-69cg-p879-7622","Warn: Project is vulnerable to: GO-2022-1144 / GHSA-xrjj-mj9h-534m","Warn: Project is vulnerable to: GO-2023-1571 / GHSA-vvpx-j8f3-3w6h","Warn: Project is vulnerable to: GO-2023-1988 / GHSA-2wrh-6pvc-2jm9","Warn: Project is vulnerable to: GO-2023-2102 / GHSA-4374-p667-p6c8","Warn: Project is vulnerable to: GHSA-qppj-fm5r-hxr3","Warn: Project is vulnerable to: GO-2024-2687 / GHSA-4v7x-pqxf-cx7m","Warn: Project is vulnerable to: GO-2024-3333","Warn: Project is vulnerable to: GO-2025-3503 / GHSA-qxp5-gwg8-xv66","Warn: Project is vulnerable to: GO-2025-3595 / GHSA-vvgc-356p-c3xw","Warn: Project is vulnerable to: GO-2020-0015 / GHSA-5rcv-m4m3-hfh7","Warn: Project is vulnerable to: GO-2021-0113 / GHSA-ppp9-7jff-5vj2","Warn: Project is vulnerable to: GO-2022-1059 / GHSA-69ch-w2m2-3vjp"],"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}}]},"last_synced_at":"2025-08-18T00:26:35.200Z","repository_id":47108053,"created_at":"2025-08-18T00:26:35.200Z","updated_at":"2025-08-18T00:26:35.200Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28645548,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-21T21:29:11.980Z","status":"ssl_error","status_checked_at":"2026-01-21T21:24:31.872Z","response_time":86,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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-cloudformation","cli","cli-app","cloudformation","dependency-chain","go","managing-stacks","qaz","stack","template","templating","yaml"],"created_at":"2026-01-21T22:21:43.670Z","updated_at":"2026-01-21T22:21:44.248Z","avatar_url":"https://github.com/daidokoro.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":" \u003cp align=\"center\"\u003e\n  \u003cimg src=\"images/qaz.png\"\u003e\n\u003c/p\u003e\n\n[![GitHub stars](https://img.shields.io/github/stars/daidokoro/qaz.svg)](https://github.com/daidokoro/qaz/stargazers)\n[![Build Status](https://travis-ci.org/daidokoro/qaz.svg)](https://travis-ci.org/daidokoro/qaz)\n![Go Report Card](https://goreportcard.com/badge/github.com/daidokoro/qaz)\n\n\n__Qaz__ is a _cloud native_ AWS Cloudformation Template Management CLI tool that focuses on simplifying the process of deploying infrastructure on AWS via Cloudformation by utilising the Go Templates Library and custom functions to generate diverse and configurable templates.\n\nFor Qaz, being _cloud native_ means having no explicit local dependencies and utilising resources within the AWS Ecosystem to extend functionality. As a result Qaz supports various methods for dynamically generating infrastructure via Cloudformation.\n\nQaz emphasizes minimal abstraction from the underlying AWS Cloudformation Platform. It instead enhances customisability and re-usability of templates through dynamic template creation and logic.\n\n--\n\n*Features:*\n\n- Advanced template functionality \u0026 custom built-in template functions\n\n- Support for Cloudformation templates written in JSON \u0026 YAML\n\n- Dynamic deploy script generation utilising the built-in templating functionality\n\n- Single Yaml, JSON or [HCL](https://github.com/hashicorp/hcl) configuration file for multiple stack templates per environment\n\n- Utilises Go-routines for Multi-stack concurrent Cloudformation requests for *all* appropriate calls\n\n- Support for AWS Profile selection \u0026 Role switching for Multi-AWS account environments\n\n- Cross stack referencing with support for Cloudformation Exports(_Preferred_) \u0026 dynamically retrieving stack outputs on deploy\n\n- *Decoupled* build mechanism. Qaz can manage infrastructure by accessing config/templates via AWS Lambda, S3, or HTTP(S). The tool does not need to be in the same place as the templates/config.\n\n- *Decoupled* stack management. Stacks can be launched individually from different locations and build consistently according to the dependency chain as long as the same configuration file is read.\n\n- *Encryption* \u0026 *Decryption* of template values \u0026 deployment of encrypted templates using AWS KMS.\n\n- Simultaneous Cross-Account or Cross-Region Stack Deployments.\n\n- Support for fetching templates and configuration via Lambda Execution allows for dynamically generating Cloudformation using any of the Languages supported in AWS Lambda, (_Go_, _nodejs, python, java_, _etc_)\n\n- __Troposphere__ \u0026 [GoFormation](https://github.com/awslabs/goformation) support via Lambda.\n\n- Deploy Cloudformation directly from your Git Repo\n\n- Support for [AWS Serverless Architecture Model (SAM) Templates](https://github.com/awslabs/serverless-application-model)\n\n- Interactive Shell Mode\n\n- Dynamic Config File generation using Template Functions (__New!__) - Allows configuration values to be retrieved using API calls, from S3, decrypted via _KMS_ and much more.\n\n\n## Installation\n\nIf you have Golang installed:\n\n`go get github.com/daidokoro/qaz`\n\nOn Mac or Linux:\n\n```\ncurl https://raw.githubusercontent.com/daidokoro/qaz/master/install.sh | sh\n```\n\nOr, you may need _sudo_:\n\n```\ncurl https://raw.githubusercontent.com/daidokoro/qaz/master/install.sh | sudo sh\n```\n\n## Requirements\nqaz requires:\n\n- AWS credentials, you can read about how to set these up [here](http://blogs.aws.amazon.com/security/post/Tx3D6U6WSFGOK2H/A-New-and-Standardized-Way-to-Manage-Credentials-in-the-AWS-SDKs)\n\n## Quickstart\n\n[![asciicast](https://asciinema.org/a/bbuegywnih0x1r35epfdotrv5.png)](https://asciinema.org/a/bbuegywnih0x1r35epfdotrv5?speed=2)\n\n## Checkout the [Wiki](https://github.com/daidokoro/qaz/wiki) for more on how Qaz works!\n\n__Content___\n\n- [Home](https://github.com/daidokoro/qaz/wiki)\n- [Installation](https://github.com/daidokoro/qaz/wiki/Install)\n- [Configuration](https://github.com/daidokoro/qaz/wiki/Config)\n  - [Roles vs Profiles](https://github.com/daidokoro/qaz/wiki/Roles-vs-Profiles)\n- [Custom Template Functions](https://github.com/daidokoro/qaz/wiki/Custom-Function)\n- [Templating with Qaz](https://github.com/daidokoro/qaz/wiki/Templates)\n- [Troposphere via Lambda](https://github.com/daidokoro/qaz/wiki/Troposphere)\n- [Deploy using Git](https://github.com/daidokoro/qaz/wiki/Deploy-Using-Git)\n\n\n\n--\n\nSee `examples` folder for more examples of usage. More examples to come.\n\n```\n$ qaz\n\nUsage:\n  qaz [flags]\n  qaz [command]\n\nAvailable Commands:\n  change      Change-Set management for AWS Stacks\n  check       Validates Cloudformation Templates\n  completion  Output shell completion code for the specified shell (bash or zsh)\n  deploy      Deploys stack(s) to AWS\n  exports     Prints stack exports\n  generate    Generates template from configuration values\n  git-deploy  Deploy project from Git repository\n  git-status  Check status of deployment via files stored in Git repository\n  help        Help about any command\n  init        Creates an initial Qaz config file\n  invoke      Invoke AWS Lambda Functions\n  lint        Validates stack by calling cfn-lint\n  outputs     Prints stack outputs\n  protect     Enables stack termination protection\n  set-policy  Set Stack Policies based on configured value\n  shell       Qaz interactive shell - loads the specified config into an interactive shell\n  status      Prints status of deployed/un-deployed stacks\n  terminate   Terminates stacks\n  update      Updates a given stack\n  values      Print stack values from config in YAML format\n\nFlags:\n      --debug            Run in debug mode...\n  -h, --help             help for qaz\n      --no-colors        disable colors in outputs\n  -p, --profile string   configured aws profile (default \"default\")\n      --version          print current/running version\n\nUse \"qaz [command] --help\" for more information about a command.\n\n```\n\n--\n## Roadmap and status\nQaz is now in __beta__, no more breaking changes to come. The focus from this point on is stability.\n\n*TODO:*\n\n- More Comprehensive Documentation\n- More Deploy/Gen-Time Functions\n- Tests!!\n\n--\n\n## Credits\n\n- [pkazmierczak](https://github.com/pkazmierczak) - Qaz was originally a fork of the __Bora__ Project\n\n\n# Contributing\n\nFork -\u003e Patch -\u003e Push -\u003e Pull Request\n\n_Pull requests welcomed...._\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdaidokoro%2Fqaz","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdaidokoro%2Fqaz","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdaidokoro%2Fqaz/lists"}