{"id":21127299,"url":"https://github.com/pepperize/cdk-terraform-state-backend","last_synced_at":"2025-07-08T23:32:54.722Z","repository":{"id":36966162,"uuid":"435002395","full_name":"pepperize/cdk-terraform-state-backend","owner":"pepperize","description":"This project provides a CDK construct bootstrapping an AWS account with a S3 Bucket and a DynamoDB table as terraform state backend.","archived":false,"fork":false,"pushed_at":"2025-06-18T06:39:51.000Z","size":5756,"stargazers_count":13,"open_issues_count":9,"forks_count":2,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-06-18T07:29:23.813Z","etag":null,"topics":["aws","backend","bucket","cdk","dynamodb","lock","s3","state","terraform"],"latest_commit_sha":null,"homepage":"","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/pepperize.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,"zenodo":null}},"created_at":"2021-12-04T20:29:09.000Z","updated_at":"2025-06-17T06:49:40.000Z","dependencies_parsed_at":"2023-12-19T08:04:10.503Z","dependency_job_id":"8ebf02f9-5d1c-4c72-ba08-a09db9cd0451","html_url":"https://github.com/pepperize/cdk-terraform-state-backend","commit_stats":{"total_commits":821,"total_committers":5,"mean_commits":164.2,"dds":0.09135200974421442,"last_synced_commit":"11eb6824f91e40268c9aca1b5d02b939d5f0d429"},"previous_names":[],"tags_count":1392,"template":false,"template_full_name":null,"purl":"pkg:github/pepperize/cdk-terraform-state-backend","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pepperize%2Fcdk-terraform-state-backend","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pepperize%2Fcdk-terraform-state-backend/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pepperize%2Fcdk-terraform-state-backend/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pepperize%2Fcdk-terraform-state-backend/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pepperize","download_url":"https://codeload.github.com/pepperize/cdk-terraform-state-backend/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pepperize%2Fcdk-terraform-state-backend/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":264365890,"owners_count":23596925,"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","backend","bucket","cdk","dynamodb","lock","s3","state","terraform"],"created_at":"2024-11-20T04:48:16.840Z","updated_at":"2025-07-08T23:32:54.352Z","avatar_url":"https://github.com/pepperize.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](https://makeapullrequest.com)\n[![GitHub](https://img.shields.io/github/license/pepperize/cdk-terraform-state-backend?style=flat-square)](https://github.com/pepperize/cdk-terraform-state-backend/blob/main/LICENSE)\n[![npm (scoped)](https://img.shields.io/npm/v/@pepperize/cdk-terraform-state-backend?style=flat-square)](https://www.npmjs.com/package/@pepperize/cdk-terraform-state-backend)\n[![PyPI](https://img.shields.io/pypi/v/pepperize.cdk-terraform-state-backend?style=flat-square)](https://pypi.org/project/pepperize.cdk-terraform-state-backend/)\n[![Nuget](https://img.shields.io/nuget/v/Pepperize.CDK.TerraformStateBackend?style=flat-square)](https://www.nuget.org/packages/Pepperize.CDK.TerraformStateBackend/)\n[![Sonatype Nexus (Releases)](https://img.shields.io/nexus/r/com.pepperize/cdk-terraform-state-backend?server=https%3A%2F%2Fs01.oss.sonatype.org%2F\u0026style=flat-square)](https://s01.oss.sonatype.org/content/repositories/releases/com/pepperize/cdk-terraform-state-backend/)\n[![GitHub Workflow Status (branch)](https://img.shields.io/github/actions/workflow/status/pepperize/cdk-terraform-state-backend/release.yml?banch=main\u0026label=release\u0026style=flat-square)](https://github.com/pepperize/cdk-terraform-state-backend/actions/workflows/release.yml)\n[![GitHub release (latest SemVer)](https://img.shields.io/github/v/release/pepperize/cdk-terraform-state-backend?sort=semver\u0026style=flat-square)](https://github.com/pepperize/cdk-terraform-state-backend/releases)\n\n# AWS CDK Terraform state backend\n\nThis project provides a CDK construct bootstrapping an AWS account with a S3 Bucket and a DynamoDB table as [Terraform state backend](https://www.terraform.io/docs/language/settings/backends/s3.html).\n\nTerraform doesn't come shipped with a cli command bootstrapping the account for [State Storage and Locking](https://www.terraform.io/docs/language/state/backends.html)\nlike [AWS CDK](https://docs.aws.amazon.com/cdk/latest/guide/cli.html#cli-bootstrap) provides with `cdk bootstrap`.\nWhile bootstrapping the AWS Organization and Accounts this construct may be used to create:\n\n- S3 Bucket with blocked public access, versioned, encrypted by SSE-S3\n- DynamoDB Table with pay per request, continuous backups using point-in-time recovery, encrypted by AWS owned key\n- IAM Policy with read/write access to the created S3 Bucket and DynamoDB Table\n\nSee [API.md](https://github.com/pepperize/cdk-terraform-state-backend/blob/main/API.md)\n\n## Install\n\n### TypeScript\n\n```shell\nnpm install @pepperize/cdk-terraform-state-backend\n```\n\nor\n\n```shell\nyarn add @pepperize/cdk-terraform-state-backend\n```\n\n### Python\n\n```shell\npip install pepperize.cdk-terraform-state-backend\n```\n\n### C# / .Net\n\n```\ndotnet add package Pepperize.CDK.TerraformStateBackend\n```\n\n### Java\n\n```xml\n\u003cdependency\u003e\n  \u003cgroupId\u003ecom.pepperize\u003c/groupId\u003e\n  \u003cartifactId\u003ecdk-terraform-state-backend\u003c/artifactId\u003e\n  \u003cversion\u003e${cdkTerraformStateBackend.version}\u003c/version\u003e\n\u003c/dependency\u003e\n```\n\n## Example\n\n```typescript\nimport { App, Stack } from \"aws-cdk-lib\";\nimport { TerraformStateBackend } from \"@pepperize/cdk-terraform-state-backend\";\n\nconst app = new App();\nconst stack = new Stack(app, \"stack\", {\n  env: {\n    account: \"123456789012\",\n    region: \"us-east-1\",\n  },\n});\n\n// When\nnew TerraformStateBackend(stack, \"TerraformStateBackend\", {\n  bucketName: \"terraform-state-backend\",\n  tableName: \"terraform-state-backend\",\n});\n```\n\n```hcl\nterraform {\n  backend \"s3\" {\n    bucket = \"terraform-state-backend-123456789012-us-east-1\"\n    dynamodb_table = \"terraform-state-backend-123456789012\"\n    key = \"path/to/my/key\"\n    region = \"us-east-1\"\n  }\n}\n```\n\nSee [Terraform S3 Example Configuration](https://www.terraform.io/docs/language/settings/backends/s3.html#example-configuration)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpepperize%2Fcdk-terraform-state-backend","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpepperize%2Fcdk-terraform-state-backend","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpepperize%2Fcdk-terraform-state-backend/lists"}