@openhi/constructs 0.0.133 → 0.0.134

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.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, ARecord } from 'aws-cdk-lib/aws-route53';
21
21
  import { StringParameterProps, StringParameter } from 'aws-cdk-lib/aws-ssm';
22
- import { Distribution, DistributionProps, CachePolicyProps, BehaviorOptions } from 'aws-cdk-lib/aws-cloudfront';
22
+ import { Distribution, Function as Function$1, 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';
@@ -1049,7 +1049,11 @@ declare abstract class OpenHiService extends Stack {
1049
1049
  */
1050
1050
  constructor(ohEnv: OpenHiEnvironment, id: string, props?: OpenHiServiceProps);
1051
1051
  /**
1052
- * DNS prefix for this branche's child zone.
1052
+ * DNS prefix for this branche's child zone. Capped at 56 chars so
1053
+ * that a `<service>-<prefix>` hostname segment stays under the 63-byte
1054
+ * DNS label limit even for the longest current prefix (`admin-`, 6
1055
+ * bytes; the matching API uses `api-`, 4 bytes). 56 leaves 1 byte of
1056
+ * headroom on the longer side.
1053
1057
  */
1054
1058
  get childZonePrefix(): string;
1055
1059
  }
@@ -1666,7 +1670,7 @@ declare class DiscoverableStringParameter extends StringParameter {
1666
1670
  interface PerBranchHostnameProps {
1667
1671
  /**
1668
1672
  * Fully-qualified hostname to alias to the release-branch distribution
1669
- * (e.g. `admin-pr-123.dev.openhi.org`). Used as the ARecord's
1673
+ * (e.g. `admin-feat-1093-patient-migration.dev.openhi.org`). Used as the ARecord's
1670
1674
  * `recordName`.
1671
1675
  */
1672
1676
  readonly hostname: string;
@@ -1687,7 +1691,7 @@ interface PerBranchHostnameProps {
1687
1691
  }
1688
1692
  /**
1689
1693
  * Creates a single Route53 `ARecord` that aliases a per-PR hostname (e.g.
1690
- * `admin-pr-123.dev.openhi.org`) to the release-branch CloudFront
1694
+ * `admin-feat-1093-patient-migration.dev.openhi.org`) to the release-branch CloudFront
1691
1695
  * distribution. The distribution domain and ID are resolved from SSM
1692
1696
  * parameters published by {@link StaticHosting}, addressed against the
1693
1697
  * containing service's {@link OpenHiService.releaseBranchHash} so a
@@ -1780,13 +1784,18 @@ declare class StaticContent extends Construct {
1780
1784
  */
1781
1785
  declare const STATIC_HOSTING_SERVICE_TYPE = "website";
1782
1786
  /**
1783
- * Shared prefix for every per-PR preview hostname / S3 key
1784
- * (`admin-pr-<N>.<zone>`). Consumed by both the `StaticHosting`
1785
- * lifecycle rule (`prefixPattern`) and the per-PR deployment construct
1786
- * (`computeSubDomain` in `OpenHiWebsiteService`) so the two sides
1787
- * cannot drift a unit test asserts they reference the same constant.
1787
+ * Shared prefix for every per-PR preview hostname / S3 key. Per-PR
1788
+ * uploads land under `admin-<branch-prefix>.<zone>/...` and the
1789
+ * lifecycle rule below expires every object whose key starts with
1790
+ * `admin-`. Release-branch content lands under `admin.<zone>/...`
1791
+ * (note byte 5 is `.`, not `-`); S3 prefix matching is byte-exact from
1792
+ * byte 0, so `admin-` and `admin.` are disjoint — the rule never
1793
+ * matches release content. The constant is locked to the admin-console
1794
+ * domain prefix because no other website service currently consumes
1795
+ * per-PR previews; parameterize on `domainPrefix` when a second
1796
+ * consumer appears.
1788
1797
  */
1789
- declare const PER_BRANCH_PREVIEW_PREFIX = "admin-pr-";
1798
+ declare const PER_BRANCH_PREVIEW_PREFIX = "admin-";
1790
1799
  /**
1791
1800
  * Default TTL applied to objects matching the `prefixPattern` lifecycle
1792
1801
  * rule when `enablePreviewLifecycle` is `true` and `previewExpiration`
@@ -1859,21 +1868,40 @@ interface StaticHostingProps {
1859
1868
  */
1860
1869
  readonly description?: string;
1861
1870
  /**
1862
- * When supplied, the distribution proxies `/api/*` to the supplied REST
1863
- * API custom domain (e.g. `api.example.com`). Two CloudFront behaviors
1864
- * are added:
1871
+ * When supplied, the distribution proxies API traffic to the supplied
1872
+ * REST API custom domain (e.g. `api.example.com`). Three CloudFront
1873
+ * behaviors are added — `/config.json`, `/api/control/runtime-config`,
1874
+ * and `/api/*` — and each is wired with two edge stages so per-PR
1875
+ * websites reach their own per-PR API gateway:
1865
1876
  *
1866
- * - `/api/control/runtime-config` cached for `runtimeConfigCacheTtl`
1867
- * (default 5min) with the `v` query-string parameter in the cache key,
1868
- * so the admin-console's bundle-hash-driven cache buster reaches a hot
1869
- * CDN cache on every deploy without manual invalidation.
1870
- * - `/api/*` — `CachePolicy.CACHING_DISABLED`, all methods allowed,
1871
- * `OriginRequestPolicy.ALL_VIEWER_EXCEPT_HOST_HEADER` so CloudFront
1872
- * sets the Host header to the origin's custom domain (required for
1873
- * API Gateway's custom-domain mapping).
1877
+ * 1. **Viewer-request CloudFront Function** copies the viewer `Host`
1878
+ * header into `x-viewer-host` before CloudFront strips `Host` per
1879
+ * `ALL_VIEWER_EXCEPT_HOST_HEADER`. The `/config.json` function
1880
+ * additionally rewrites the URI to the configured
1881
+ * `runtimeConfigPath` (defaults to `/control/runtime-config`).
1882
+ * 2. **Origin-request Lambda@Edge** reads `x-viewer-host`, computes
1883
+ * the matching API host by swapping `hostMapping.viewerPrefix` for
1884
+ * `hostMapping.apiPrefix` at the start of the host, and overrides
1885
+ * both `request.origin.custom.domainName` and the upstream `Host`
1886
+ * header so the upstream's custom-domain mapping resolves to the
1887
+ * correct per-PR stack.
1874
1888
  *
1875
- * Neither behavior is wired through the viewer-request edge Lambda —
1876
- * SPA path rewriting only applies to the default S3 origin.
1889
+ * `runtimeConfigPath` and `hostMapping` default to the OpenHI
1890
+ * admin-console / REST API values; downstream consumers (e.g. a
1891
+ * marketing site with its own bootstrap path and origin pair) can
1892
+ * override them per-site without touching the construct.
1893
+ *
1894
+ * Behavior cache keys:
1895
+ * - `/config.json` and `/api/control/runtime-config` share a cache
1896
+ * policy whose cache key includes the `v` query string AND the
1897
+ * `Host` header. The `Host` partition prevents PR-A's runtime
1898
+ * config from being served from PR-B's cache slot.
1899
+ * - `/api/*` uses `CachePolicy.CACHING_DISABLED`, so no cache-key
1900
+ * partitioning is needed.
1901
+ *
1902
+ * None of these behaviors are wired through the default-behavior
1903
+ * viewer-request edge Lambda — SPA path rewriting only applies to
1904
+ * the default S3 origin.
1877
1905
  *
1878
1906
  * @default - no REST API proxy; the distribution serves S3 only
1879
1907
  */
@@ -1891,6 +1919,33 @@ interface StaticHostingProps {
1891
1919
  readonly defaultTtl?: Duration;
1892
1920
  readonly maxTtl?: Duration;
1893
1921
  };
1922
+ /**
1923
+ * Path the viewer-request CloudFront Function rewrites `/config.json`
1924
+ * to on the REST API origin. Override when a downstream consumer
1925
+ * bootstraps its SPA from a different endpoint.
1926
+ *
1927
+ * @default "/control/runtime-config" — the OpenHI admin-console
1928
+ * runtime-config endpoint.
1929
+ */
1930
+ readonly runtimeConfigPath?: string;
1931
+ /**
1932
+ * Host-prefix substitution applied by the origin-request Lambda@Edge.
1933
+ * `viewerPrefix` is matched at the start of the viewer's `Host`
1934
+ * header; when it matches, the upstream `Host` (and the custom
1935
+ * origin's `domainName`) becomes `apiPrefix + viewerHost.slice(viewerPrefix.length)`.
1936
+ *
1937
+ * The prefixes are baked into the Lambda@Edge bundle via esbuild
1938
+ * `define` at synth time (Lambda@Edge forbids runtime env vars), so
1939
+ * a change requires re-deploying the website stack.
1940
+ *
1941
+ * @default `{ viewerPrefix: "admin", apiPrefix: "api" }` — maps
1942
+ * `admin[-<branch>].<zone>` -> `api[-<branch>].<zone>` for the
1943
+ * OpenHI admin-console / REST API pair.
1944
+ */
1945
+ readonly hostMapping?: {
1946
+ readonly viewerPrefix: string;
1947
+ readonly apiPrefix: string;
1948
+ };
1894
1949
  };
1895
1950
  /**
1896
1951
  * S3 key prefix that the per-PR preview lifecycle rule matches. Must
@@ -1953,13 +2008,47 @@ declare class StaticHosting extends Construct {
1953
2008
  readonly bucket: IBucket;
1954
2009
  readonly distribution: Distribution;
1955
2010
  readonly viewerRequestHandler: NodejsFunction;
2011
+ /**
2012
+ * Viewer-request CloudFront Function attached to the `/config.json`
2013
+ * behavior. Rewrites the URI to `/control/runtime-config` and copies
2014
+ * the viewer `Host` header into `x-viewer-host` so the origin-request
2015
+ * Lambda@Edge can pick the matching per-PR API origin. Only present
2016
+ * when the `restApi` prop is supplied.
2017
+ */
2018
+ readonly configJsonRewriteFunction?: Function$1;
2019
+ /**
2020
+ * Viewer-request CloudFront Function attached to the `/api/*`
2021
+ * behavior. Copies the viewer `Host` header into `x-viewer-host` so
2022
+ * the origin-request Lambda@Edge can route to the matching per-PR
2023
+ * API origin (the `ALL_VIEWER_EXCEPT_HOST_HEADER` origin-request
2024
+ * policy strips the literal `Host` header). Only present when the
2025
+ * `restApi` prop is supplied.
2026
+ */
2027
+ readonly hostCopyFunction?: Function$1;
2028
+ /**
2029
+ * Origin-request Lambda@Edge attached to the `/config.json`,
2030
+ * `/api/control/runtime-config`, and `/api/*` behaviors. Reads
2031
+ * `x-viewer-host` and overrides the upstream origin's `domainName`
2032
+ * (and the `Host` header) to the matching per-PR API host so PR-A's
2033
+ * website calls PR-A's API. Only present when the `restApi` prop is
2034
+ * supplied.
2035
+ */
2036
+ readonly originRequestHandler?: NodejsFunction;
1956
2037
  constructor(scope: Construct, id: string, props: StaticHostingProps);
1957
2038
  /**
1958
- * Builds the `/api/*` and `/api/control/runtime-config` behaviors backed
1959
- * by the REST API custom-domain origin. Returns `undefined` when no
1960
- * `restApi` prop is supplied so the Distribution stays S3-only.
2039
+ * Builds the `/config.json`, `/api/*`, and `/api/control/runtime-config`
2040
+ * behaviors backed by the REST API custom-domain origin, plus the
2041
+ * viewer-request CloudFront Functions and the origin-request
2042
+ * Lambda@Edge that route each request to the matching per-PR API
2043
+ * origin. Returns `undefined` when no `restApi` prop is supplied so
2044
+ * the Distribution stays S3-only.
1961
2045
  */
1962
- protected buildRestApiBehaviors(branchHash: string, restApi: StaticHostingProps["restApi"]): Record<string, BehaviorOptions> | undefined;
2046
+ protected buildRestApiBehaviors(branchHash: string, restApi: StaticHostingProps["restApi"]): {
2047
+ behaviors: Record<string, BehaviorOptions>;
2048
+ configJsonRewriteFunction: Function$1;
2049
+ hostCopyFunction: Function$1;
2050
+ originRequestHandler: NodejsFunction;
2051
+ } | undefined;
1963
2052
  }
1964
2053
 
1965
2054
  interface ProvisionDefaultWorkspaceLambdaProps {
@@ -2810,12 +2899,6 @@ declare class OpenHiGraphqlService extends OpenHiService {
2810
2899
  protected createRootGraphqlApi(): RootGraphqlApi;
2811
2900
  }
2812
2901
 
2813
- /**
2814
- * Environment variable that supplies the PR number on non-release website
2815
- * deploys. Sibling of `GIT_BRANCH_NAME` used by `OpenHiService`. CI sets
2816
- * this from `github.event.pull_request.number`.
2817
- */
2818
- declare const OPENHI_PR_NUMBER_ENV_VAR = "OPENHI_PR_NUMBER";
2819
2902
  /**
2820
2903
  * @see sites/www-docs/content/packages/@openhi/constructs/services/open-hi-website-service.md
2821
2904
  */
@@ -2882,18 +2965,6 @@ interface OpenHiWebsiteServiceProps extends OpenHiServiceProps {
2882
2965
  * @default false
2883
2966
  */
2884
2967
  readonly restApi?: boolean;
2885
- /**
2886
- * Pull-request number used to compute the per-PR preview hostname
2887
- * (`\<domainPrefix\>-pr-\<N\>.\<zone\>`). Falls back to the
2888
- * `OPENHI_PR_NUMBER` env var when omitted — CI workflows set the env
2889
- * var from `github.event.pull_request.number`.
2890
- *
2891
- * Required on non-release-branch deploys; ignored on release-branch
2892
- * deploys where the hostname is `\<domainPrefix\>.\<zone\>`.
2893
- *
2894
- * @default - parsed from `OPENHI_PR_NUMBER` env var when set
2895
- */
2896
- readonly prNumber?: number;
2897
2968
  }
2898
2969
  /**
2899
2970
  * SSM parameter name suffix for the website's full domain
@@ -2946,7 +3017,9 @@ declare class OpenHiWebsiteService extends OpenHiService {
2946
3017
  * Full domain served by this website. On the release branch this is
2947
3018
  * `<domainPrefix>.<zone>` (e.g. `admin.dev.openhi.org`); on every
2948
3019
  * other branch it is the per-PR preview hostname
2949
- * `<domainPrefix>-pr-<N>.<zone>` (e.g. `admin-pr-123.dev.openhi.org`).
3020
+ * `<domainPrefix>-<childZonePrefix>.<zone>`
3021
+ * (e.g. `admin-feat-1093-patient-migration.dev.openhi.org`), where
3022
+ * `childZonePrefix` is `paramCase(branchName)` truncated to 56 chars.
2950
3023
  */
2951
3024
  readonly fullDomain: string;
2952
3025
  /**
@@ -2965,17 +3038,11 @@ declare class OpenHiWebsiteService extends OpenHiService {
2965
3038
  /**
2966
3039
  * Per-PR alias record. Created on non-release-branch deploys (when
2967
3040
  * `createHostingInfrastructure` is left at its default) so the PR
2968
- * hostname `<domainPrefix>-pr-<N>.<zone>` resolves to the
3041
+ * hostname `<domainPrefix>-<childZonePrefix>.<zone>` resolves to the
2969
3042
  * release-branch CloudFront distribution. `undefined` on release-branch
2970
3043
  * deploys and on bootstrap deploys that force hosting infra on.
2971
3044
  */
2972
3045
  readonly perBranchHostname?: PerBranchHostname;
2973
- /**
2974
- * Pull-request number resolved from props or `OPENHI_PR_NUMBER`.
2975
- * `undefined` on release-branch deploys (where the hostname is
2976
- * `<domainPrefix>.<zone>` and no PR number is needed).
2977
- */
2978
- readonly prNumber?: number;
2979
3046
  constructor(ohEnv: OpenHiEnvironment, props: OpenHiWebsiteServiceProps);
2980
3047
  /**
2981
3048
  * Validates that config required for the website stack is present.
@@ -2995,17 +3062,12 @@ declare class OpenHiWebsiteService extends OpenHiService {
2995
3062
  */
2996
3063
  protected createCertificate(): ICertificate;
2997
3064
  /**
2998
- * Resolves the PR number from props or the `OPENHI_PR_NUMBER` env var.
2999
- * Returns `undefined` on release-branch deploys where no PR number is
3000
- * needed.
3001
- */
3002
- protected resolvePrNumber(props: OpenHiWebsiteServiceProps): number | undefined;
3003
- /**
3004
- * Computes the full website domain from `domainPrefix`, the PR number,
3005
- * and the child zone name. Release-branch deploys serve at
3006
- * `\<domainPrefix\>.\<zone\>` (e.g. `admin.dev.openhi.org`); every other
3007
- * deploy serves a per-PR preview at `\<domainPrefix\>-pr-\<N\>.\<zone\>`
3008
- * (e.g. `admin-pr-123.dev.openhi.org`).
3065
+ * Computes the full website domain from `domainPrefix`,
3066
+ * `childZonePrefix`, and the child zone name. Release-branch deploys
3067
+ * serve at `\<domainPrefix\>.\<zone\>` (e.g. `admin.dev.openhi.org`);
3068
+ * every other deploy serves a per-PR preview at
3069
+ * `\<domainPrefix\>-\<childZonePrefix\>.\<zone\>`
3070
+ * (e.g. `admin-feat-1093-patient-migration.dev.openhi.org`).
3009
3071
  */
3010
3072
  protected computeFullDomain(hostedZone: IHostedZone): string;
3011
3073
  /**
@@ -3014,8 +3076,11 @@ declare class OpenHiWebsiteService extends OpenHiService {
3014
3076
  * key prefix passed to {@link StaticContent} so the upload prefix
3015
3077
  * always matches the served hostname.
3016
3078
  *
3017
- * Non-release deploys compose the per-PR slug from
3018
- * {@link PER_BRANCH_PREVIEW_PREFIX} so the per-PR S3 key prefix
3079
+ * Non-release deploys compose the per-PR slug as
3080
+ * `\<domainPrefix\>-\<childZonePrefix\>`, mirroring the REST API's
3081
+ * `api-\<childZonePrefix\>` convention. When `domainPrefix` is `admin`
3082
+ * (the only consumer today), the resulting sub-domain starts with
3083
+ * {@link PER_BRANCH_PREVIEW_PREFIX}, so the per-PR S3 key prefix
3019
3084
  * matches what `StaticHosting`'s lifecycle rule expires.
3020
3085
  */
3021
3086
  protected computeSubDomain(): string;
@@ -3059,15 +3124,17 @@ declare class OpenHiWebsiteService extends OpenHiService {
3059
3124
  * The S3 key prefix is `\<sub-domain\>.\<zone\>/\<contentDest\>` so the
3060
3125
  * upload location matches the Host-header-derived folder the Lambda@Edge
3061
3126
  * viewer-request handler prepends. Passing the zone name (rather than
3062
- * `this.fullDomain`) for the `fullDomain` prop keeps the prefix flat
3063
- * `admin-pr-123.dev.openhi.org/`, not `admin-pr-123.admin.dev.openhi.org/`.
3127
+ * `this.fullDomain`) for the `fullDomain` prop keeps the prefix flat
3128
+ * `admin-feat-foo.dev.openhi.org/`, not
3129
+ * `admin-feat-foo.admin.dev.openhi.org/`.
3064
3130
  */
3065
3131
  protected createStaticContent(bucket: IBucket): StaticContent;
3066
3132
  /**
3067
3133
  * Creates the per-PR `PerBranchHostname` alias record on non-release
3068
- * branch deploys. The record points `\<domainPrefix\>-pr-\<N\>.\<zone\>`
3069
- * at the release-branch CloudFront distribution (resolved from SSM
3070
- * against {@link OpenHiService.releaseBranchHash}).
3134
+ * branch deploys. The record points
3135
+ * `\<domainPrefix\>-\<childZonePrefix\>.\<zone\>` at the release-branch
3136
+ * CloudFront distribution (resolved from SSM against
3137
+ * {@link OpenHiService.releaseBranchHash}).
3071
3138
  */
3072
3139
  protected createPerBranchHostname(hostedZone: IHostedZone): PerBranchHostname;
3073
3140
  /**
@@ -3264,5 +3331,5 @@ declare class RenameCascadeWorkflow extends Construct {
3264
3331
  constructor(scope: Construct, props: RenameCascadeWorkflowProps);
3265
3332
  }
3266
3333
 
3267
- 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, DEFAULT_PREVIEW_EXPIRATION_DAYS, DEMO_DATA_PLANE_FIXTURES, DEMO_PERIOD, DEMO_TENANT_SPECS, DEMO_URN_SYSTEM, DEV_USERS, DataEventBus, DataStoreHistoricalArchive, DataStorePostgresReplica, DiscoverableStringParameter, DynamoDbDataStore, OPENHI_PR_NUMBER_ENV_VAR, 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, PER_BRANCH_PREVIEW_PREFIX, 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, PerBranchHostname, 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 };
3334
+ 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, DEFAULT_PREVIEW_EXPIRATION_DAYS, 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, PER_BRANCH_PREVIEW_PREFIX, 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, PerBranchHostname, 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 };
3268
3335
  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, PerBranchHostnameProps, PlatformDeployBridgeLambdaProps, PlatformDeployBridgeProps, PostConfirmationLambdaProps, PreTokenGenerationLambdaProps, ProvisionDefaultWorkspaceLambdaProps, ProvisionDefaultWorkspaceRequestedDetail, RenameCascadeChunkInput, RenameCascadeFinalizeInput, RenameCascadeFinalizeOutput, RenameCascadeLambdasProps, RenameCascadeListInput, RenameCascadeListOutput, RenameCascadeWorkflowProps, RootGraphqlApiProps, RootHttpApiProps, SeedDemoDataLambdaProps, SeedDemoDataWorkflowProps, SeedSystemDataLambdaProps, SeedSystemDataWorkflowProps, StaticContentProps, StaticHostingProps, UserOnboardingWorkflowProps, WorkflowDedupTableProps };