{"id":28523141,"url":"https://github.com/upbound/configuration-aws-dynamodb","last_synced_at":"2026-01-30T11:25:35.569Z","repository":{"id":294515587,"uuid":"791507790","full_name":"upbound/configuration-aws-dynamodb","owner":"upbound","description":"A configuration for AWS DynamoDB cluster and related resources","archived":false,"fork":false,"pushed_at":"2026-01-13T06:01:02.000Z","size":64,"stargazers_count":0,"open_issues_count":7,"forks_count":0,"subscribers_count":7,"default_branch":"main","last_synced_at":"2026-01-13T09:15:11.274Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Makefile","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/upbound.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":".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":"2024-04-24T20:58:19.000Z","updated_at":"2025-05-25T10:23:16.000Z","dependencies_parsed_at":null,"dependency_job_id":"2cefafa3-139b-45c7-9757-5f2d1dc79dc2","html_url":"https://github.com/upbound/configuration-aws-dynamodb","commit_stats":null,"previous_names":["upbound/configuration-aws-dynamodb"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/upbound/configuration-aws-dynamodb","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/upbound%2Fconfiguration-aws-dynamodb","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/upbound%2Fconfiguration-aws-dynamodb/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/upbound%2Fconfiguration-aws-dynamodb/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/upbound%2Fconfiguration-aws-dynamodb/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/upbound","download_url":"https://codeload.github.com/upbound/configuration-aws-dynamodb/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/upbound%2Fconfiguration-aws-dynamodb/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28911821,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-30T08:15:08.179Z","status":"ssl_error","status_checked_at":"2026-01-30T08:14:31.507Z","response_time":66,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6: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":[],"created_at":"2025-06-09T10:07:20.773Z","updated_at":"2026-01-30T11:25:35.562Z","avatar_url":"https://github.com/upbound.png","language":"Makefile","funding_links":[],"categories":[],"sub_categories":[],"readme":"# configuration-aws-dynamodb\nA configuration for AWS DynamoDB tables and related resources.\nThis `configuration-aws-dynamodb` optionally creates a replica\ntable in a different region, and an arbitrary number of\nrequested `tableItem` resources. It optionally supports\n`ContributorInsights`.\n\n## DynamoDB Table Without Replica\n\nAn example `examples/instance-without-replica.yaml` claim\nfor resources without a table replica, but with\n`ContributorInsights` and 2 `tableItem` resources is as follows:\n\n```yaml\napiVersion: dynamodb.aws.platform.upbound.io/v1alpha1\nkind: Instance\nmetadata:\n  name: ddb-without-replica\nspec:\n  parameters:\n    region: us-west-1\n    # Conditionally Offer Contributor Insights\n    contributorInsights: true\n    # Conditionally Offer Table Replica\n    tableReplica: false\n    # capacity can not be set when billing_mode is \"PAY_PER_REQUEST\"\n    readCapacity: 10\n    writeCapacity: 10\n    # Billing Mode is PROVISIONED or\n    # PAY_PER_REQUEST (required for replication unless autoscaling is\n    # configured)\n    billingMode: PROVISIONED\n    attribute:\n      - name: UserId\n        type: \"S\"\n      - name: GameTitle\n        type: \"S\"\n      - name: TopScore\n        type: \"N\"\n    globalSecondaryIndex:\n      - hashKey: GameTitle\n        name: GameTitleIndex\n        nonKeyAttributes:\n          - UserId\n        projectionType: INCLUDE\n        rangeKey: TopScore\n        readCapacity: 10\n        writeCapacity: 10\n    hashKey: UserId\n    rangeKey: GameTitle\n    tableItems:\n      - item: \u003e-\n          '{\n            \"UserId\": {\"S\": \"user01\"},\n            \"GameTitle\": {\"S\": \"Robot Quest\"},\n            \"TopScore\": {\"N\": \"123457\"}\n          }'\n      - item: \u003e-\n          '{\n            \"UserId\": {\"S\": \"user02\"},\n            \"GameTitle\": {\"S\": \"Rocket League\"},\n            \"TopScore\": {\"N\": \"123456\"}\n          }'\n    tags:\n      Environment: production\n      Name: ddb-without-replica-1\n```\n\nThe corresponding `crossplane beta trace` resources are as follows:\n\n```shell\nNAME                                                        SYNCED   READY   STATUS\nInstance/ddb-without-replica (default)                      True     True    Available\n└─ XInstance/ddb-without-replica-7bssl                      True     True    Available\n   ├─ XTableItemSet/ddb-without-replica-7bssl-86dnv         True     True    Available\n   │  ├─ TableItem/ddb-without-replica-7bssl-lnwbx          True     True    Available\n   │  └─ TableItem/ddb-without-replica-7bssl-w898j          True     True    Available\n   ├─ XTable/ddb-without-replica-7bssl-p6r2c                True     True    Available\n   │  └─ Table/ddb-without-replica-7bssl-5x966              True     True    Available\n   └─ ContributorInsights/ddb-without-replica-7bssl-ggsq2   True     True    Available\n```\n\n## DynamoDB Table With Replica\n\nAn example `examples/instance-with-replica.yaml` claim\nfor resources with a table replica in a different region and\n`ContributorInsights`, and 2 `tableItem` resources is shown below.\n\nNote, that it can take AWS about 18 minutes to create the replica.\n\n```yaml\napiVersion: dynamodb.aws.platform.upbound.io/v1alpha1\nkind: Instance\nmetadata:\n  name: ddb-with-replica\nspec:\n  parameters:\n    region: us-west-1\n    # Conditionally Offer Contributor Insights\n    contributorInsights: true\n    # Conditionally Offer Table Replica\n    tableReplica: true\n    tableReplicaRegion: us-east-1\n    # Billing Mode is PROVISIONED or\n    # PAY_PER_REQUEST (required for replication unless autoscaling is\n    # configured)\n    # Capacity can not be set when billing_mode is \"PAY_PER_REQUEST\"\n    billingMode: \"PAY_PER_REQUEST\"\n    attribute:\n      - name: UserId\n        type: \"S\"\n      - name: GameTitle\n        type: \"S\"\n      - name: TopScore\n        type: \"N\"\n    globalSecondaryIndex:\n      - hashKey: GameTitle\n        name: GameTitleIndex\n        nonKeyAttributes:\n          - UserId\n        projectionType: INCLUDE\n        rangeKey: TopScore\n        readCapacity: 10\n        writeCapacity: 10\n    hashKey: UserId\n    rangeKey: GameTitle\n    tableItems:\n      - item: \u003e-\n          '{\n            \"UserId\": {\"S\": \"user01\"},\n            \"GameTitle\": {\"S\": \"Robot Quest\"},\n            \"TopScore\": {\"N\": \"123457\"}\n          }'\n      - item: \u003e-\n          '{\n            \"UserId\": {\"S\": \"user02\"},\n            \"GameTitle\": {\"S\": \"Rocket League\"},\n            \"TopScore\": {\"N\": \"123456\"}\n          }'\n    tags:\n      Environment: production\n      Name: ddb-with-replica-1\n```\n\nThe corresponding `crossplane beta trace` resources are as follows:\n\n```shell\nNAME                                                     SYNCED   READY   STATUS\nInstance/ddb-with-replica (default)                      True     True    Available\n└─ XInstance/ddb-with-replica-fms4w                      True     True    Available\n   ├─ XTableItemSet/ddb-with-replica-fms4w-n6t4f         True     True    Available\n   │  ├─ TableItem/ddb-with-replica-fms4w-jmchl          True     True    Available\n   │  └─ TableItem/ddb-with-replica-fms4w-ztmjg          True     True    Available\n   ├─ XTable/ddb-with-replica-fms4w-v62p2                True     True    Available\n   │  ├─ TableReplica/ddb-with-replica-fms4w-m2dvr       True     True    Available\n   │  └─ Table/ddb-with-replica-fms4w-49s7x              True     True    Available\n   └─ ContributorInsights/ddb-with-replica-fms4w-7vslb   True     True    Available\n```\n\n## Tests\n\nPrior to running end to end tests with `make e2e`, configure an\n`UPTEST_CLOUD_CREDENTIALS` environment variable with the contents of\nyour AWS config credentials file. It will need an AWS access key id,\nan AWS secret access key, and depending on your setup am AWS session token.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fupbound%2Fconfiguration-aws-dynamodb","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fupbound%2Fconfiguration-aws-dynamodb","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fupbound%2Fconfiguration-aws-dynamodb/lists"}