Skip to content

DynamoTableConfig

Open in ChatGPTOpen in Claude

Defined in: packages/core/src/config/types.ts:363

Config shape for declaring a DynamoDB table.

Extends CDK TableProps so every CDK table option is available directly. Axis controls: constructId, baseName, partitionKey, sortKey, removalPolicy, tableName. Everything else (contributorInsights, tableClass, importSource, etc.) passes through to CDK.

Example with CDK passthrough: export const myTable: DynamoTableConfig = { constructId: “MyTable”, baseName: “my-table”, partitionKey: { name: “pk”, type: “S” }, // ── CDK TableProps — all available ──── tableClass: TableClass.STANDARD_INFREQUENT_ACCESS, contributorInsightsEnabled: true, encryption: TableEncryption.AWS_MANAGED, };

[cdkProp: string]: unknown

Any additional CDK TableProps not covered by Axis shorthand. These pass through directly to the CDK Table construct.

Note: tableName, partitionKey, sortKey, removalPolicy are Axis-controlled and cannot be overridden here.

baseName: string

Defined in: packages/core/src/config/types.ts:373

Physical table name = ${baseName}-${stageName}


optional billingMode?: "PAY_PER_REQUEST" | "PROVISIONED"

Defined in: packages/core/src/config/types.ts:379


constructId: string

Defined in: packages/core/src/config/types.ts:368

CloudFormation logical ID — MUST be stable once deployed in prod. Changing this will cause table replacement!


optional gsis?: DynamoGsiSpec[]

Defined in: packages/core/src/config/types.ts:382


partitionKey: object

Defined in: packages/core/src/config/types.ts:375

name: string

type: "S" | "N" | "B"


optional pointInTimeRecovery?: boolean

Defined in: packages/core/src/config/types.ts:385

Point-in-time recovery — defaults to true in prod


optional registryKey?: string

Defined in: packages/core/src/config/types.ts:391

Phase 3M9 — composer registry logical key (e.g. “main”). Read by defineAxisApp’s deriveRegistryPlan; pure metadata, never a CFN property.


optional sortKey?: object

Defined in: packages/core/src/config/types.ts:376

name: string

type: "S" | "N" | "B"


optional streamViewType?: "KEYS_ONLY" | "NEW_IMAGE" | "OLD_IMAGE" | "NEW_AND_OLD_IMAGES"

Defined in: packages/core/src/config/types.ts:381


optional ttlAttribute?: string

Defined in: packages/core/src/config/types.ts:380

© 2026 Axis Tech. Powered by axis-tech.co.