Parameters

Every stack parameter and output, grouped as the CloudFormation console shows them.

The groups below match the CloudFormation console's parameter page. "Required" means the launch fails without a value; some parameters are required only in a particular setup, as noted.

Changing a parameter later is a stack update. Leave every parameter you aren't changing at its previous value: an AWS CLI update that omits a parameter resets it to the template default.

Deployment

ParameterRequiredDefaultMeaning
TenantNameyesYour organisation's display name in the console (1 to 80 characters).
TenantSlugyesURL slug for your organisation: 3 to 50 lowercase letters, digits and hyphens, not starting or ending with a hyphen.
AdminEmailnoemptyEmail of the first owner. With single sign-on configured, the first federated sign-in with this address becomes owner. Leave empty to bootstrap through emergency access.
EntitlementSetnoteams-v1Capability bundle. teams-v1 is the only one offered.
RingnogeneralRelease ring: general or early. Design partners run early.
ContentFeedBaseUrlnohttps://dl.tracemill.ioOrigin of the release and content feed: https, no path.
DeploymentReportyesnoneenabled or disabled, deliberately without a default. Records whether you consent to the deployment report (version, licence state, health summary and content state; never run data, telemetry or identities). This release sends no report either way.
SentryReportingnodisabledenabled sends crash and error reports to Tracemill's Sentry.
AlertEmailnoemptySubscribed to the stack's SNS topic: release applied, release failed to start, update refused.

Console hostname and certificate

ParameterRequiredDefaultMeaning
ConsoleHostnameyesThe console hostname in your domain, such as tracemill.example.com.
CertificateArnyesACM certificate for ConsoleHostname, issued in the stack's Region.
PrivateHostedZoneIdnoemptyA Route 53 private hosted zone. When set, the stack creates an alias record for ConsoleHostname in it.
AlbSchemenointernet-facinginternal keeps the console reachable only from your network.
AllowedIngressCidrno0.0.0.0/0Source IPv4 CIDR allowed to reach the load balancer on ports 443 and 80 (80 only redirects to 443).
EnableWafnotrueAttach an AWS WAF rate-limiting web ACL to the load balancer. Billed to your account.

Network

Leave VpcId empty to have the stack create a VPC.

ParameterRequiredDefaultMeaning
VpcIdnoemptyAn existing VPC id, or empty to create one.
VpcCidrno10.30.0.0/16The VPC's CIDR. For a created VPC it must be /16 to /18 (it's split into four /20 subnets). For an existing VPC, give that VPC's CIDR. It's always used as the trusted-proxy range.
AvailabilityZoneswith a created VPCemptyExactly two Availability Zones that offer DbInstanceClass with gp3 storage. See Launch for the lookup command. Ignored when VpcId is set.
PrivateSubnetIdswith an existing VPCemptyComma-separated private subnet ids in two AZs, with outbound internet access.
PublicSubnetIdswith an existing VPC and an internet-facing load balanceremptyComma-separated public subnet ids in two AZs.

Database

Leave ExistingDbInstanceIdentifier empty to have the stack create a database.

ParameterRequiredDefaultMeaning
ExistingDbInstanceIdentifiernoemptyAn existing RDS for PostgreSQL 17 instance identifier. Its security group must allow the stack's server security group on 5432.
ExistingDbEndpointAddresswith an existing databaseemptyThat instance's endpoint address.
ExistingDbMasterSecretArnwith an existing databaseemptySecrets Manager secret holding {"username","password"} for the instance's master user.
ExistingDbSecretKmsKeyArnnoemptyOnly if that secret is encrypted with a customer-managed KMS key: the key's ARN.
ExistingDataEncKeySecretArnnoemptyOnly when moving another deployment's database snapshot into this stack: that deployment's retained data-encryption-key secret (tracemill/<stack>-<id>/data-enc-key). Encrypted fields can't be read without it.
DbInstanceClassnodb.t3.mediumInstance class of a created database.
DbAllocatedStorageno50Storage in GiB for a created database (20 to 2000).
DbMultiAznotrueMulti-AZ for a created database.
DbBackupRetentionDaysno7Automated backup retention for a created database, which is also its point-in-time recovery window (1 to 35).
SnapshotRetentionDaysno35Days to keep the snapshot taken before each migration-crossing update (0 keeps them forever). The newest one is always kept.

The stack refuses any update that would replace or delete the database it created. Changing the network parameters of a running stack would do that, so such an update fails and leaves the database untouched.

Single sign-on

Optional at launch; you can configure it later from the console. See Single sign-on.

ParameterRequiredDefaultMeaning
SsoTypenononenone, saml or oidc. none means you'll configure it later and bootstrap through emergency access.
IdpNamenocorporateThe identity provider's name inside Cognito: up to 32 letters, digits, hyphens or underscores. Changing it after members exist locks them all out; see Changing the identity provider. Switching between saml and oidc requires a new name.
SamlMetadataUrlwith samlemptyYour IdP's SAML metadata URL (https).
OidcIssuerwith oidcemptyYour OIDC issuer URL (https).
OidcClientIdwith oidcemptyThe OIDC client id.
OidcClientSecretnoemptyThe OIDC client secret. Hidden in the console; never carried by the console's links, so you paste it on the update page.
OidcScopesnoopenid email profileScopes requested from the OIDC provider.
EmailAttributenothe SAML emailaddress claim URIThe IdP attribute carrying the user's email: a SAML claim URI, or email for OIDC.

Emergency access

See Emergency access.

ParameterRequiredDefaultMeaning
EmergencyAccessModenomfa-iam-usersWho may assume the emergency role: mfa-iam-users, identity-center or supplied.
EmergencyPrincipalArnwith identity-center or suppliedemptyidentity-center: the permission-set role ARN pattern, arn:aws:iam::<account>:role/aws-reserved/sso.amazonaws.com/*AWSReservedSSO_<set>_* (never a / directly after a *). supplied: the role to use as the emergency role.

Updates and sizing

See Updates.

ParameterRequiredDefaultMeaning
AutoApplynodisabledenabled applies the ring's head release on AutoApplySchedule. Requires AutoApplyRoleArn.
AutoApplyRoleArnwith AutoApply enabledemptyA role you create that auto-apply assumes to update the stack.
AutoApplySchedulenocron(0 3 ? * SUN *)EventBridge schedule expression, in UTC.
AutoApplyMaxDeferMinutesno120How long auto-apply waits while runs are in progress before it proceeds anyway (0 to 1440).
TransitionTimeoutSecondsno3300Budget for stop, snapshot and migrate during a release change (900 to 3600). CloudFormation caps it at one hour.
DesiredCountno1Number of server tasks (1 to 4).
TaskCpuno1024Fargate CPU units per server task: 512, 1024 or 2048.
TaskMemoryno2048Fargate memory (MiB) per server task: 1024, 2048 or 4096.
OperationAttemptno1Attempt id for the release change. The console's Updates page fills in a new one for each update and retry. Never reuse one.
ImageUriOverridenoemptyTracemill support use only. Leave empty.

Outputs

OutputMeaning
ConsoleUrlhttps://<ConsoleHostname>.
DeploymentIdThe deployment's id (the stack id's unique part). Its first block is the short id used in resource names.
RegionThe stack's Region.
EmergencyRoleArnThe role to assume for emergency access.
CognitoSamlAcsUrlAssertion Consumer Service URL for your SAML IdP.
CognitoSamlEntityIdSP entity id for your SAML IdP.
CognitoOidcRedirectUriRedirect URI to register with your OIDC provider.
ServerSecurityGroupIdAllow this group on 5432 in an existing database's security group.
WorkspaceBucketNameThe S3 workspace bucket.
AlbDnsNamePoint ConsoleHostname at this name.
ClusterNameThe ECS cluster (named after the stack).
TransitionStatePrefixSSM parameter path holding the release ledger mirror (.../last, .../installed).
LastSnapshotNamePatternName pattern of the pre-migration snapshots: tracemill-<short id>-*.