{"id":19014955,"url":"https://github.com/gradientedge/cdk-utils","last_synced_at":"2026-05-21T13:01:43.459Z","repository":{"id":36958183,"uuid":"329864410","full_name":"gradientedge/cdk-utils","owner":"gradientedge","description":"Gradient Edge CDK Utilities","archived":false,"fork":false,"pushed_at":"2026-04-18T14:21:24.000Z","size":14166,"stargazers_count":3,"open_issues_count":0,"forks_count":2,"subscribers_count":7,"default_branch":"main","last_synced_at":"2026-04-18T14:42:23.866Z","etag":null,"topics":["aws","azure","cdk","cloudflare","pulumi","typescipt"],"latest_commit_sha":null,"homepage":"https://gradientedge.github.io/cdk-utils","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/gradientedge.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2021-01-15T09:19:28.000Z","updated_at":"2026-04-18T14:17:32.000Z","dependencies_parsed_at":"2026-01-07T10:08:30.116Z","dependency_job_id":"8cf97934-d0ba-4c9e-96b5-39d55f9c4d5f","html_url":"https://github.com/gradientedge/cdk-utils","commit_stats":{"total_commits":557,"total_committers":7,"mean_commits":79.57142857142857,"dds":"0.40754039497307004","last_synced_commit":"47fbe72cfa4f8ca6a149c83b9b830d1c92f9c05b"},"previous_names":[],"tags_count":513,"template":false,"template_full_name":null,"purl":"pkg:github/gradientedge/cdk-utils","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gradientedge%2Fcdk-utils","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gradientedge%2Fcdk-utils/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gradientedge%2Fcdk-utils/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gradientedge%2Fcdk-utils/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/gradientedge","download_url":"https://codeload.github.com/gradientedge/cdk-utils/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gradientedge%2Fcdk-utils/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32243803,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-24T13:21:15.438Z","status":"ssl_error","status_checked_at":"2026-04-24T13:21:15.005Z","response_time":64,"last_error":"SSL_read: 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","azure","cdk","cloudflare","pulumi","typescipt"],"created_at":"2024-11-08T19:34:19.855Z","updated_at":"2026-04-24T23:01:47.963Z","avatar_url":"https://github.com/gradientedge.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# \u003cimg src=\"https://cdn.gradientedge.io/images/ge-logo-1200.png\" width=\"175px\" alt=\"Gradient Edge\"\u003e CDK Utils\n\n[![Release][release]][release-url]\n[![version][version]][version-url]\n\n[![License][license]][license-url]\n[![Maintained][maintained]][repo-url]\n[![Dependencies][dependencies]][dependencies-url]\n[![Twitter][twitter]][twitter-url]\n\n[![AWS CLI][aws-cli-badge]][aws-cli-url]\n[![Node][node-badge]][node-url]\n[![CDK][cdk-badge]][cdk-url]\n[![Pulumi][pulumi-badge]][pulumi-url]\n[![Pulumi Azure][pulumi-azure-badge]][pulumi-azure-url]\n[![Pulumi Cloudflare][pulumi-cloudflare-badge]][pulumi-cloudflare-url]\n\n[![Builds][builds]][builds-url]\n[![Coverage][coverage]][codecov-url]\n[![Code Size][code-size]][version-url]\n\n[![Downloads][downloads]][version-url]\n[![Commits][commits]][commits-url]\n[![Last Commits][last-commit]][commits-url]\n[![Issues][issues]][issues-url]\n[![Pull Requests][pr]][pr-url]\n\n## Introduction\n\nA comprehensive toolkit for provisioning cloud infrastructure using [AWS CDK][aws-cdk] and [Pulumi][pulumi]. This monorepo provides high-level constructs, service managers, and common utilities that simplify infrastructure-as-code across AWS, Azure, and Cloudflare.\n\nFor more details, see the full [API documentation](https://gradientedge.github.io/cdk-utils/).\n\n## Packages\n\n| Package                              | Description                                                 |\n| ------------------------------------ | ----------------------------------------------------------- |\n| `@gradientedge/cdk-utils-aws`        | AWS CDK constructs and service managers                     |\n| `@gradientedge/cdk-utils-azure`      | Azure Pulumi (Azure Native) constructs and service managers |\n| `@gradientedge/cdk-utils-cloudflare` | Cloudflare Pulumi constructs and service managers           |\n| `@gradientedge/cdk-utils-common`     | Shared utilities, types, and stage helpers                  |\n| `@gradientedge/cdk-utils`            | Umbrella package that re-exports all of the above           |\n\n## Prerequisites\n\n- [Node.js](https://nodejs.org/) \u003e= 22\n- [pnpm](https://pnpm.io/) 10\n\n## Installation\n\nInstall the umbrella package:\n\n```shell\npnpm add @gradientedge/cdk-utils\n```\n\nOr install individual packages as needed:\n\n```shell\npnpm add @gradientedge/cdk-utils-aws\npnpm add @gradientedge/cdk-utils-azure\npnpm add @gradientedge/cdk-utils-cloudflare\npnpm add @gradientedge/cdk-utils-common\n```\n\n## Quick Start\n\n### AWS\n\n```typescript\nimport { CommonConstruct, CommonStackProps } from '@gradientedge/cdk-utils-aws'\nimport { Construct } from 'constructs'\n\nclass MyStack extends CommonConstruct {\n  constructor(parent: Construct, id: string, props: CommonStackProps) {\n    super(parent, id, props)\n    this.initResources()\n  }\n\n  protected initResources() {\n    this.lambdaManager.createLambdaFunction('MyFunction', this, functionProps)\n    this.s3Manager.createBucket('MyBucket', this, bucketProps)\n  }\n}\n```\n\n### Azure\n\n```typescript\nimport { CommonAzureConstruct } from '@gradientedge/cdk-utils-azure'\nimport * as pulumi from '@pulumi/pulumi'\n\nclass MyAzureStack extends CommonAzureConstruct {\n  constructor(name: string, args: any, opts?: pulumi.ComponentResourceOptions) {\n    super(name, args, opts)\n    this.initResources()\n  }\n}\n```\n\n### Cloudflare\n\n```typescript\nimport { CommonCloudflareConstruct } from '@gradientedge/cdk-utils-cloudflare'\nimport * as pulumi from '@pulumi/pulumi'\n\nclass MyCloudflareStack extends CommonCloudflareConstruct {\n  constructor(name: string, args: any, opts?: pulumi.ComponentResourceOptions) {\n    super(name, args, opts)\n    this.initResources()\n  }\n}\n```\n\n## Development\n\n### Setup\n\n```shell\npnpm install\npnpm build\n```\n\n### Testing\n\nRun the full test suite:\n\n```shell\npnpm test\n```\n\nWatch mode for a specific test:\n\n```shell\npnpm test:watch static-asset-deployment-distribution-ref.test.ts\n```\n\n### Validation\n\nRun prettier, linting, and tests:\n\n```shell\npnpm validate\n```\n\n### Generate API Documentation\n\n```shell\npnpm run docs\n```\n\n### Test Utilities\n\nThere are common utilities that help with testing constructs in the [test tools](https://github.com/gradientedge/cdk-utils/tree/main/packages/aws/test/tools/cdk) directory. A [debug](https://github.com/gradientedge/cdk-utils/tree/main/packages/aws/test/tools/debug) utility is also available for printing template contents during development.\n\n## Contributing\n\nSee [CONTRIBUTING.md](CONTRIBUTING.md) for guidelines on how to contribute to this project.\n\n## License\n\nThis project is licensed under the MIT License — see the [LICENSE](LICENSE) file for details.\n\n\u003c!-- references --\u003e\n\n[aws-cdk]: https://docs.aws.amazon.com/cdk/latest/guide/home.html\n[aws-cli-badge]: https://img.shields.io/badge/aws--cli-2.3.4-777BB4?logo=amazon-aws\n[aws-cli-url]: https://aws.amazon.com/cli/\n[builds]: https://img.shields.io/github/actions/workflow/status/gradientedge/cdk-utils/ci.yml?branch=main\n[builds-url]: https://github.com/gradientedge/cdk-utils/actions\n[cdk-badge]: https://img.shields.io/github/package-json/dependency-version/gradientedge/cdk-utils/aws-cdk-lib?filename=packages/aws/package.json\n[pulumi]: https://www.pulumi.com/docs/\n[cdk-url]: https://aws.amazon.com/cdk/\n[code-size]: https://img.shields.io/github/languages/code-size/gradientedge/cdk-utils\n[codecov-url]: https://app.codecov.io/gh/gradientedge/cdk-utils\n[coverage]: https://codecov.io/gh/gradientedge/cdk-utils/branch/main/graph/badge.svg\n[commits]: https://img.shields.io/github/commit-activity/m/gradientedge/cdk-utils\n[commits-url]: https://github.com/gradientedge/cdk-utils/commits/main\n[downloads]: https://img.shields.io/npm/dw/@gradientedge/cdk-utils\n[dependencies]: https://img.shields.io/librariesio/release/npm/@gradientedge/cdk-utils\n[dependencies-url]: https://github.com/gradientedge/cdk-utils/blob/main/package.json\n[issues]: https://img.shields.io/github/issues/gradientedge/cdk-utils.svg\n[issues-url]: https://github.com/gradientedge/cdk-utils/issues\n[pr]: https://img.shields.io/github/issues-pr/gradientedge/cdk-utils.svg\n[pr-url]: https://github.com/gradientedge/cdk-utils/pulls\n[pulumi-badge]: https://img.shields.io/github/package-json/dependency-version/gradientedge/cdk-utils/@pulumi/pulumi?filename=packages/azure/package.json\n[pulumi-azure-badge]: https://img.shields.io/github/package-json/dependency-version/gradientedge/cdk-utils/@pulumi/azure-native?filename=packages/azure/package.json\n[pulumi-cloudflare-badge]: https://img.shields.io/github/package-json/dependency-version/gradientedge/cdk-utils/@pulumi/cloudflare?filename=packages/cloudflare/package.json\n[pulumi-url]: https://www.pulumi.com/\n[pulumi-azure-url]: https://www.pulumi.com/registry/packages/azure-native/\n[pulumi-cloudflare-url]: https://www.pulumi.com/registry/packages/cloudflare/\n[last-commit]: https://img.shields.io/github/last-commit/gradientedge/cdk-utils\n[license]: https://img.shields.io/github/license/gradientedge/cdk-utils\n[license-url]: https://github.com/gradientedge/cdk-utils/blob/main/LICENSE\n[maintained]: https://img.shields.io/badge/maintained-YES-green\n[node-badge]: https://img.shields.io/node/v/@gradientedge/cdk-utils\n[node-url]: https://nodejs.org/\n[release]: https://img.shields.io/github/release/gradientedge/cdk-utils.svg\n[release-url]: https://gradientedge.github.io/cdk-utils/\n[repo-url]: https://github.com/gradientedge/cdk-utils\n[twitter]: https://img.shields.io/twitter/follow/gradientedge\n[twitter-url]: https://twitter.com/gradientedge\n[version]: https://img.shields.io/npm/v/@gradientedge/cdk-utils\n[version-url]: https://www.npmjs.com/package/@gradientedge/cdk-utils\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgradientedge%2Fcdk-utils","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgradientedge%2Fcdk-utils","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgradientedge%2Fcdk-utils/lists"}