Skip to content

AxisAppProps

Open in ChatGPTOpen in Claude

Defined in: packages/stacks/src/composer/define-axis-app.ts:109

T extends BaseEnvConfig

optional api?: object

Defined in: packages/stacks/src/composer/define-axis-app.ts:139

Structural union — the active branch is selected by selections.api.kind and the validator enforces the branch’s required members with [Axis] throws. Props for unselected stacks are ignored (warning-free no-op).

optional apiConfigs?: AppSyncApiConfig[]

optional corsAllowedOrigins?: string[]

Default envConfig.corsAllowedOrigins ?? [].

optional domain?: HttpApiDomainConfig

http-v2 only.

optional lambdaAuthorizer?: AtfLambdaAuthorizerConfig

REST v1 / HTTP v2 — the shared Lambda (REQUEST) authorizer for authorizer:"custom" (REST) / "lambda" (v2) routes. Ratified composer passthrough (3M7): ApiStackProps/HttpApiStackProps already carry it; this surfaces it on the composer prop so a Custom route synths.

optional lambdaConfigs?: ApiLambdaConfig[] | HttpApiLambdaConfig[]

projectRoot: string

optional registryResources?: Omit<BuildRegistryProps, "stage">

Default {}.


optional auth?: object

Defined in: packages/stacks/src/composer/define-axis-app.ts:130

optional projectRoot?: string

Default process.cwd().

optional triggerConfigs?: CognitoTriggerConfig[]

Default [].


optional budget?: object

Defined in: packages/stacks/src/composer/define-axis-app.ts:176

budgets: BudgetConfig[]

optional dedicatedTopic?: boolean

Default false.

optional reuseTopicArnSsmParam?: string

Default “observability/alertTopicArn”.


data: object

Defined in: packages/stacks/src/composer/define-axis-app.ts:120

optional buckets?: S3BucketConfig[]

optional eventBridge?: object

optional buses?: EventBusConfig[]

rules: EventBridgeRuleConfig[]

optional keys?: KmsKeyConfig[]

optional queues?: SqsQueueConfig[]

optional secrets?: SecretConfig[]

tables: DynamoTableConfig[]

Always required — the data layer is load-bearing.

optional topics?: SnsTopicConfig[]


optional env?: Environment

Defined in: packages/stacks/src/composer/define-axis-app.ts:118

Default: CDK_DEFAULT_ACCOUNT / CDK_DEFAULT_REGION ?? envConfig.region — exactly the incumbent template expression.


envConfig: T

Defined in: packages/stacks/src/composer/define-axis-app.ts:113

Resolved by the PROJECT-OWNED loader; the composer never reads disk for it.


envName: string

Defined in: packages/stacks/src/composer/define-axis-app.ts:111

“dev” | “prod” | … — feeds the frozen ${appName}-<role>-${envName} stackNames.


optional observability?: object

Defined in: packages/stacks/src/composer/define-axis-app.ts:165

optional apiNames?: string[]

optional appsyncApiNames?: string[]

config: ObservabilityConfig

optional httpApiNames?: string[]

lambdaConfigs: BaseLambdaConfig[]

projectRoot: string

optional sesIdentityBaseNames?: string[]

optional sqsBaseNames?: string[]

optional wafBaseNames?: string[]


optional overrides?: AxisAppOverrides<T>

Defined in: packages/stacks/src/composer/define-axis-app.ts:191


optional security?: object

Defined in: packages/stacks/src/composer/define-axis-app.ts:157

optional apiWebAclBaseName?: string

Which WebACL baseName protects the selected API.

optional associateAppsyncBaseName?: string

graphql only; default: first apiConfigs entry’s baseName.

optional identities?: SesIdentityConfig[]

optional webAcls?: WafConfig[]


selections: AxisSelections

Defined in: packages/stacks/src/composer/define-axis-app.ts:115

§5 — from axis.json via resolveJsonModule; validated at synth, [Axis] throws.


optional worker?: object

Defined in: packages/stacks/src/composer/define-axis-app.ts:185

W1 — standalone worker + cron Lambdas (owned by WorkerStack). Required when selections.worker is “axis”.

configs: (WorkerLambdaConfig | CronLambdaConfig)[]

projectRoot: string

optional registryResources?: Omit<BuildRegistryProps, "stage">

Default {}. Registry handles so worker env {{token}} refs resolve.

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