{"id":13505578,"url":"https://github.com/udondan/iam-floyd","last_synced_at":"2026-05-26T05:04:22.338Z","repository":{"id":37080706,"uuid":"268601916","full_name":"udondan/iam-floyd","owner":"udondan","description":"AWS IAM policy statement generator with fluent interface","archived":false,"fork":false,"pushed_at":"2026-04-22T03:13:10.000Z","size":29037,"stargazers_count":566,"open_issues_count":11,"forks_count":20,"subscribers_count":3,"default_branch":"main","last_synced_at":"2026-04-22T05:44:45.724Z","etag":null,"topics":["aws","aws-cdk","cdk","generator","hacktoberfest","iam","iam-policy","jsii"],"latest_commit_sha":null,"homepage":"https://iam-floyd.readthedocs.io/","language":"TypeScript","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/udondan.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG/v0.100.0.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-06-01T18:33:25.000Z","updated_at":"2026-04-22T03:09:53.000Z","dependencies_parsed_at":"2023-12-21T04:39:58.674Z","dependency_job_id":"771cf3dd-611f-4f10-9210-9ceb182c6ce6","html_url":"https://github.com/udondan/iam-floyd","commit_stats":{"total_commits":1643,"total_committers":8,"mean_commits":205.375,"dds":0.4674376141205112,"last_synced_commit":"66d39c8e5593e682174c6d39d9f4c60c124fd368"},"previous_names":[],"tags_count":682,"template":false,"template_full_name":null,"purl":"pkg:github/udondan/iam-floyd","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/udondan%2Fiam-floyd","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/udondan%2Fiam-floyd/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/udondan%2Fiam-floyd/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/udondan%2Fiam-floyd/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/udondan","download_url":"https://codeload.github.com/udondan/iam-floyd/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/udondan%2Fiam-floyd/sbom","scorecard":{"id":906987,"data":{"date":"2025-08-11","repo":{"name":"github.com/udondan/iam-floyd","commit":"50e31b252e832bb5413632fba4304e11528dcdcf"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":4.7,"checks":[{"name":"Code-Review","score":0,"reason":"Found 0/21 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":"Maintained","score":10,"reason":"30 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 10","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":10,"reason":"no dangerous workflow patterns detected","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":"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":"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":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: no topLevel permission defined: .github/workflows/automerge.yml:1","Warn: no topLevel permission defined: .github/workflows/generate.yml:1","Warn: no topLevel permission defined: .github/workflows/index-managed-policies.yml:1","Warn: no topLevel permission defined: .github/workflows/remove-old-artifacts.yml:1","Warn: no topLevel permission defined: .github/workflows/test-and-publish.yml:1","Warn: no topLevel permission defined: .github/workflows/toot.yml:1","Info: no jobLevel write permissions found"],"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":"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":"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":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: third-party GitHubAction not pinned by hash: .github/workflows/automerge.yml:19: update your workflow using https://app.stepsecurity.io/secureworkflow/udondan/iam-floyd/automerge.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/automerge.yml:29: update your workflow using https://app.stepsecurity.io/secureworkflow/udondan/iam-floyd/automerge.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/generate.yml:27: update your workflow using https://app.stepsecurity.io/secureworkflow/udondan/iam-floyd/generate.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/generate.yml:32: update your workflow using https://app.stepsecurity.io/secureworkflow/udondan/iam-floyd/generate.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/generate.yml:103: update your workflow using https://app.stepsecurity.io/secureworkflow/udondan/iam-floyd/generate.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/index-managed-policies.yml:18: update your workflow using https://app.stepsecurity.io/secureworkflow/udondan/iam-floyd/index-managed-policies.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/index-managed-policies.yml:23: update your workflow using https://app.stepsecurity.io/secureworkflow/udondan/iam-floyd/index-managed-policies.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/index-managed-policies.yml:57: update your workflow using https://app.stepsecurity.io/secureworkflow/udondan/iam-floyd/index-managed-policies.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/remove-old-artifacts.yml:13: update your workflow using https://app.stepsecurity.io/secureworkflow/udondan/iam-floyd/remove-old-artifacts.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test-and-publish.yml:25: update your workflow using https://app.stepsecurity.io/secureworkflow/udondan/iam-floyd/test-and-publish.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test-and-publish.yml:30: update your workflow using https://app.stepsecurity.io/secureworkflow/udondan/iam-floyd/test-and-publish.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/test-and-publish.yml:64: update your workflow using https://app.stepsecurity.io/secureworkflow/udondan/iam-floyd/test-and-publish.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test-and-publish.yml:74: update your workflow using https://app.stepsecurity.io/secureworkflow/udondan/iam-floyd/test-and-publish.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test-and-publish.yml:85: update your workflow using https://app.stepsecurity.io/secureworkflow/udondan/iam-floyd/test-and-publish.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test-and-publish.yml:90: update your workflow using https://app.stepsecurity.io/secureworkflow/udondan/iam-floyd/test-and-publish.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test-and-publish.yml:100: update your workflow using https://app.stepsecurity.io/secureworkflow/udondan/iam-floyd/test-and-publish.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test-and-publish.yml:126: update your workflow using https://app.stepsecurity.io/secureworkflow/udondan/iam-floyd/test-and-publish.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test-and-publish.yml:131: update your workflow using https://app.stepsecurity.io/secureworkflow/udondan/iam-floyd/test-and-publish.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test-and-publish.yml:141: update your workflow using https://app.stepsecurity.io/secureworkflow/udondan/iam-floyd/test-and-publish.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test-and-publish.yml:183: update your workflow using https://app.stepsecurity.io/secureworkflow/udondan/iam-floyd/test-and-publish.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test-and-publish.yml:193: update your workflow using https://app.stepsecurity.io/secureworkflow/udondan/iam-floyd/test-and-publish.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test-and-publish.yml:212: update your workflow using https://app.stepsecurity.io/secureworkflow/udondan/iam-floyd/test-and-publish.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test-and-publish.yml:231: update your workflow using https://app.stepsecurity.io/secureworkflow/udondan/iam-floyd/test-and-publish.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test-and-publish.yml:237: update your workflow using https://app.stepsecurity.io/secureworkflow/udondan/iam-floyd/test-and-publish.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test-and-publish.yml:247: update your workflow using https://app.stepsecurity.io/secureworkflow/udondan/iam-floyd/test-and-publish.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test-and-publish.yml:274: update your workflow using https://app.stepsecurity.io/secureworkflow/udondan/iam-floyd/test-and-publish.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test-and-publish.yml:280: update your workflow using https://app.stepsecurity.io/secureworkflow/udondan/iam-floyd/test-and-publish.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test-and-publish.yml:290: update your workflow using https://app.stepsecurity.io/secureworkflow/udondan/iam-floyd/test-and-publish.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/toot.yml:19: update your workflow using https://app.stepsecurity.io/secureworkflow/udondan/iam-floyd/toot.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/toot.yml:25: update your workflow using https://app.stepsecurity.io/secureworkflow/udondan/iam-floyd/toot.yml/main?enable=pin","Info:   0 out of  24 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   6 third-party GitHubAction 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":"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":"Branch-Protection","score":-1,"reason":"internal error: error during branchesHandler.setup: internal error: githubv4.Query: Resource not accessible by integration","details":null,"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":"Vulnerabilities","score":9,"reason":"1 existing vulnerabilities detected","details":["Warn: Project is vulnerable to: GHSA-fjxv-7rqg-78g4"],"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 30 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-24T17:42:12.731Z","repository_id":37080706,"created_at":"2025-08-24T17:42:12.731Z","updated_at":"2025-08-24T17:42:12.731Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32286271,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-25T18:29:39.964Z","status":"online","status_checked_at":"2026-04-26T02:00:05.962Z","response_time":129,"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","aws-cdk","cdk","generator","hacktoberfest","iam","iam-policy","jsii"],"created_at":"2024-08-01T00:01:10.037Z","updated_at":"2026-05-26T05:04:22.332Z","avatar_url":"https://github.com/udondan.png","language":"TypeScript","funding_links":[],"categories":["TypeScript","Identity and access management","Construct Libraries","aws","Authorization"],"sub_categories":["Hook management tools","Security","AWS policy tools"],"readme":"# IAM Floyd\n\n[![Source](https://img.shields.io/github/stars/udondan/iam-floyd?logo=github\u0026label=GitHub%20Stars)][source]\n[![iam-floyd](https://img.shields.io/github/v/release/udondan/iam-floyd)][source]\n[![libraries.io](https://img.shields.io/badge/packages-libraries.io-yellow)][libraries.io]\n[![Documentation](https://img.shields.io/badge/Documentation-Read%20the%20Docs-orange)][documentation]\n[![GitHub](https://img.shields.io/github/license/udondan/iam-floyd)][license]\n\n\u003c!-- put back - when we actually have tests\n[![Test Coverage](https://api.codeclimate.com/v1/badges/cdb84b5646c6805b1a23/test_coverage)](https://codeclimate.com/github/udondan/iam-floyd/test_coverage)\n--\u003e\n\n**AWS [IAM policy statement][statement] generator with fluent interface.**\n\n\u003c!-- stats --\u003e\nSupport for:\n\n- 449 Services\n- 20844 Actions\n- 2214 Resource Types\n- 2349 Condition keys\n\u003c!-- /stats --\u003e\n\n![EXPERIMENTAL](https://img.shields.io/badge/stability-experimantal-orange?style=for-the-badge)**\u003cbr\u003eThis is an early version of the package. The API will change while I implement new features. Therefore make sure you use an exact version in your `package.json` before it reaches 1.0.0.**\n\n## Documentation\n\nFind the documentation at [Read the Docs][documentation].\n\n[![Auto completion demo](https://raw.githubusercontent.com/udondan/iam-floyd/main/docs/movie-preview.png)](https://www.youtube.com/watch?v=4dHY8qPHbKA 'Auto completion demo')\n\n## Packages\n\nThere are two different package variants available:\n\n- **iam-floyd**: Can be used in AWS SDK or for whatever you need an IAM policy statement for \u003cbr\u003e[![npm](https://img.shields.io/npm/dt/iam-floyd?label=npm\u0026color=blueviolet)](https://www.npmjs.com/package/iam-floyd)\n- **cdk-iam-floyd**: Integrates into [AWS CDK] and extends [`iam.PolicyStatement`](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-iam.PolicyStatement.html)\u003cbr\u003e[![npm](https://img.shields.io/npm/dt/cdk-iam-floyd?label=npm\u0026color=orange)](https://www.npmjs.com/package/cdk-iam-floyd)\n\n  **Starting with version 0.300.0, the packages are compatible with CDK v2.** For CDK v1 you can use any version up to:\u003cbr\u003e\n  [![npm CDK v1](https://img.shields.io/badge/npm-0.286.0-yellow)](https://www.npmjs.com/package/cdk-iam-floyd/v/0.286.0)\n\n  Find them all on [libraries.io].\n\n## CDK Compatibility Matrix\n\n| CDK        | cdk-iam-floyd              |\n| ---------- | -------------------------- |\n| \u003c= 1.151.0 | \u003c= 0.285.0                 |\n| \u003e= 1.152.0 | 0.286.0                    |\n| \u003e= 1.158.0 | **No compatible version!** |\n| \u003e= 2.0.0   | \u003e= 0.300.0                 |\n| \u003e= 2.20.0  | \u003e= 0.351.0                 |\n| \u003e= 2.26.0  | \u003e= 0.377.0                 |\n| 2.29.x     | **No compatible version!** |\n| \u003e= 2.30.0  | \u003e= 0.391.0                 |\n\n---\n\n## Legal\n\nThe code contained in the [lib/generated](https://github.com/udondan/iam-floyd/tree/main/lib/generated) folder is generated from the [AWS documentation](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_actions-resources-contextkeys.html). The class- and function-names and their description therefore are property of AWS.\n\nAWS and their services are trademarks, registered trademarks or trade dress of AWS in the U.S. and/or other countries.\n\nThis project is not affiliated, funded, or in any way associated with AWS.\n\nIAM Floyd is licensed under [Apache License 2.0][license]. Dependencies might be released under different licenses.\n\n   [source]: https://github.com/udondan/iam-floyd\n   [documentation]: https://iam-floyd.readthedocs.io/en/latest/\n   [npm]: https://www.npmjs.com/package/iam-floyd\n   [license]: https://github.com/udondan/iam-floyd/blob/main/LICENSE\n   [statement]: https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_statement.html\n   [libraries.io]: https://libraries.io/search?q=iam-floyd\n   [AWS CDK]: https://aws.amazon.com/cdk/\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fudondan%2Fiam-floyd","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fudondan%2Fiam-floyd","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fudondan%2Fiam-floyd/lists"}