@openhi/constructs 0.0.121 → 0.0.123

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/lib/index.d.mts CHANGED
@@ -20,7 +20,7 @@ import * as ec2 from 'aws-cdk-lib/aws-ec2';
20
20
  import * as rds from 'aws-cdk-lib/aws-rds';
21
21
  import { HostedZone, HostedZoneProps, IHostedZone, HostedZoneAttributes } from 'aws-cdk-lib/aws-route53';
22
22
  import { StringParameterProps, StringParameter } from 'aws-cdk-lib/aws-ssm';
23
- import { Distribution, DistributionProps, CachePolicyProps } from 'aws-cdk-lib/aws-cloudfront';
23
+ import { Distribution, DistributionProps, CachePolicyProps, BehaviorOptions } from 'aws-cdk-lib/aws-cloudfront';
24
24
  import { HostingMode } from './static-hosting.viewer-request-handler.mjs';
25
25
  export { C as CascadeChunkInput, a as CascadeFinalizeInput, b as CascadeFinalizeOutput, c as CascadeListInput, d as CascadeListOutput, O as OWNING_DELETE_CASCADE_CONSUMER_NAME, e as OWNING_DELETE_CASCADE_DEFAULT_CONCURRENCY, f as OWNING_DELETE_CASCADE_STUCK_THRESHOLD_MINUTES, g as OWNING_DELETE_OPS_EVENT_BUS_ENV_VAR } from './events-CjS-sm0W.mjs';
26
26
  import { StateMachine } from 'aws-cdk-lib/aws-stepfunctions';
@@ -33,6 +33,38 @@ export { ControlPlaneOwningDeleteCompleteV1, ControlPlaneOwningDeleteCompleteV1D
33
33
  import '@aws-sdk/client-dynamodb';
34
34
  import 'aws-lambda';
35
35
 
36
+ /**
37
+ * Inputs required to compute the deterministic branch hash that
38
+ * scopes per-branch resources within an OpenHI deployment target.
39
+ *
40
+ * @public
41
+ */
42
+ interface ComputeBranchHashOptions {
43
+ /** Application name (e.g. "openhi"). */
44
+ readonly appName: string;
45
+ /** Deployment target role identifier (e.g. "primary", "secondary"). */
46
+ readonly deploymentTargetRole: string;
47
+ /** AWS account id the deployment targets. */
48
+ readonly account: string;
49
+ /** AWS region the deployment targets. */
50
+ readonly region: string;
51
+ /** Git branch name driving this deployment. */
52
+ readonly branchName: string;
53
+ }
54
+ /**
55
+ * Compute the deterministic branch hash used by `OpenHiService` to scope
56
+ * per-branch resources. Every `DiscoverableStringParameter` published by
57
+ * an OpenHI service uses this hash as the branch segment of its SSM
58
+ * path: `/{version}/{branchHash}/{serviceType}/{account}/{region}/{paramName}`.
59
+ *
60
+ * Exporting the helper lets external tooling compute the same SSM
61
+ * prefix the CDK stacks publish to without re-implementing — and silently
62
+ * drifting from — the inlined math.
63
+ *
64
+ * @public
65
+ */
66
+ declare const computeBranchHash: (options: ComputeBranchHashOptions) => string;
67
+
36
68
  /**
37
69
  * Properties for creating an OpenHiStage instance.
38
70
  */
@@ -1125,6 +1157,40 @@ interface StaticHostingProps {
1125
1157
  * SSM parameter descriptions.
1126
1158
  */
1127
1159
  readonly description?: string;
1160
+ /**
1161
+ * When supplied, the distribution proxies `/api/*` to the supplied REST
1162
+ * API custom domain (e.g. `api.example.com`). Two CloudFront behaviors
1163
+ * are added:
1164
+ *
1165
+ * - `/api/control/runtime-config` — cached for `runtimeConfigCacheTtl`
1166
+ * (default 5min) with the `v` query-string parameter in the cache key,
1167
+ * so the admin-console's bundle-hash-driven cache buster reaches a hot
1168
+ * CDN cache on every deploy without manual invalidation.
1169
+ * - `/api/*` — `CachePolicy.CACHING_DISABLED`, all methods allowed,
1170
+ * `OriginRequestPolicy.ALL_VIEWER_EXCEPT_HOST_HEADER` so CloudFront
1171
+ * sets the Host header to the origin's custom domain (required for
1172
+ * API Gateway's custom-domain mapping).
1173
+ *
1174
+ * Neither behavior is wired through the viewer-request edge Lambda —
1175
+ * SPA path rewriting only applies to the default S3 origin.
1176
+ *
1177
+ * @default - no REST API proxy; the distribution serves S3 only
1178
+ */
1179
+ readonly restApi?: {
1180
+ /**
1181
+ * REST API custom-domain hostname (no scheme — e.g. `api.example.com`).
1182
+ */
1183
+ readonly domainName: string;
1184
+ /**
1185
+ * Default / max TTL for the cached `/api/control/runtime-config` response.
1186
+ *
1187
+ * @default 5 minutes default, 1 hour max
1188
+ */
1189
+ readonly runtimeConfigCacheTtl?: {
1190
+ readonly defaultTtl?: Duration;
1191
+ readonly maxTtl?: Duration;
1192
+ };
1193
+ };
1128
1194
  }
1129
1195
  /**
1130
1196
  * Static hosting: S3 bucket (private) + CloudFront distribution with Origin
@@ -1154,6 +1220,12 @@ declare class StaticHosting extends Construct {
1154
1220
  readonly distribution: Distribution;
1155
1221
  readonly viewerRequestHandler: NodejsFunction;
1156
1222
  constructor(scope: Construct, id: string, props?: StaticHostingProps);
1223
+ /**
1224
+ * Builds the `/api/*` and `/api/control/runtime-config` behaviors backed
1225
+ * by the REST API custom-domain origin. Returns `undefined` when no
1226
+ * `restApi` prop is supplied so the Distribution stays S3-only.
1227
+ */
1228
+ protected buildRestApiBehaviors(branchHash: string, restApi: StaticHostingProps["restApi"]): Record<string, BehaviorOptions> | undefined;
1157
1229
  }
1158
1230
 
1159
1231
  interface ProvisionDefaultWorkspaceLambdaProps {
@@ -1523,18 +1595,50 @@ declare class OpenHiGlobalService extends OpenHiService {
1523
1595
  /**
1524
1596
  * @see sites/www-docs/content/packages/@openhi/constructs/services/open-hi-rest-api-service.md
1525
1597
  */
1598
+ /**
1599
+ * Caller-supplied portion of the runtime-config payload exposed through the
1600
+ * public `GET /control/runtime-config` route. The three Cognito IDs are
1601
+ * resolved inside the service via SSM lookups against the auth stack, so the
1602
+ * caller only supplies the values the service cannot derive itself: the
1603
+ * OAuth redirect URI (depends on the website's domain) and the API base URL
1604
+ * (depends on the integration path the website's CloudFront uses).
1605
+ */
1606
+ interface OpenHiRestApiRuntimeConfig {
1607
+ /** OAuth redirect URI registered on the User Pool client (e.g. https://admin.example.com/oauth/callback). */
1608
+ readonly cognitoRedirectUri: string;
1609
+ /** Base URL the admin-console uses to reach the REST API (typically a same-origin `/api` relative path). */
1610
+ readonly apiBaseUrl: string;
1611
+ }
1526
1612
  interface OpenHiRestApiServiceProps extends OpenHiServiceProps {
1527
1613
  /**
1528
1614
  * Optional props passed through to the RootHttpApi (API Gateway HTTP API) construct.
1529
1615
  * Use corsPreflight (CDK CorsPreflightOptions) for CORS; other HttpApiProps (e.g. description, disableExecuteApiEndpoint) apply as well.
1530
1616
  */
1531
1617
  readonly rootHttpApiProps?: RootHttpApiProps;
1618
+ /**
1619
+ * Values exposed through the public `GET /control/runtime-config` route.
1620
+ * When supplied, the service plumbs five `OPENHI_RUNTIME_CONFIG_*`
1621
+ * environment variables to the REST API Lambda — the three Cognito IDs
1622
+ * are resolved internally from the auth stack via SSM, and the two
1623
+ * fields on this prop are passed verbatim. The website's CloudFront
1624
+ * distribution proxies `/api/*` to this endpoint so the admin-console can
1625
+ * fetch its bootstrap config same-origin and stay branch-agnostic.
1626
+ *
1627
+ * Omit to leave the route returning 500 (missing-env-var diagnostic).
1628
+ */
1629
+ readonly runtimeConfig?: OpenHiRestApiRuntimeConfig;
1532
1630
  }
1533
1631
  /**
1534
1632
  * SSM parameter name suffix for the REST API base URL.
1535
1633
  * Full parameter name is built via buildParameterName with serviceType REST_API.
1536
1634
  */
1537
1635
  declare const REST_API_BASE_URL_SSM_NAME = "REST_API_BASE_URL";
1636
+ /**
1637
+ * SSM parameter name suffix for the REST API's custom domain (bare hostname,
1638
+ * no scheme — e.g. `api.example.com`). Consumed by the website service as
1639
+ * the CloudFront `/api/*` origin host.
1640
+ */
1641
+ declare const REST_API_DOMAIN_NAME_SSM_NAME = "REST_API_DOMAIN_NAME";
1538
1642
  /**
1539
1643
  * REST API service stack: HTTP API, custom domain, and Lambda; exports base URL via SSM.
1540
1644
  * Resources are created in protected methods; subclasses may override to customize.
@@ -1550,6 +1654,13 @@ declare class OpenHiRestApiService extends OpenHiService {
1550
1654
  * Use in other stacks for E2E, scripts, or config.
1551
1655
  */
1552
1656
  static restApiBaseUrlFromConstruct(scope: Construct): string;
1657
+ /**
1658
+ * Returns the REST API's custom domain name (bare hostname, no scheme — e.g.
1659
+ * `api.example.com`) by looking it up from SSM. Use as the host for a
1660
+ * CloudFront `HttpOrigin` so the website's distribution can proxy `/api/*`
1661
+ * to this stack's API Gateway without per-branch DNS knowledge.
1662
+ */
1663
+ static restApiDomainNameFromConstruct(scope: Construct): string;
1553
1664
  get serviceType(): string;
1554
1665
  /** Override so this.props is typed with this service's options (e.g. rootHttpApiProps). */
1555
1666
  props: OpenHiRestApiServiceProps;
@@ -1580,6 +1691,14 @@ declare class OpenHiRestApiService extends OpenHiService {
1580
1691
  * Override to customize.
1581
1692
  */
1582
1693
  protected createRestApiBaseUrlParameter(apiDomainName: string): void;
1694
+ /**
1695
+ * Creates the SSM parameter exposing the REST API's custom domain (bare
1696
+ * hostname, no scheme). Consumed by the website service as the CloudFront
1697
+ * `/api/*` origin host.
1698
+ * Look up via {@link OpenHiRestApiService.restApiDomainNameFromConstruct}.
1699
+ * Override to customize.
1700
+ */
1701
+ protected createRestApiDomainNameParameter(apiDomainName: string): void;
1583
1702
  /**
1584
1703
  * Creates the API Gateway custom domain name resource.
1585
1704
  * Override to customize.
@@ -1596,6 +1715,17 @@ declare class OpenHiRestApiService extends OpenHiService {
1596
1715
  * Override to customize.
1597
1716
  */
1598
1717
  protected createRootHttpApi(domainName: DomainName): RootHttpApi;
1718
+ /**
1719
+ * Builds the `OPENHI_RUNTIME_CONFIG_*` env-var map the REST API Lambda
1720
+ * exposes through `GET /control/runtime-config`. Returns `undefined` when
1721
+ * the `runtimeConfig` prop is omitted so no env vars are set.
1722
+ *
1723
+ * The three Cognito IDs are resolved via SSM lookups against the auth
1724
+ * stack from a dedicated sub-scope (`runtime-config`) so they don't
1725
+ * collide with the user-pool / user-pool-client constructs already
1726
+ * created in {@link createRootHttpApi}.
1727
+ */
1728
+ protected resolveRuntimeConfigEnvVars(): Record<string, string> | undefined;
1599
1729
  }
1600
1730
 
1601
1731
  /**
@@ -1975,6 +2105,26 @@ interface OpenHiWebsiteServiceProps extends OpenHiServiceProps {
1975
2105
  * @default true
1976
2106
  */
1977
2107
  readonly createStaticContent?: boolean;
2108
+ /**
2109
+ * When `true`, the website's CloudFront distribution proxies `/api/*` to
2110
+ * the REST API service deployed for this branch. The API custom-domain
2111
+ * hostname is resolved at synth time via SSM
2112
+ * ({@link OpenHiRestApiService.restApiDomainNameFromConstruct}), so the
2113
+ * REST API stack must have written its `REST_API_DOMAIN_NAME` SSM
2114
+ * parameter at least once before the website stack updates — the
2115
+ * workflow already orders these deploys (rest-api → website).
2116
+ *
2117
+ * Used together with the admin-console's runtime-config fetch (which
2118
+ * calls `/api/control/runtime-config` same-origin) so the React bundle
2119
+ * stays branch-agnostic.
2120
+ *
2121
+ * Only takes effect when `createHostingInfrastructure` is also true,
2122
+ * since the additional CloudFront behaviors live on the release-branch
2123
+ * distribution; feature-branch deploys share that distribution.
2124
+ *
2125
+ * @default false
2126
+ */
2127
+ readonly restApi?: boolean;
1978
2128
  }
1979
2129
  /**
1980
2130
  * SSM parameter name suffix for the website's full domain
@@ -2069,27 +2219,32 @@ declare class OpenHiWebsiteService extends OpenHiService {
2069
2219
  certificate: ICertificate;
2070
2220
  hostedZone: IHostedZone;
2071
2221
  }): StaticHosting;
2222
+ /**
2223
+ * Resolves the REST API custom-domain hostname from the rest-api stack's
2224
+ * `REST_API_DOMAIN_NAME` SSM parameter. Wrapped in a private method so
2225
+ * it can be overridden / stubbed in subclasses and tests.
2226
+ */
2227
+ protected resolveRestApi(): {
2228
+ domainName: string;
2229
+ };
2072
2230
  /**
2073
2231
  * Creates the SSM parameter that publishes the website's full domain.
2074
2232
  * Look up via {@link OpenHiWebsiteService.fullDomainFromConstruct}.
2075
2233
  */
2076
2234
  protected createFullDomainParameter(): void;
2077
2235
  /**
2078
- * Creates the StaticContent uploader. Always created so feature-branch
2079
- * deploys can publish content to their own sub-domain folder against the
2080
- * release-branch bucket.
2081
- *
2082
- * The destination bucket is resolved here so the construct never has to
2083
- * branch on release-vs-feature: on the release branch we pass the
2084
- * just-created {@link staticHosting} bucket directly (no SSM round-trip
2085
- * within a single stack); on every other branch we look up the bucket
2086
- * ARN published by the release-branch deploy, addressed against
2087
- * {@link OpenHiService.releaseBranchHash}.
2236
+ * Creates the StaticContent uploader. Receives the resolved static-hosting
2237
+ * bucket from the constructor on the release-branch deploy this is the
2238
+ * just-created {@link staticHosting} bucket (no SSM round-trip within a
2239
+ * single stack); on every other deploy it is imported from the bucket ARN
2240
+ * the release-branch deploy publishes to SSM, addressed against
2241
+ * {@link OpenHiService.releaseBranchHash}. See
2242
+ * {@link resolveStaticHostingBucket}.
2088
2243
  */
2089
- protected createStaticContent(): StaticContent;
2244
+ protected createStaticContent(bucket: IBucket): StaticContent;
2090
2245
  /**
2091
2246
  * Returns an {@link IBucket} pointing at the static-hosting bucket the
2092
- * uploader writes to. On the release-branch deploy this is the bucket
2247
+ * uploaders write to. On the release-branch deploy this is the bucket
2093
2248
  * just provisioned by {@link staticHosting}; on every other deploy it's
2094
2249
  * imported from the bucket ARN the release-branch deploy publishes to
2095
2250
  * SSM, addressed against {@link OpenHiService.releaseBranchHash}.
@@ -2281,4 +2436,4 @@ declare class RenameCascadeWorkflow extends Construct {
2281
2436
  constructor(scope: Construct, props: RenameCascadeWorkflowProps);
2282
2437
  }
2283
2438
 
2284
- export { type BuildParameterNameProps, ChildHostedZone, type ChildHostedZoneProps, CognitoUserPool, CognitoUserPoolClient, CognitoUserPoolDomain, CognitoUserPoolKmsKey, ControlEventBus, DATA_STORE_CHANGE_DETAIL_MAX_UTF8_BYTES, DATA_STORE_CHANGE_DETAIL_TYPE, DATA_STORE_CHANGE_EVENT_SOURCE, DEMO_DATA_PLANE_FIXTURES, DataEventBus, type DataEventBusOptions, DataStoreHistoricalArchive, type DataStoreHistoricalArchiveProps, DataStorePostgresReplica, type DataStorePostgresReplicaProps, type DemoWorkspaceDataPlaneFixtures, DiscoverableStringParameter, type DiscoverableStringParameterProps, DynamoDbDataStore, type DynamoDbDataStoreProps, type FhirCurrentResourceChangeDetail, type GrantConsumerOptions, HostingMode, OPENHI_TAG_SUFFIX_BRANCH_NAME, OPENHI_TAG_SUFFIX_REPO_NAME, OPENHI_TAG_SUFFIX_SERVICE_TYPE, OPENHI_TAG_SUFFIX_STAGE_TYPE, OpenHiApp, type OpenHiAppProps, OpenHiAuthService, type OpenHiAuthServiceProps, OpenHiDataService, type OpenHiDataServiceProps, OpenHiEnvironment, type OpenHiEnvironmentProps, OpenHiGlobalService, type OpenHiGlobalServiceProps, OpenHiGraphqlService, type OpenHiGraphqlServiceProps, OpenHiRestApiService, type OpenHiRestApiServiceProps, OpenHiService, type OpenHiServiceProps, type OpenHiServiceType, OpenHiStage, type OpenHiStageProps, OpenHiWebsiteService, type OpenHiWebsiteServiceProps, OpsEventBus, OwningDeleteCascadeLambdas, type OwningDeleteCascadeLambdasProps, OwningDeleteCascadeWorkflow, type OwningDeleteCascadeWorkflowProps, POSTGRES_REPLICA_CLUSTER_ARN_SSM_NAME, POSTGRES_REPLICA_DATABASE_NAME_SSM_NAME, POSTGRES_REPLICA_SECRET_ARN_SSM_NAME, PlatformDeployBridge, PlatformDeployBridgeLambda, type PlatformDeployBridgeLambdaProps, type PlatformDeployBridgeProps, PostAuthenticationLambda, PostConfirmationLambda, type PostConfirmationLambdaProps, PreTokenGenerationLambda, type PreTokenGenerationLambdaProps, ProvisionDefaultWorkspaceLambda, type ProvisionDefaultWorkspaceLambdaProps, REST_API_BASE_URL_SSM_NAME, RenameCascadeLambdas, type RenameCascadeLambdasProps, RenameCascadeWorkflow, type RenameCascadeWorkflowProps, RootGraphqlApi, type RootGraphqlApiProps, RootHostedZone, RootHttpApi, type RootHttpApiProps, RootWildcardCertificate, SEED_SYSTEM_DATA_ACTOR_SYSTEM, SEED_SYSTEM_DATA_CONSUMER_NAME, SEED_SYSTEM_DATA_CONTROL_BUS_ENV_VAR, SSM_PARAM_NAME_FULL_DOMAIN, STATIC_HOSTING_SERVICE_TYPE, SeedDemoDataLambda, type SeedDemoDataLambdaProps, SeedDemoDataWorkflow, type SeedDemoDataWorkflowProps, SeedSystemDataLambda, type SeedSystemDataLambdaProps, SeedSystemDataWorkflow, type SeedSystemDataWorkflowProps, StaticContent, type StaticContentProps, StaticHosting, type StaticHostingProps, UserOnboardingWorkflow, type UserOnboardingWorkflowProps, WorkflowDedupConsumerNameInvalidError, WorkflowDedupTable, WorkflowDedupTableDuplicateError, type WorkflowDedupTableProps, buildFhirCurrentResourceChangeDetail, getDynamoDbDataStoreTableName, getPostgresReplicaSchemaName, getWorkflowDedupTableName, openHiTagKey };
2439
+ export { type BuildParameterNameProps, ChildHostedZone, type ChildHostedZoneProps, CognitoUserPool, CognitoUserPoolClient, CognitoUserPoolDomain, CognitoUserPoolKmsKey, type ComputeBranchHashOptions, ControlEventBus, DATA_STORE_CHANGE_DETAIL_MAX_UTF8_BYTES, DATA_STORE_CHANGE_DETAIL_TYPE, DATA_STORE_CHANGE_EVENT_SOURCE, DEMO_DATA_PLANE_FIXTURES, DataEventBus, type DataEventBusOptions, DataStoreHistoricalArchive, type DataStoreHistoricalArchiveProps, DataStorePostgresReplica, type DataStorePostgresReplicaProps, type DemoWorkspaceDataPlaneFixtures, DiscoverableStringParameter, type DiscoverableStringParameterProps, DynamoDbDataStore, type DynamoDbDataStoreProps, type FhirCurrentResourceChangeDetail, type GrantConsumerOptions, HostingMode, OPENHI_TAG_SUFFIX_BRANCH_NAME, OPENHI_TAG_SUFFIX_REPO_NAME, OPENHI_TAG_SUFFIX_SERVICE_TYPE, OPENHI_TAG_SUFFIX_STAGE_TYPE, OpenHiApp, type OpenHiAppProps, OpenHiAuthService, type OpenHiAuthServiceProps, OpenHiDataService, type OpenHiDataServiceProps, OpenHiEnvironment, type OpenHiEnvironmentProps, OpenHiGlobalService, type OpenHiGlobalServiceProps, OpenHiGraphqlService, type OpenHiGraphqlServiceProps, type OpenHiRestApiRuntimeConfig, OpenHiRestApiService, type OpenHiRestApiServiceProps, OpenHiService, type OpenHiServiceProps, type OpenHiServiceType, OpenHiStage, type OpenHiStageProps, OpenHiWebsiteService, type OpenHiWebsiteServiceProps, OpsEventBus, OwningDeleteCascadeLambdas, type OwningDeleteCascadeLambdasProps, OwningDeleteCascadeWorkflow, type OwningDeleteCascadeWorkflowProps, POSTGRES_REPLICA_CLUSTER_ARN_SSM_NAME, POSTGRES_REPLICA_DATABASE_NAME_SSM_NAME, POSTGRES_REPLICA_SECRET_ARN_SSM_NAME, PlatformDeployBridge, PlatformDeployBridgeLambda, type PlatformDeployBridgeLambdaProps, type PlatformDeployBridgeProps, PostAuthenticationLambda, PostConfirmationLambda, type PostConfirmationLambdaProps, PreTokenGenerationLambda, type PreTokenGenerationLambdaProps, ProvisionDefaultWorkspaceLambda, type ProvisionDefaultWorkspaceLambdaProps, REST_API_BASE_URL_SSM_NAME, REST_API_DOMAIN_NAME_SSM_NAME, RenameCascadeLambdas, type RenameCascadeLambdasProps, RenameCascadeWorkflow, type RenameCascadeWorkflowProps, RootGraphqlApi, type RootGraphqlApiProps, RootHostedZone, RootHttpApi, type RootHttpApiProps, RootWildcardCertificate, SEED_SYSTEM_DATA_ACTOR_SYSTEM, SEED_SYSTEM_DATA_CONSUMER_NAME, SEED_SYSTEM_DATA_CONTROL_BUS_ENV_VAR, SSM_PARAM_NAME_FULL_DOMAIN, STATIC_HOSTING_SERVICE_TYPE, SeedDemoDataLambda, type SeedDemoDataLambdaProps, SeedDemoDataWorkflow, type SeedDemoDataWorkflowProps, SeedSystemDataLambda, type SeedSystemDataLambdaProps, SeedSystemDataWorkflow, type SeedSystemDataWorkflowProps, StaticContent, type StaticContentProps, StaticHosting, type StaticHostingProps, UserOnboardingWorkflow, type UserOnboardingWorkflowProps, WorkflowDedupConsumerNameInvalidError, WorkflowDedupTable, WorkflowDedupTableDuplicateError, type WorkflowDedupTableProps, buildFhirCurrentResourceChangeDetail, computeBranchHash, getDynamoDbDataStoreTableName, getPostgresReplicaSchemaName, getWorkflowDedupTableName, openHiTagKey };
package/lib/index.d.ts CHANGED
@@ -19,7 +19,7 @@ import * as ec2 from 'aws-cdk-lib/aws-ec2';
19
19
  import * as rds from 'aws-cdk-lib/aws-rds';
20
20
  import { HostedZone, HostedZoneProps, IHostedZone, HostedZoneAttributes } from 'aws-cdk-lib/aws-route53';
21
21
  import { StringParameterProps, StringParameter } from 'aws-cdk-lib/aws-ssm';
22
- import { Distribution, DistributionProps, CachePolicyProps } from 'aws-cdk-lib/aws-cloudfront';
22
+ import { Distribution, DistributionProps, CachePolicyProps, BehaviorOptions } from 'aws-cdk-lib/aws-cloudfront';
23
23
  import { StateMachine } from 'aws-cdk-lib/aws-stepfunctions';
24
24
  import { RenamableEntityType } from '@openhi/workflows';
25
25
  export { ControlPlaneOwningDeleteCompleteV1, ControlPlaneOwningDeleteCompleteV1Detail, ControlPlaneOwningDeleteFailedV1, ControlPlaneOwningDeleteFailedV1Detail, ControlPlaneOwningDeleteV1, ControlPlaneOwningDeleteV1Detail, ControlPlaneRenameCompleteV1, ControlPlaneRenameCompleteV1Detail, ControlPlaneRenameFailedV1, ControlPlaneRenameFailedV1Detail, ControlPlaneRenameV1, ControlPlaneRenameV1Detail, OPENHI_DATA_SOURCE, OPENHI_OPS_SOURCE, OWNING_ENTITY_TYPE, OwningEntityType, PlatformDeploymentCompletedV1, PlatformSystemDataSeededV1, RENAMABLE_ENTITY_TYPE, RenamableEntityType } from '@openhi/workflows';
@@ -670,6 +670,38 @@ interface ProvisionDefaultWorkspaceRequestedDetail {
670
670
  }
671
671
  declare const buildProvisionDefaultWorkspaceRequestedDetail: (event: PostConfirmationTriggerEvent) => ProvisionDefaultWorkspaceRequestedDetail | undefined;
672
672
 
673
+ /**
674
+ * Inputs required to compute the deterministic branch hash that
675
+ * scopes per-branch resources within an OpenHI deployment target.
676
+ *
677
+ * @public
678
+ */
679
+ interface ComputeBranchHashOptions {
680
+ /** Application name (e.g. "openhi"). */
681
+ readonly appName: string;
682
+ /** Deployment target role identifier (e.g. "primary", "secondary"). */
683
+ readonly deploymentTargetRole: string;
684
+ /** AWS account id the deployment targets. */
685
+ readonly account: string;
686
+ /** AWS region the deployment targets. */
687
+ readonly region: string;
688
+ /** Git branch name driving this deployment. */
689
+ readonly branchName: string;
690
+ }
691
+ /**
692
+ * Compute the deterministic branch hash used by `OpenHiService` to scope
693
+ * per-branch resources. Every `DiscoverableStringParameter` published by
694
+ * an OpenHI service uses this hash as the branch segment of its SSM
695
+ * path: `/{version}/{branchHash}/{serviceType}/{account}/{region}/{paramName}`.
696
+ *
697
+ * Exporting the helper lets external tooling compute the same SSM
698
+ * prefix the CDK stacks publish to without re-implementing — and silently
699
+ * drifting from — the inlined math.
700
+ *
701
+ * @public
702
+ */
703
+ declare const computeBranchHash: (options: ComputeBranchHashOptions) => string;
704
+
673
705
  /**
674
706
  * Properties for creating an OpenHiStage instance.
675
707
  */
@@ -1762,6 +1794,40 @@ interface StaticHostingProps {
1762
1794
  * SSM parameter descriptions.
1763
1795
  */
1764
1796
  readonly description?: string;
1797
+ /**
1798
+ * When supplied, the distribution proxies `/api/*` to the supplied REST
1799
+ * API custom domain (e.g. `api.example.com`). Two CloudFront behaviors
1800
+ * are added:
1801
+ *
1802
+ * - `/api/control/runtime-config` — cached for `runtimeConfigCacheTtl`
1803
+ * (default 5min) with the `v` query-string parameter in the cache key,
1804
+ * so the admin-console's bundle-hash-driven cache buster reaches a hot
1805
+ * CDN cache on every deploy without manual invalidation.
1806
+ * - `/api/*` — `CachePolicy.CACHING_DISABLED`, all methods allowed,
1807
+ * `OriginRequestPolicy.ALL_VIEWER_EXCEPT_HOST_HEADER` so CloudFront
1808
+ * sets the Host header to the origin's custom domain (required for
1809
+ * API Gateway's custom-domain mapping).
1810
+ *
1811
+ * Neither behavior is wired through the viewer-request edge Lambda —
1812
+ * SPA path rewriting only applies to the default S3 origin.
1813
+ *
1814
+ * @default - no REST API proxy; the distribution serves S3 only
1815
+ */
1816
+ readonly restApi?: {
1817
+ /**
1818
+ * REST API custom-domain hostname (no scheme — e.g. `api.example.com`).
1819
+ */
1820
+ readonly domainName: string;
1821
+ /**
1822
+ * Default / max TTL for the cached `/api/control/runtime-config` response.
1823
+ *
1824
+ * @default 5 minutes default, 1 hour max
1825
+ */
1826
+ readonly runtimeConfigCacheTtl?: {
1827
+ readonly defaultTtl?: Duration;
1828
+ readonly maxTtl?: Duration;
1829
+ };
1830
+ };
1765
1831
  }
1766
1832
  /**
1767
1833
  * Static hosting: S3 bucket (private) + CloudFront distribution with Origin
@@ -1791,6 +1857,12 @@ declare class StaticHosting extends Construct {
1791
1857
  readonly distribution: Distribution;
1792
1858
  readonly viewerRequestHandler: NodejsFunction;
1793
1859
  constructor(scope: Construct, id: string, props?: StaticHostingProps);
1860
+ /**
1861
+ * Builds the `/api/*` and `/api/control/runtime-config` behaviors backed
1862
+ * by the REST API custom-domain origin. Returns `undefined` when no
1863
+ * `restApi` prop is supplied so the Distribution stays S3-only.
1864
+ */
1865
+ protected buildRestApiBehaviors(branchHash: string, restApi: StaticHostingProps["restApi"]): Record<string, BehaviorOptions> | undefined;
1794
1866
  }
1795
1867
 
1796
1868
  interface ProvisionDefaultWorkspaceLambdaProps {
@@ -2160,18 +2232,50 @@ declare class OpenHiGlobalService extends OpenHiService {
2160
2232
  /**
2161
2233
  * @see sites/www-docs/content/packages/@openhi/constructs/services/open-hi-rest-api-service.md
2162
2234
  */
2235
+ /**
2236
+ * Caller-supplied portion of the runtime-config payload exposed through the
2237
+ * public `GET /control/runtime-config` route. The three Cognito IDs are
2238
+ * resolved inside the service via SSM lookups against the auth stack, so the
2239
+ * caller only supplies the values the service cannot derive itself: the
2240
+ * OAuth redirect URI (depends on the website's domain) and the API base URL
2241
+ * (depends on the integration path the website's CloudFront uses).
2242
+ */
2243
+ interface OpenHiRestApiRuntimeConfig {
2244
+ /** OAuth redirect URI registered on the User Pool client (e.g. https://admin.example.com/oauth/callback). */
2245
+ readonly cognitoRedirectUri: string;
2246
+ /** Base URL the admin-console uses to reach the REST API (typically a same-origin `/api` relative path). */
2247
+ readonly apiBaseUrl: string;
2248
+ }
2163
2249
  interface OpenHiRestApiServiceProps extends OpenHiServiceProps {
2164
2250
  /**
2165
2251
  * Optional props passed through to the RootHttpApi (API Gateway HTTP API) construct.
2166
2252
  * Use corsPreflight (CDK CorsPreflightOptions) for CORS; other HttpApiProps (e.g. description, disableExecuteApiEndpoint) apply as well.
2167
2253
  */
2168
2254
  readonly rootHttpApiProps?: RootHttpApiProps;
2255
+ /**
2256
+ * Values exposed through the public `GET /control/runtime-config` route.
2257
+ * When supplied, the service plumbs five `OPENHI_RUNTIME_CONFIG_*`
2258
+ * environment variables to the REST API Lambda — the three Cognito IDs
2259
+ * are resolved internally from the auth stack via SSM, and the two
2260
+ * fields on this prop are passed verbatim. The website's CloudFront
2261
+ * distribution proxies `/api/*` to this endpoint so the admin-console can
2262
+ * fetch its bootstrap config same-origin and stay branch-agnostic.
2263
+ *
2264
+ * Omit to leave the route returning 500 (missing-env-var diagnostic).
2265
+ */
2266
+ readonly runtimeConfig?: OpenHiRestApiRuntimeConfig;
2169
2267
  }
2170
2268
  /**
2171
2269
  * SSM parameter name suffix for the REST API base URL.
2172
2270
  * Full parameter name is built via buildParameterName with serviceType REST_API.
2173
2271
  */
2174
2272
  declare const REST_API_BASE_URL_SSM_NAME = "REST_API_BASE_URL";
2273
+ /**
2274
+ * SSM parameter name suffix for the REST API's custom domain (bare hostname,
2275
+ * no scheme — e.g. `api.example.com`). Consumed by the website service as
2276
+ * the CloudFront `/api/*` origin host.
2277
+ */
2278
+ declare const REST_API_DOMAIN_NAME_SSM_NAME = "REST_API_DOMAIN_NAME";
2175
2279
  /**
2176
2280
  * REST API service stack: HTTP API, custom domain, and Lambda; exports base URL via SSM.
2177
2281
  * Resources are created in protected methods; subclasses may override to customize.
@@ -2187,6 +2291,13 @@ declare class OpenHiRestApiService extends OpenHiService {
2187
2291
  * Use in other stacks for E2E, scripts, or config.
2188
2292
  */
2189
2293
  static restApiBaseUrlFromConstruct(scope: Construct): string;
2294
+ /**
2295
+ * Returns the REST API's custom domain name (bare hostname, no scheme — e.g.
2296
+ * `api.example.com`) by looking it up from SSM. Use as the host for a
2297
+ * CloudFront `HttpOrigin` so the website's distribution can proxy `/api/*`
2298
+ * to this stack's API Gateway without per-branch DNS knowledge.
2299
+ */
2300
+ static restApiDomainNameFromConstruct(scope: Construct): string;
2190
2301
  get serviceType(): string;
2191
2302
  /** Override so this.props is typed with this service's options (e.g. rootHttpApiProps). */
2192
2303
  props: OpenHiRestApiServiceProps;
@@ -2217,6 +2328,14 @@ declare class OpenHiRestApiService extends OpenHiService {
2217
2328
  * Override to customize.
2218
2329
  */
2219
2330
  protected createRestApiBaseUrlParameter(apiDomainName: string): void;
2331
+ /**
2332
+ * Creates the SSM parameter exposing the REST API's custom domain (bare
2333
+ * hostname, no scheme). Consumed by the website service as the CloudFront
2334
+ * `/api/*` origin host.
2335
+ * Look up via {@link OpenHiRestApiService.restApiDomainNameFromConstruct}.
2336
+ * Override to customize.
2337
+ */
2338
+ protected createRestApiDomainNameParameter(apiDomainName: string): void;
2220
2339
  /**
2221
2340
  * Creates the API Gateway custom domain name resource.
2222
2341
  * Override to customize.
@@ -2233,6 +2352,17 @@ declare class OpenHiRestApiService extends OpenHiService {
2233
2352
  * Override to customize.
2234
2353
  */
2235
2354
  protected createRootHttpApi(domainName: DomainName): RootHttpApi;
2355
+ /**
2356
+ * Builds the `OPENHI_RUNTIME_CONFIG_*` env-var map the REST API Lambda
2357
+ * exposes through `GET /control/runtime-config`. Returns `undefined` when
2358
+ * the `runtimeConfig` prop is omitted so no env vars are set.
2359
+ *
2360
+ * The three Cognito IDs are resolved via SSM lookups against the auth
2361
+ * stack from a dedicated sub-scope (`runtime-config`) so they don't
2362
+ * collide with the user-pool / user-pool-client constructs already
2363
+ * created in {@link createRootHttpApi}.
2364
+ */
2365
+ protected resolveRuntimeConfigEnvVars(): Record<string, string> | undefined;
2236
2366
  }
2237
2367
 
2238
2368
  /**
@@ -2612,6 +2742,26 @@ interface OpenHiWebsiteServiceProps extends OpenHiServiceProps {
2612
2742
  * @default true
2613
2743
  */
2614
2744
  readonly createStaticContent?: boolean;
2745
+ /**
2746
+ * When `true`, the website's CloudFront distribution proxies `/api/*` to
2747
+ * the REST API service deployed for this branch. The API custom-domain
2748
+ * hostname is resolved at synth time via SSM
2749
+ * ({@link OpenHiRestApiService.restApiDomainNameFromConstruct}), so the
2750
+ * REST API stack must have written its `REST_API_DOMAIN_NAME` SSM
2751
+ * parameter at least once before the website stack updates — the
2752
+ * workflow already orders these deploys (rest-api → website).
2753
+ *
2754
+ * Used together with the admin-console's runtime-config fetch (which
2755
+ * calls `/api/control/runtime-config` same-origin) so the React bundle
2756
+ * stays branch-agnostic.
2757
+ *
2758
+ * Only takes effect when `createHostingInfrastructure` is also true,
2759
+ * since the additional CloudFront behaviors live on the release-branch
2760
+ * distribution; feature-branch deploys share that distribution.
2761
+ *
2762
+ * @default false
2763
+ */
2764
+ readonly restApi?: boolean;
2615
2765
  }
2616
2766
  /**
2617
2767
  * SSM parameter name suffix for the website's full domain
@@ -2706,27 +2856,32 @@ declare class OpenHiWebsiteService extends OpenHiService {
2706
2856
  certificate: ICertificate;
2707
2857
  hostedZone: IHostedZone;
2708
2858
  }): StaticHosting;
2859
+ /**
2860
+ * Resolves the REST API custom-domain hostname from the rest-api stack's
2861
+ * `REST_API_DOMAIN_NAME` SSM parameter. Wrapped in a private method so
2862
+ * it can be overridden / stubbed in subclasses and tests.
2863
+ */
2864
+ protected resolveRestApi(): {
2865
+ domainName: string;
2866
+ };
2709
2867
  /**
2710
2868
  * Creates the SSM parameter that publishes the website's full domain.
2711
2869
  * Look up via {@link OpenHiWebsiteService.fullDomainFromConstruct}.
2712
2870
  */
2713
2871
  protected createFullDomainParameter(): void;
2714
2872
  /**
2715
- * Creates the StaticContent uploader. Always created so feature-branch
2716
- * deploys can publish content to their own sub-domain folder against the
2717
- * release-branch bucket.
2718
- *
2719
- * The destination bucket is resolved here so the construct never has to
2720
- * branch on release-vs-feature: on the release branch we pass the
2721
- * just-created {@link staticHosting} bucket directly (no SSM round-trip
2722
- * within a single stack); on every other branch we look up the bucket
2723
- * ARN published by the release-branch deploy, addressed against
2724
- * {@link OpenHiService.releaseBranchHash}.
2873
+ * Creates the StaticContent uploader. Receives the resolved static-hosting
2874
+ * bucket from the constructor on the release-branch deploy this is the
2875
+ * just-created {@link staticHosting} bucket (no SSM round-trip within a
2876
+ * single stack); on every other deploy it is imported from the bucket ARN
2877
+ * the release-branch deploy publishes to SSM, addressed against
2878
+ * {@link OpenHiService.releaseBranchHash}. See
2879
+ * {@link resolveStaticHostingBucket}.
2725
2880
  */
2726
- protected createStaticContent(): StaticContent;
2881
+ protected createStaticContent(bucket: IBucket): StaticContent;
2727
2882
  /**
2728
2883
  * Returns an {@link IBucket} pointing at the static-hosting bucket the
2729
- * uploader writes to. On the release-branch deploy this is the bucket
2884
+ * uploaders write to. On the release-branch deploy this is the bucket
2730
2885
  * just provisioned by {@link staticHosting}; on every other deploy it's
2731
2886
  * imported from the bucket ARN the release-branch deploy publishes to
2732
2887
  * SSM, addressed against {@link OpenHiService.releaseBranchHash}.
@@ -2918,5 +3073,5 @@ declare class RenameCascadeWorkflow extends Construct {
2918
3073
  constructor(scope: Construct, props: RenameCascadeWorkflowProps);
2919
3074
  }
2920
3075
 
2921
- export { BRIDGED_STATUSES, CLOUDFORMATION_EVENT_SOURCE, CLOUDFORMATION_STACK_STATUS_CHANGE_DETAIL_TYPE, CONTROL_EVENT_BUS_NAME_ENV_VAR, ChildHostedZone, CognitoUserPool, CognitoUserPoolClient, CognitoUserPoolDomain, CognitoUserPoolKmsKey, ControlEventBus, DATA_STORE_CHANGE_DETAIL_MAX_UTF8_BYTES, DATA_STORE_CHANGE_DETAIL_TYPE, DATA_STORE_CHANGE_EVENT_SOURCE, DEMO_DATA_PLANE_FIXTURES, DEMO_PERIOD, DEMO_TENANT_SPECS, DEMO_URN_SYSTEM, DEV_USERS, DataEventBus, DataStoreHistoricalArchive, DataStorePostgresReplica, DiscoverableStringParameter, DynamoDbDataStore, OPENHI_REPO_TAG_KEY_ENV_VAR, OPENHI_RESOURCE_URN_SYSTEM, OPENHI_TAG_KEY_PREFIX_ENV_VAR, OPENHI_TAG_SUFFIX_BRANCH_NAME, OPENHI_TAG_SUFFIX_REPO_NAME, OPENHI_TAG_SUFFIX_SERVICE_TYPE, OPENHI_TAG_SUFFIX_STAGE_TYPE, OWNING_DELETE_CASCADE_CONSUMER_NAME, OWNING_DELETE_CASCADE_DEFAULT_CONCURRENCY, OWNING_DELETE_CASCADE_STUCK_THRESHOLD_MINUTES, OWNING_DELETE_OPS_EVENT_BUS_ENV_VAR, OpenHiApp, OpenHiAuthService, OpenHiDataService, OpenHiEnvironment, OpenHiGlobalService, OpenHiGraphqlService, OpenHiRestApiService, OpenHiService, OpenHiStage, OpenHiWebsiteService, OpsEventBus, OwningDeleteCascadeLambdas, OwningDeleteCascadeWorkflow, PLACEHOLDER_TENANT_ID, PLACEHOLDER_WORKSPACE_ID, PLATFORM_DEPLOY_BRIDGE_ACTOR_SYSTEM, PLATFORM_SCOPE_TENANT_ID, POSTGRES_REPLICA_CLUSTER_ARN_SSM_NAME, POSTGRES_REPLICA_DATABASE_NAME_SSM_NAME, POSTGRES_REPLICA_SECRET_ARN_SSM_NAME, PROVISION_DEFAULT_WORKSPACE_DETAIL_TYPE, PlatformDeployBridge, PlatformDeployBridgeLambda, PostAuthenticationLambda, PostConfirmationLambda, PreTokenGenerationLambda, ProvisionDefaultWorkspaceLambda, RENAME_CASCADE_CONSUMER_NAME, RENAME_CASCADE_DEFAULT_CONCURRENCY, RENAME_CASCADE_FAILED_THRESHOLD, RENAME_CASCADE_OPS_EVENT_BUS_ENV_VAR, RENAME_CASCADE_SLOW_THRESHOLD_SECONDS, REST_API_BASE_URL_SSM_NAME, RenameCascadeLambdas, RenameCascadeWorkflow, RootGraphqlApi, RootHostedZone, RootHttpApi, RootWildcardCertificate, SEED_DEMO_DATA_CONSUMER_NAME, SEED_SYSTEM_DATA_ACTOR_SYSTEM, SEED_SYSTEM_DATA_CONSUMER_NAME, SEED_SYSTEM_DATA_CONTROL_BUS_ENV_VAR, SSM_PARAM_NAME_FULL_DOMAIN, STATIC_HOSTING_SERVICE_TYPE, SeedDemoDataLambda, SeedDemoDataWorkflow, SeedSystemDataLambda, SeedSystemDataWorkflow, StaticContent, StaticHosting, USER_ONBOARDING_EVENT_SOURCE, UserOnboardingWorkflow, WorkflowDedupConsumerNameInvalidError, WorkflowDedupTable, WorkflowDedupTableDuplicateError, buildFhirCurrentResourceChangeDetail, buildProvisionDefaultWorkspaceRequestedDetail, demoMembershipId, demoRoleAssignmentId, demoRolesForUserInTenant, demoScenarioIdentifier, getDynamoDbDataStoreTableName, getPostgresReplicaSchemaName, getWorkflowDedupTableName, openHiTagKey, openhiResourceIdentifier };
2922
- export type { BridgedStatus, BuildParameterNameProps, CascadeChunkInput, CascadeFinalizeInput, CascadeFinalizeOutput, CascadeListInput, CascadeListOutput, ChildHostedZoneProps, CloudFormationStackStatusChangeDetail, DataEventBusOptions, DataStoreHistoricalArchiveProps, DataStorePostgresReplicaProps, DemoDevUser, DemoTenantSpec, DemoWorkspaceDataPlaneFixtures, DemoWorkspaceSpec, DiscoverableStringParameterProps, DynamoDbDataStoreProps, FhirCurrentResourceChangeDetail, GrantConsumerOptions, HostingMode, OpenHiAppProps, OpenHiAuthServiceProps, OpenHiDataServiceProps, OpenHiEnvironmentProps, OpenHiGlobalServiceProps, OpenHiGraphqlServiceProps, OpenHiRestApiServiceProps, OpenHiServiceProps, OpenHiServiceType, OpenHiStageProps, OpenHiWebsiteServiceProps, OwningDeleteCascadeLambdasProps, OwningDeleteCascadeWorkflowProps, PlatformDeployBridgeLambdaProps, PlatformDeployBridgeProps, PostConfirmationLambdaProps, PreTokenGenerationLambdaProps, ProvisionDefaultWorkspaceLambdaProps, ProvisionDefaultWorkspaceRequestedDetail, RenameCascadeChunkInput, RenameCascadeFinalizeInput, RenameCascadeFinalizeOutput, RenameCascadeLambdasProps, RenameCascadeListInput, RenameCascadeListOutput, RenameCascadeWorkflowProps, RootGraphqlApiProps, RootHttpApiProps, SeedDemoDataLambdaProps, SeedDemoDataWorkflowProps, SeedSystemDataLambdaProps, SeedSystemDataWorkflowProps, StaticContentProps, StaticHostingProps, UserOnboardingWorkflowProps, WorkflowDedupTableProps };
3076
+ export { BRIDGED_STATUSES, CLOUDFORMATION_EVENT_SOURCE, CLOUDFORMATION_STACK_STATUS_CHANGE_DETAIL_TYPE, CONTROL_EVENT_BUS_NAME_ENV_VAR, ChildHostedZone, CognitoUserPool, CognitoUserPoolClient, CognitoUserPoolDomain, CognitoUserPoolKmsKey, ControlEventBus, DATA_STORE_CHANGE_DETAIL_MAX_UTF8_BYTES, DATA_STORE_CHANGE_DETAIL_TYPE, DATA_STORE_CHANGE_EVENT_SOURCE, DEMO_DATA_PLANE_FIXTURES, DEMO_PERIOD, DEMO_TENANT_SPECS, DEMO_URN_SYSTEM, DEV_USERS, DataEventBus, DataStoreHistoricalArchive, DataStorePostgresReplica, DiscoverableStringParameter, DynamoDbDataStore, OPENHI_REPO_TAG_KEY_ENV_VAR, OPENHI_RESOURCE_URN_SYSTEM, OPENHI_TAG_KEY_PREFIX_ENV_VAR, OPENHI_TAG_SUFFIX_BRANCH_NAME, OPENHI_TAG_SUFFIX_REPO_NAME, OPENHI_TAG_SUFFIX_SERVICE_TYPE, OPENHI_TAG_SUFFIX_STAGE_TYPE, OWNING_DELETE_CASCADE_CONSUMER_NAME, OWNING_DELETE_CASCADE_DEFAULT_CONCURRENCY, OWNING_DELETE_CASCADE_STUCK_THRESHOLD_MINUTES, OWNING_DELETE_OPS_EVENT_BUS_ENV_VAR, OpenHiApp, OpenHiAuthService, OpenHiDataService, OpenHiEnvironment, OpenHiGlobalService, OpenHiGraphqlService, OpenHiRestApiService, OpenHiService, OpenHiStage, OpenHiWebsiteService, OpsEventBus, OwningDeleteCascadeLambdas, OwningDeleteCascadeWorkflow, PLACEHOLDER_TENANT_ID, PLACEHOLDER_WORKSPACE_ID, PLATFORM_DEPLOY_BRIDGE_ACTOR_SYSTEM, PLATFORM_SCOPE_TENANT_ID, POSTGRES_REPLICA_CLUSTER_ARN_SSM_NAME, POSTGRES_REPLICA_DATABASE_NAME_SSM_NAME, POSTGRES_REPLICA_SECRET_ARN_SSM_NAME, PROVISION_DEFAULT_WORKSPACE_DETAIL_TYPE, PlatformDeployBridge, PlatformDeployBridgeLambda, PostAuthenticationLambda, PostConfirmationLambda, PreTokenGenerationLambda, ProvisionDefaultWorkspaceLambda, RENAME_CASCADE_CONSUMER_NAME, RENAME_CASCADE_DEFAULT_CONCURRENCY, RENAME_CASCADE_FAILED_THRESHOLD, RENAME_CASCADE_OPS_EVENT_BUS_ENV_VAR, RENAME_CASCADE_SLOW_THRESHOLD_SECONDS, REST_API_BASE_URL_SSM_NAME, REST_API_DOMAIN_NAME_SSM_NAME, RenameCascadeLambdas, RenameCascadeWorkflow, RootGraphqlApi, RootHostedZone, RootHttpApi, RootWildcardCertificate, SEED_DEMO_DATA_CONSUMER_NAME, SEED_SYSTEM_DATA_ACTOR_SYSTEM, SEED_SYSTEM_DATA_CONSUMER_NAME, SEED_SYSTEM_DATA_CONTROL_BUS_ENV_VAR, SSM_PARAM_NAME_FULL_DOMAIN, STATIC_HOSTING_SERVICE_TYPE, SeedDemoDataLambda, SeedDemoDataWorkflow, SeedSystemDataLambda, SeedSystemDataWorkflow, StaticContent, StaticHosting, USER_ONBOARDING_EVENT_SOURCE, UserOnboardingWorkflow, WorkflowDedupConsumerNameInvalidError, WorkflowDedupTable, WorkflowDedupTableDuplicateError, buildFhirCurrentResourceChangeDetail, buildProvisionDefaultWorkspaceRequestedDetail, computeBranchHash, demoMembershipId, demoRoleAssignmentId, demoRolesForUserInTenant, demoScenarioIdentifier, getDynamoDbDataStoreTableName, getPostgresReplicaSchemaName, getWorkflowDedupTableName, openHiTagKey, openhiResourceIdentifier };
3077
+ export type { BridgedStatus, BuildParameterNameProps, CascadeChunkInput, CascadeFinalizeInput, CascadeFinalizeOutput, CascadeListInput, CascadeListOutput, ChildHostedZoneProps, CloudFormationStackStatusChangeDetail, ComputeBranchHashOptions, DataEventBusOptions, DataStoreHistoricalArchiveProps, DataStorePostgresReplicaProps, DemoDevUser, DemoTenantSpec, DemoWorkspaceDataPlaneFixtures, DemoWorkspaceSpec, DiscoverableStringParameterProps, DynamoDbDataStoreProps, FhirCurrentResourceChangeDetail, GrantConsumerOptions, HostingMode, OpenHiAppProps, OpenHiAuthServiceProps, OpenHiDataServiceProps, OpenHiEnvironmentProps, OpenHiGlobalServiceProps, OpenHiGraphqlServiceProps, OpenHiRestApiRuntimeConfig, OpenHiRestApiServiceProps, OpenHiServiceProps, OpenHiServiceType, OpenHiStageProps, OpenHiWebsiteServiceProps, OwningDeleteCascadeLambdasProps, OwningDeleteCascadeWorkflowProps, PlatformDeployBridgeLambdaProps, PlatformDeployBridgeProps, PostConfirmationLambdaProps, PreTokenGenerationLambdaProps, ProvisionDefaultWorkspaceLambdaProps, ProvisionDefaultWorkspaceRequestedDetail, RenameCascadeChunkInput, RenameCascadeFinalizeInput, RenameCascadeFinalizeOutput, RenameCascadeLambdasProps, RenameCascadeListInput, RenameCascadeListOutput, RenameCascadeWorkflowProps, RootGraphqlApiProps, RootHttpApiProps, SeedDemoDataLambdaProps, SeedDemoDataWorkflowProps, SeedSystemDataLambdaProps, SeedSystemDataWorkflowProps, StaticContentProps, StaticHostingProps, UserOnboardingWorkflowProps, WorkflowDedupTableProps };