@openhi/constructs 0.0.114 → 0.0.116
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/chunk-AHYQFT4N.mjs +212 -0
- package/lib/chunk-AHYQFT4N.mjs.map +1 -0
- package/lib/{chunk-CUUKXDB2.mjs → chunk-AJQUWHFK.mjs} +460 -54
- package/lib/chunk-AJQUWHFK.mjs.map +1 -0
- package/lib/{chunk-GBDIGTNV.mjs → chunk-QWWLM452.mjs} +2 -2
- package/lib/{chunk-QMBJ4VHC.mjs → chunk-U7L7T4XU.mjs} +25 -25
- package/lib/{chunk-QMBJ4VHC.mjs.map → chunk-U7L7T4XU.mjs.map} +1 -1
- package/lib/{chunk-NZRW7ROK.mjs → chunk-YYRWDEG4.mjs} +2 -2
- package/lib/{chunk-KSFC72TT.mjs → chunk-ZHMHLK3S.mjs} +2 -2
- package/lib/{events-DPodvl07.d.mts → events-CMG8xanm.d.mts} +7 -53
- package/lib/{events-DPodvl07.d.ts → events-CMG8xanm.d.ts} +7 -53
- package/lib/index.d.mts +330 -84
- package/lib/index.d.ts +350 -136
- package/lib/index.js +844 -301
- package/lib/index.js.map +1 -1
- package/lib/index.mjs +472 -304
- package/lib/index.mjs.map +1 -1
- package/lib/pre-token-generation.handler.mjs +3 -3
- package/lib/provision-default-workspace.handler.mjs +3 -3
- package/lib/rest-api-lambda.handler.mjs +282 -452
- package/lib/rest-api-lambda.handler.mjs.map +1 -1
- package/lib/seed-demo-data.handler.d.mts +6 -3
- package/lib/seed-demo-data.handler.d.ts +6 -3
- package/lib/seed-demo-data.handler.js +656 -0
- package/lib/seed-demo-data.handler.js.map +1 -1
- package/lib/seed-demo-data.handler.mjs +4 -4
- package/lib/static-hosting.viewer-request-handler.d.mts +54 -0
- package/lib/static-hosting.viewer-request-handler.d.ts +54 -0
- package/lib/static-hosting.viewer-request-handler.js +79 -0
- package/lib/static-hosting.viewer-request-handler.js.map +1 -0
- package/lib/static-hosting.viewer-request-handler.mjs +53 -0
- package/lib/static-hosting.viewer-request-handler.mjs.map +1 -0
- package/package.json +2 -2
- package/lib/chunk-53OHXLIL.mjs +0 -27
- package/lib/chunk-53OHXLIL.mjs.map +0 -1
- package/lib/chunk-CUUKXDB2.mjs.map +0 -1
- /package/lib/{chunk-GBDIGTNV.mjs.map → chunk-QWWLM452.mjs.map} +0 -0
- /package/lib/{chunk-NZRW7ROK.mjs.map → chunk-YYRWDEG4.mjs.map} +0 -0
- /package/lib/{chunk-KSFC72TT.mjs.map → chunk-ZHMHLK3S.mjs.map} +0 -0
package/lib/index.d.ts
CHANGED
|
@@ -3,7 +3,7 @@ import { Construct, IConstruct } from 'constructs';
|
|
|
3
3
|
import { ICertificate, Certificate, CertificateProps } from 'aws-cdk-lib/aws-certificatemanager';
|
|
4
4
|
import { IHttpApi, HttpApiProps, HttpApi, DomainName } from 'aws-cdk-lib/aws-apigatewayv2';
|
|
5
5
|
import { IGraphqlApi, GraphqlApi, GraphqlApiProps } from 'aws-cdk-lib/aws-appsync';
|
|
6
|
-
import {
|
|
6
|
+
import { UserPool, UserPoolProps, UserPoolClient, UserPoolClientProps, UserPoolDomain, UserPoolDomainProps, IUserPool, IUserPoolClient, IUserPoolDomain } from 'aws-cdk-lib/aws-cognito';
|
|
7
7
|
import { Key, KeyProps, IKey } from 'aws-cdk-lib/aws-kms';
|
|
8
8
|
import { NodejsFunction } from 'aws-cdk-lib/aws-lambda-nodejs';
|
|
9
9
|
import { AttributeValue } from '@aws-sdk/client-dynamodb';
|
|
@@ -19,11 +19,11 @@ 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 } from 'aws-cdk-lib/aws-cloudfront';
|
|
22
|
+
import { Distribution, DistributionProps, CachePolicyProps } 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';
|
|
26
|
-
import { PlatformRoleCode } from '@openhi/types';
|
|
26
|
+
import { PlatformRoleCode, Patient, Practitioner, Observation, Encounter, Account } from '@openhi/types';
|
|
27
27
|
import { PostConfirmationTriggerEvent } from 'aws-lambda';
|
|
28
28
|
|
|
29
29
|
/*******************************************************************************
|
|
@@ -123,6 +123,21 @@ interface DynamoDbStreamKinesisRecord {
|
|
|
123
123
|
};
|
|
124
124
|
}
|
|
125
125
|
|
|
126
|
+
/**
|
|
127
|
+
* @see sites/www-docs/content/packages/@openhi/constructs/components/static-hosting/static-hosting.viewer-request-handler.md
|
|
128
|
+
*/
|
|
129
|
+
/**
|
|
130
|
+
* Hosting mode controls how path-like URIs get a default document.
|
|
131
|
+
*
|
|
132
|
+
* - `spa`: path-like URIs (e.g. `/dashboard`, `/patients/123`) rewrite to
|
|
133
|
+
* `/index.html` so the single-page app's root index is served and the
|
|
134
|
+
* client-side router handles the path.
|
|
135
|
+
* - `static`: path-like URIs append `/index.html` (e.g. `/docs` becomes
|
|
136
|
+
* `/docs/index.html`) so multi-page static sites can serve distinct
|
|
137
|
+
* HTML per path.
|
|
138
|
+
*/
|
|
139
|
+
type HostingMode = "spa" | "static";
|
|
140
|
+
|
|
126
141
|
/**
|
|
127
142
|
* @see sites/www-docs/content/packages/@openhi/constructs/workflows/control-plane/owning-delete-cascade/events.md
|
|
128
143
|
*
|
|
@@ -514,10 +529,9 @@ declare const DEMO_PERIOD: {
|
|
|
514
529
|
* `"platform"` literal is a reserved value that never matches a real
|
|
515
530
|
* Tenant id and signals "this RA scopes across all tenants".
|
|
516
531
|
*
|
|
517
|
-
* Renaming this constant is a wire-format break — the
|
|
518
|
-
*
|
|
519
|
-
*
|
|
520
|
-
* become unreachable if the sentinel changes.
|
|
532
|
+
* Renaming this constant is a wire-format break — the handler emits
|
|
533
|
+
* RoleAssignment records keyed on this value, and the in-band records
|
|
534
|
+
* written under it become unreachable if the sentinel changes.
|
|
521
535
|
*/
|
|
522
536
|
declare const PLATFORM_SCOPE_TENANT_ID = "platform";
|
|
523
537
|
/** Placeholder Tenant id seeded by the workflow as the dev-user `currentTenant`. */
|
|
@@ -558,8 +572,8 @@ interface DemoWorkspaceSpec {
|
|
|
558
572
|
readonly name: string;
|
|
559
573
|
/**
|
|
560
574
|
* Role suffix used in the demo URN value (`<scenario>:<roleSuffix>`).
|
|
561
|
-
*
|
|
562
|
-
*
|
|
575
|
+
* `workspace` for single-workspace tenants, `workspace-<sub>` for the
|
|
576
|
+
* mixed tenant.
|
|
563
577
|
*/
|
|
564
578
|
readonly roleSuffix: string;
|
|
565
579
|
}
|
|
@@ -572,8 +586,7 @@ interface DemoTenantSpec {
|
|
|
572
586
|
/**
|
|
573
587
|
* Scenario slug — `placeholder`, `demo-wound-care`, `demo-primary-care`,
|
|
574
588
|
* `demo-mixed`. The placeholder tenant's slug is `placeholder`; the
|
|
575
|
-
* three demo tenants
|
|
576
|
-
* to `demo-*`.
|
|
589
|
+
* three demo tenants use `demo-*` slugs.
|
|
577
590
|
*/
|
|
578
591
|
readonly scenario: string;
|
|
579
592
|
/** Stable id (DynamoDB record id; also drives the canonical OHI URN). */
|
|
@@ -608,8 +621,6 @@ declare const demoMembershipId: (devUserId: string, tenantId: string) => string;
|
|
|
608
621
|
declare const demoRoleAssignmentId: (devUserId: string, tenantId: string, roleCode: PlatformRoleCode) => string;
|
|
609
622
|
/**
|
|
610
623
|
* Demo-scenario FHIR `Identifier` entry — `urn:openhi:demo:<scenario>:<role>`.
|
|
611
|
-
* Mirrors the `urn:openhi:fixture:<scenario>:<role>` pattern from
|
|
612
|
-
* `@openhi/seed-fixtures/src/urn.ts`, renamed to the `demo` namespace.
|
|
613
624
|
*/
|
|
614
625
|
declare const demoScenarioIdentifier: (scenario: string, roleSuffix: string) => {
|
|
615
626
|
system: string;
|
|
@@ -638,48 +649,6 @@ declare const openhiResourceIdentifier: (params: {
|
|
|
638
649
|
* is no per-(user, tenant) variance to drive from.
|
|
639
650
|
*/
|
|
640
651
|
declare const demoRolesForUserInTenant: (_user: DemoDevUser, _tenantId: string) => ReadonlyArray<PlatformRoleCode>;
|
|
641
|
-
/**
|
|
642
|
-
* DynamoDB single-table partition-key builders. The IAM grant in
|
|
643
|
-
* `seed-demo-data-lambda.ts` uses these to enumerate exact-match
|
|
644
|
-
* `dynamodb:LeadingKeys` values; the entity definitions in
|
|
645
|
-
* `data/dynamo/entities/control/` own the canonical key templates.
|
|
646
|
-
*
|
|
647
|
-
* These builders MUST emit the keys ElectroDB actually writes — not
|
|
648
|
-
* the entity definition's pretty template. None of the control-plane
|
|
649
|
-
* entities sets `casing: "none"` on the base-table PK template, so
|
|
650
|
-
* ElectroDB applies its default lowercase casing at runtime: the
|
|
651
|
-
* entity's `ROLE#ID#${id}` becomes `role#id#<id>` on the wire. A
|
|
652
|
-
* builder that returns the uppercase template form produces a
|
|
653
|
-
* silently-broken IAM grant (every PutItem denied with "no
|
|
654
|
-
* identity-based policy allows" because the request's leading-key
|
|
655
|
-
* never matches a policy value).
|
|
656
|
-
*/
|
|
657
|
-
declare const rolePartitionKey: (roleId: string) => string;
|
|
658
|
-
declare const demoTenantPartitionKey: (tenantId: string) => string;
|
|
659
|
-
declare const demoWorkspacePartitionKey: (tenantId: string, workspaceId: string) => string;
|
|
660
|
-
declare const demoMembershipPartitionKey: (tenantId: string, membershipId: string) => string;
|
|
661
|
-
declare const demoRoleAssignmentPartitionKey: (tenantId: string, roleAssignmentId: string) => string;
|
|
662
|
-
/** User entity PK template — `USER#ID#<id>` → `user#id#<id>` on the wire. */
|
|
663
|
-
declare const demoUserPartitionKey: (userId: string) => string;
|
|
664
|
-
/**
|
|
665
|
-
* Tenant + Workspace PKs the workflow writes on every fire: the 4
|
|
666
|
-
* tenant PKs (placeholder + 3 demo) plus their workspaces (1 + 1 + 1 + 2 = 5).
|
|
667
|
-
*/
|
|
668
|
-
declare const demoBasePartitionKeys: () => ReadonlyArray<string>;
|
|
669
|
-
/**
|
|
670
|
-
* Membership + RoleAssignment + User PKs the workflow writes per dev
|
|
671
|
-
* user. Empty when `devUsers` is empty (used by tests). The list
|
|
672
|
-
* mirrors the handler's iteration order so the IAM grant covers every
|
|
673
|
-
* write the handler can make.
|
|
674
|
-
*
|
|
675
|
-
* Per dev user the function emits:
|
|
676
|
-
* - one User PK,
|
|
677
|
-
* - per tenant in {@link DEMO_TENANT_SPECS}: one Membership PK plus
|
|
678
|
-
* one `tenant-admin` RoleAssignment PK,
|
|
679
|
-
* - one platform-scoped `system-admin` RoleAssignment PK keyed by
|
|
680
|
-
* {@link PLATFORM_SCOPE_TENANT_ID}.
|
|
681
|
-
*/
|
|
682
|
-
declare const demoDevUserPartitionKeys: (devUsers: ReadonlyArray<DemoDevUser>) => ReadonlyArray<string>;
|
|
683
652
|
|
|
684
653
|
/**
|
|
685
654
|
* @see sites/www-docs/content/packages/@openhi/constructs/workflows/control-plane/user-onboarding/events.md
|
|
@@ -914,7 +883,7 @@ declare class OpenHiApp extends App {
|
|
|
914
883
|
*
|
|
915
884
|
* @public
|
|
916
885
|
*/
|
|
917
|
-
type OpenHiServiceType = "auth" | "rest-api" | "data" | "global" | "graphql-api";
|
|
886
|
+
type OpenHiServiceType = "auth" | "rest-api" | "data" | "global" | "graphql-api" | "website";
|
|
918
887
|
/**
|
|
919
888
|
* Tag-key suffixes applied by every OpenHiService stack via Tags.of().
|
|
920
889
|
* Full keys are composed `${appName}:${suffix}` — see {@link openHiTagKey}.
|
|
@@ -1089,47 +1058,6 @@ declare class RootGraphqlApi extends GraphqlApi {
|
|
|
1089
1058
|
constructor(scope: Construct, props?: Omit<RootGraphqlApiProps, "name">);
|
|
1090
1059
|
}
|
|
1091
1060
|
|
|
1092
|
-
interface CognitoFixtureSeederClientProps extends Partial<Omit<UserPoolClientProps, "userPool" | "generateSecret">> {
|
|
1093
|
-
readonly userPool: IUserPool;
|
|
1094
|
-
}
|
|
1095
|
-
/**
|
|
1096
|
-
* Dedicated Cognito app client for the OpenHI fixture-seeder CLI
|
|
1097
|
-
* (`@openhi/seed-fixtures`).
|
|
1098
|
-
*
|
|
1099
|
-
* Why a dedicated client (vs reusing the SPA client):
|
|
1100
|
-
* - Tightly scoped: only the seeder consumes tokens issued here, so an
|
|
1101
|
-
* audit trail of seeder activity is cleanly separable.
|
|
1102
|
-
* - Decoupled from the SPA client's OAuth flows — no risk of breaking
|
|
1103
|
-
* web-app sign-in by tweaking auth-flow settings here.
|
|
1104
|
-
* - Stage-conditional creation upstream (only provisioned in non-prod
|
|
1105
|
-
* environments) means prod stacks never carry a code path that could
|
|
1106
|
-
* issue a fixture-seeder token in the first place.
|
|
1107
|
-
*
|
|
1108
|
-
* Why USER_PASSWORD_AUTH (vs M2M client-credentials):
|
|
1109
|
-
* - Cognito's M2M tier has a per-app-client monthly fee plus per-token
|
|
1110
|
-
* activity charges. For sporadic non-prod fixture runs the per-client
|
|
1111
|
-
* fee dominates the bill, especially if every dev branch spins up
|
|
1112
|
-
* its own auth stack.
|
|
1113
|
-
* - USER_PASSWORD_AUTH against a service `fixture-seeder` user keeps
|
|
1114
|
-
* the cost in MAU territory (free under the 50K MAU tier).
|
|
1115
|
-
* - Tradeoff: passwords need rotation and the service user must be
|
|
1116
|
-
* provisioned per non-prod environment (manual or scripted post-deploy).
|
|
1117
|
-
*
|
|
1118
|
-
* No client secret (`generateSecret: false`): USER_PASSWORD_AUTH
|
|
1119
|
-
* authenticates with the password directly; a secret would just add
|
|
1120
|
-
* another credential to manage without strengthening anything.
|
|
1121
|
-
*/
|
|
1122
|
-
declare class CognitoFixtureSeederClient extends UserPoolClient {
|
|
1123
|
-
/**
|
|
1124
|
-
* SSM parameter name suffix used to publish this client's ID for
|
|
1125
|
-
* cross-stack lookups. Built into a full parameter name via
|
|
1126
|
-
* `buildParameterName` with `serviceType` AUTH (since the auth stack
|
|
1127
|
-
* owns this resource).
|
|
1128
|
-
*/
|
|
1129
|
-
static readonly SSM_PARAM_NAME = "COGNITO_FIXTURE_SEEDER_CLIENT";
|
|
1130
|
-
constructor(scope: Construct, props: CognitoFixtureSeederClientProps);
|
|
1131
|
-
}
|
|
1132
|
-
|
|
1133
1061
|
/**
|
|
1134
1062
|
* @see sites/www-docs/content/packages/@openhi/constructs/components/cognito/cognito-user-pool.md
|
|
1135
1063
|
*/
|
|
@@ -1676,6 +1604,79 @@ declare class DiscoverableStringParameter extends StringParameter {
|
|
|
1676
1604
|
constructor(scope: Construct, id: string, props: DiscoverableStringParameterProps);
|
|
1677
1605
|
}
|
|
1678
1606
|
|
|
1607
|
+
/**
|
|
1608
|
+
* @see sites/www-docs/content/packages/@openhi/constructs/components/static-hosting/static-content.md
|
|
1609
|
+
*/
|
|
1610
|
+
/*******************************************************************************
|
|
1611
|
+
*
|
|
1612
|
+
* STATIC CONTENT UPLOADER
|
|
1613
|
+
*
|
|
1614
|
+
* This construct uploads a directory of content from a local location into S3.
|
|
1615
|
+
*
|
|
1616
|
+
* To support PR and branch specific builds, each S3 bucket can store content
|
|
1617
|
+
* for multiple domains and builds, using the following format:
|
|
1618
|
+
*
|
|
1619
|
+
* S3-bucket/<sub-domain>.<full-domain>/*
|
|
1620
|
+
*
|
|
1621
|
+
* A bucket used to store content for stage.openhi.org might have the
|
|
1622
|
+
* following directory structure (all in the same bucket):
|
|
1623
|
+
*
|
|
1624
|
+
* /www.stage.openhi.org/* -> serves content to www.stage.openhi.org
|
|
1625
|
+
* /feature-7.stage.openhi.org/* -> serves content to feature-7.stage.openhi.org
|
|
1626
|
+
* /pr-123.stage.openhi.org/* -> serves content to pr-123.stage.openhi.org
|
|
1627
|
+
*
|
|
1628
|
+
******************************************************************************/
|
|
1629
|
+
/**
|
|
1630
|
+
* Props for the StaticContent construct.
|
|
1631
|
+
*/
|
|
1632
|
+
interface StaticContentProps {
|
|
1633
|
+
/**
|
|
1634
|
+
* Absolute path to directory containing content for the website.
|
|
1635
|
+
*/
|
|
1636
|
+
readonly contentSourceDirectory: string;
|
|
1637
|
+
/**
|
|
1638
|
+
* Directory to place content into. Should start with a slash.
|
|
1639
|
+
* Example: '/widget'
|
|
1640
|
+
*
|
|
1641
|
+
* @default "/"
|
|
1642
|
+
*/
|
|
1643
|
+
readonly contentDestinationDirectory?: string;
|
|
1644
|
+
/**
|
|
1645
|
+
* The sub domain prefix (e.g. "feature-7"). Used as the per-branch folder
|
|
1646
|
+
* name in the bucket so each branch deploys to its own prefix.
|
|
1647
|
+
*
|
|
1648
|
+
* @default the current stack's branch name (kebab-cased)
|
|
1649
|
+
*/
|
|
1650
|
+
readonly subDomain?: string;
|
|
1651
|
+
/**
|
|
1652
|
+
* The full domain (e.g. "stage.openhi.org"). Used together with
|
|
1653
|
+
* `subDomain` to form the destination prefix
|
|
1654
|
+
* `<sub-domain>.<full-domain>`.
|
|
1655
|
+
*/
|
|
1656
|
+
readonly fullDomain: string;
|
|
1657
|
+
/**
|
|
1658
|
+
* Service type used to look up the static-hosting bucket ARN via
|
|
1659
|
+
* DiscoverableStringParameter.
|
|
1660
|
+
*
|
|
1661
|
+
* @default STATIC_HOSTING_SERVICE_TYPE ("website")
|
|
1662
|
+
*/
|
|
1663
|
+
readonly serviceType?: string;
|
|
1664
|
+
}
|
|
1665
|
+
/**
|
|
1666
|
+
* Static content uploader: deploys a local directory to the static-hosting
|
|
1667
|
+
* S3 bucket under `<sub-domain>.<full-domain>/<dest>` so each branch
|
|
1668
|
+
* deploys to its own prefix without clobbering siblings. The bucket ARN is
|
|
1669
|
+
* looked up via DiscoverableStringParameter so the uploader can run on a
|
|
1670
|
+
* feature-branch stack while the bucket itself was provisioned by the
|
|
1671
|
+
* release-branch service stack.
|
|
1672
|
+
*/
|
|
1673
|
+
declare class StaticContent extends Construct {
|
|
1674
|
+
constructor(scope: Construct, id: string, props: StaticContentProps);
|
|
1675
|
+
}
|
|
1676
|
+
|
|
1677
|
+
/**
|
|
1678
|
+
* @see sites/www-docs/content/packages/@openhi/constructs/components/static-hosting/static-hosting.md
|
|
1679
|
+
*/
|
|
1679
1680
|
/**
|
|
1680
1681
|
* Service type for the website service. Used in SSM parameter paths and by
|
|
1681
1682
|
* OpenHiWebsiteService for fromConstruct() lookups.
|
|
@@ -1690,21 +1691,61 @@ interface StaticHostingProps {
|
|
|
1690
1691
|
*/
|
|
1691
1692
|
readonly bucketProps?: Omit<BucketProps, "bucketName">;
|
|
1692
1693
|
/**
|
|
1693
|
-
* Optional CloudFront distribution props.
|
|
1694
|
-
*
|
|
1694
|
+
* Optional CloudFront distribution props. Defaults wire a custom cache
|
|
1695
|
+
* policy (60s/300s with gzip+brotli), `REDIRECT_TO_HTTPS`, and
|
|
1696
|
+
* `ALLOW_GET_HEAD_OPTIONS` on the default behavior; overrides apply on top.
|
|
1695
1697
|
*/
|
|
1696
1698
|
readonly distributionProps?: Omit<DistributionProps, "defaultBehavior" | "defaultRootObject">;
|
|
1699
|
+
/**
|
|
1700
|
+
* Optional cache policy overrides. Defaults: `defaultTtl=60s`, `maxTtl=300s`,
|
|
1701
|
+
* `minTtl=0s`, gzip+brotli enabled, no headers/cookies/query strings cached.
|
|
1702
|
+
*/
|
|
1703
|
+
readonly cachePolicyProps?: Omit<CachePolicyProps, "cachePolicyName">;
|
|
1704
|
+
/**
|
|
1705
|
+
* Wildcard certificate to attach to the CloudFront distribution. When
|
|
1706
|
+
* supplied together with `hostedZone` and `domainNames`, CloudFront serves
|
|
1707
|
+
* the listed domains and Route53 ARecords are created in the zone.
|
|
1708
|
+
*
|
|
1709
|
+
* @default - no custom certificate; CloudFront default domain is served
|
|
1710
|
+
*/
|
|
1711
|
+
readonly certificate?: ICertificate;
|
|
1712
|
+
/**
|
|
1713
|
+
* Hosted zone to create Route53 ARecords in. Required together with
|
|
1714
|
+
* `certificate` and `domainNames` to attach a custom domain.
|
|
1715
|
+
*/
|
|
1716
|
+
readonly hostedZone?: IHostedZone;
|
|
1717
|
+
/**
|
|
1718
|
+
* Domain names to attach to the CloudFront distribution. Each name also
|
|
1719
|
+
* gets an ARecord in `hostedZone`.
|
|
1720
|
+
*/
|
|
1721
|
+
readonly domainNames?: ReadonlyArray<string>;
|
|
1722
|
+
/**
|
|
1723
|
+
* Selects how path-like URIs are rewritten by the viewer-request
|
|
1724
|
+
* Lambda@Edge handler.
|
|
1725
|
+
*
|
|
1726
|
+
* - `spa` (default): path-like URIs rewrite to `/index.html`.
|
|
1727
|
+
* - `static`: path-like URIs append `/index.html`.
|
|
1728
|
+
*
|
|
1729
|
+
* @default "spa"
|
|
1730
|
+
*/
|
|
1731
|
+
readonly hostingMode?: HostingMode;
|
|
1697
1732
|
/**
|
|
1698
1733
|
* Service type for SSM parameter paths.
|
|
1734
|
+
*
|
|
1699
1735
|
* @default STATIC_HOSTING_SERVICE_TYPE ("website")
|
|
1700
1736
|
*/
|
|
1701
1737
|
readonly serviceType?: string;
|
|
1738
|
+
/**
|
|
1739
|
+
* Optional human-readable description used in distribution comment and
|
|
1740
|
+
* SSM parameter descriptions.
|
|
1741
|
+
*/
|
|
1742
|
+
readonly description?: string;
|
|
1702
1743
|
}
|
|
1703
1744
|
/**
|
|
1704
1745
|
* Static hosting: S3 bucket (private) + CloudFront distribution with Origin
|
|
1705
|
-
* Access Control (OAC)
|
|
1706
|
-
*
|
|
1707
|
-
*
|
|
1746
|
+
* Access Control (OAC) + Lambda@Edge viewer-request handler. Publishes
|
|
1747
|
+
* bucket ARN, distribution ARN, distribution domain, and distribution ID
|
|
1748
|
+
* via DiscoverableStringParameter for cross-stack lookup.
|
|
1708
1749
|
*/
|
|
1709
1750
|
declare class StaticHosting extends Construct {
|
|
1710
1751
|
/**
|
|
@@ -1715,8 +1756,18 @@ declare class StaticHosting extends Construct {
|
|
|
1715
1756
|
* SSM parameter name for the CloudFront distribution ARN.
|
|
1716
1757
|
*/
|
|
1717
1758
|
static readonly SSM_PARAM_NAME_DISTRIBUTION_ARN = "STATIC_HOSTING_DISTRIBUTION_ARN";
|
|
1759
|
+
/**
|
|
1760
|
+
* SSM parameter name for the CloudFront distribution domain
|
|
1761
|
+
* (e.g. dXXXXX.cloudfront.net).
|
|
1762
|
+
*/
|
|
1763
|
+
static readonly SSM_PARAM_NAME_DISTRIBUTION_DOMAIN = "STATIC_HOSTING_DISTRIBUTION_DOMAIN";
|
|
1764
|
+
/**
|
|
1765
|
+
* SSM parameter name for the CloudFront distribution ID.
|
|
1766
|
+
*/
|
|
1767
|
+
static readonly SSM_PARAM_NAME_DISTRIBUTION_ID = "STATIC_HOSTING_DISTRIBUTION_ID";
|
|
1718
1768
|
readonly bucket: IBucket;
|
|
1719
1769
|
readonly distribution: Distribution;
|
|
1770
|
+
readonly viewerRequestHandler: NodejsFunction;
|
|
1720
1771
|
constructor(scope: Construct, id: string, props?: StaticHostingProps);
|
|
1721
1772
|
}
|
|
1722
1773
|
|
|
@@ -1800,17 +1851,6 @@ declare class OpenHiAuthService extends OpenHiService {
|
|
|
1800
1851
|
* Returns an IUserPoolClient by looking up the Auth stack's User Pool Client ID from SSM.
|
|
1801
1852
|
*/
|
|
1802
1853
|
static userPoolClientFromConstruct(scope: Construct): IUserPoolClient;
|
|
1803
|
-
/**
|
|
1804
|
-
* Returns the dedicated fixture-seeder IUserPoolClient by looking up
|
|
1805
|
-
* its ID from SSM. Only non-prod auth stacks publish this parameter
|
|
1806
|
-
* (per the conditional in {@link createFixtureSeederClient}); calling
|
|
1807
|
-
* this against a prod-deployed stack will fail at lookup time.
|
|
1808
|
-
*
|
|
1809
|
-
* Consumed by `OpenHiRestApiService` (in non-prod) so the authorizer
|
|
1810
|
-
* accepts tokens issued by this client, and by the seed-fixtures CLI
|
|
1811
|
-
* to drive USER_PASSWORD_AUTH against this client's ID.
|
|
1812
|
-
*/
|
|
1813
|
-
static fixtureSeederClientFromConstruct(scope: Construct): IUserPoolClient;
|
|
1814
1854
|
/**
|
|
1815
1855
|
* Returns an IUserPoolDomain by looking up the Auth stack's User Pool Domain from SSM.
|
|
1816
1856
|
*/
|
|
@@ -1830,12 +1870,6 @@ declare class OpenHiAuthService extends OpenHiService {
|
|
|
1830
1870
|
readonly userPool: IUserPool;
|
|
1831
1871
|
readonly userPoolClient: IUserPoolClient;
|
|
1832
1872
|
readonly userPoolDomain: IUserPoolDomain;
|
|
1833
|
-
/**
|
|
1834
|
-
* Dedicated USER_PASSWORD_AUTH client for the seed-fixtures CLI.
|
|
1835
|
-
* Only created in non-prod environments (see
|
|
1836
|
-
* {@link createFixtureSeederClient}). `undefined` in prod.
|
|
1837
|
-
*/
|
|
1838
|
-
readonly fixtureSeederClient?: IUserPoolClient;
|
|
1839
1873
|
/**
|
|
1840
1874
|
* Cross-stack reference to the data store table. Cached so repeated
|
|
1841
1875
|
* lookups share a single CDK construct id ("dynamo-db-data-store") in
|
|
@@ -1914,18 +1948,6 @@ declare class OpenHiAuthService extends OpenHiService {
|
|
|
1914
1948
|
* Override to customize.
|
|
1915
1949
|
*/
|
|
1916
1950
|
protected createUserPoolClient(): IUserPoolClient;
|
|
1917
|
-
/**
|
|
1918
|
-
* Creates the dedicated USER_PASSWORD_AUTH app client for the
|
|
1919
|
-
* `@openhi/seed-fixtures` CLI, **only** in non-prod environments.
|
|
1920
|
-
* Returns `undefined` when this stack is being deployed to a prod
|
|
1921
|
-
* stage so the prod auth stack carries no fixture-seeder code path.
|
|
1922
|
-
*
|
|
1923
|
-
* Operator post-deploy: create a `fixture-seeder` Cognito user with
|
|
1924
|
-
* a service password (manually via console or scripted with
|
|
1925
|
-
* `aws cognito-idp admin-create-user`); the CLI consumes those creds
|
|
1926
|
-
* via env vars to drive `InitiateAuth`.
|
|
1927
|
-
*/
|
|
1928
|
-
protected createFixtureSeederClient(): IUserPoolClient | undefined;
|
|
1929
1951
|
/**
|
|
1930
1952
|
* Creates the User Pool Domain (Cognito hosted UI) and exports domain name to SSM.
|
|
1931
1953
|
* Look up via {@link OpenHiAuthService.userPoolDomainFromConstruct}.
|
|
@@ -2191,12 +2213,69 @@ declare class OpenHiRestApiService extends OpenHiService {
|
|
|
2191
2213
|
protected createRootHttpApi(domainName: DomainName): RootHttpApi;
|
|
2192
2214
|
}
|
|
2193
2215
|
|
|
2216
|
+
/**
|
|
2217
|
+
* @see sites/www-docs/content/packages/@openhi/constructs/workflows/control-plane/seed-demo-data/data-plane-fixtures.md
|
|
2218
|
+
*
|
|
2219
|
+
* Hand-authored FHIR data-plane fixture bodies the `seed-demo-data`
|
|
2220
|
+
* workflow upserts into the data store on every non-prod deploy.
|
|
2221
|
+
* Mirrors the OPS-009 v1 resource set: Patient, Practitioner,
|
|
2222
|
+
* Observation, Encounter, Account.
|
|
2223
|
+
*
|
|
2224
|
+
* Ids are deterministic — re-fires of the workflow upsert the same
|
|
2225
|
+
* records, satisfying the workflow's idempotency contract (no
|
|
2226
|
+
* duplicates) and letting the IAM grant in `seed-demo-data-lambda.ts`
|
|
2227
|
+
* enumerate exact-match `dynamodb:LeadingKeys` rather than a wildcard.
|
|
2228
|
+
*
|
|
2229
|
+
* The placeholder tenant carries no data-plane fixtures — only the
|
|
2230
|
+
* three real demo tenants (wound-care, primary-care, mixed) get
|
|
2231
|
+
* Patient/Practitioner/Observation/Encounter/Account records. The
|
|
2232
|
+
* placeholder tenant exists solely as a routing target for the
|
|
2233
|
+
* Cognito pre-token-generation fallback and never holds clinical
|
|
2234
|
+
* data.
|
|
2235
|
+
*/
|
|
2236
|
+
/**
|
|
2237
|
+
* Logical group of FHIR resources owned by a single (tenant, workspace)
|
|
2238
|
+
* pair. The workflow walks `DEMO_DATA_PLANE_FIXTURES` and writes every
|
|
2239
|
+
* entry against the matching workspace's `OpenHiContext`.
|
|
2240
|
+
*/
|
|
2241
|
+
interface DemoWorkspaceDataPlaneFixtures {
|
|
2242
|
+
readonly tenantId: string;
|
|
2243
|
+
readonly workspaceId: string;
|
|
2244
|
+
/**
|
|
2245
|
+
* Scenario slug used in the demo-URN identifier — mirrors the
|
|
2246
|
+
* `DemoTenantSpec.scenario` value for the parent tenant. For the
|
|
2247
|
+
* mixed tenant both workspaces share the `demo-mixed` scenario.
|
|
2248
|
+
*/
|
|
2249
|
+
readonly scenario: string;
|
|
2250
|
+
readonly patients: ReadonlyArray<Patient>;
|
|
2251
|
+
readonly practitioners: ReadonlyArray<Practitioner>;
|
|
2252
|
+
readonly observations: ReadonlyArray<Observation>;
|
|
2253
|
+
readonly encounters: ReadonlyArray<Encounter>;
|
|
2254
|
+
readonly accounts: ReadonlyArray<Account>;
|
|
2255
|
+
}
|
|
2256
|
+
/**
|
|
2257
|
+
* Per-workspace fixtures the data-plane phase writes on every fire.
|
|
2258
|
+
* The placeholder tenant carries no fixtures. The mixed tenant carries
|
|
2259
|
+
* one fixture group per workspace; the two single-workspace tenants
|
|
2260
|
+
* carry one each. Total: 4 fixture groups × ≈ 9 resources = ~36
|
|
2261
|
+
* data-plane records.
|
|
2262
|
+
*
|
|
2263
|
+
* Ids embed the tenant + workspace slug so they remain unambiguous
|
|
2264
|
+
* across the four workspaces (the FHIR resource id is the only thing
|
|
2265
|
+
* that survives into the partition key, so a duplicate id across
|
|
2266
|
+
* workspaces would still collide on read paths that scan-by-id).
|
|
2267
|
+
*/
|
|
2268
|
+
declare const DEMO_DATA_PLANE_FIXTURES: ReadonlyArray<DemoWorkspaceDataPlaneFixtures>;
|
|
2269
|
+
|
|
2194
2270
|
interface SeedDemoDataLambdaProps {
|
|
2195
2271
|
/**
|
|
2196
2272
|
* Data-store table the workflow upserts demo-data records into.
|
|
2197
|
-
* Wired via `DYNAMO_TABLE_NAME` env var; granted
|
|
2198
|
-
*
|
|
2199
|
-
*
|
|
2273
|
+
* Wired via `DYNAMO_TABLE_NAME` env var; granted `dynamodb:GetItem`
|
|
2274
|
+
* (pre-flight Role lookup) and `dynamodb:PutItem`/`dynamodb:UpdateItem`
|
|
2275
|
+
* (write phase). The grants are scoped to the table ARN only; the
|
|
2276
|
+
* handler itself is the scope guarantee for which records the
|
|
2277
|
+
* workflow touches (see the construct body for the previous
|
|
2278
|
+
* `LeadingKeys`-based grants and the reason they were dropped).
|
|
2200
2279
|
*/
|
|
2201
2280
|
readonly dataStoreTable: ITable;
|
|
2202
2281
|
/**
|
|
@@ -2465,6 +2544,141 @@ declare class OpenHiGraphqlService extends OpenHiService {
|
|
|
2465
2544
|
protected createRootGraphqlApi(): RootGraphqlApi;
|
|
2466
2545
|
}
|
|
2467
2546
|
|
|
2547
|
+
/**
|
|
2548
|
+
* @see sites/www-docs/content/packages/@openhi/constructs/services/open-hi-website-service.md
|
|
2549
|
+
*/
|
|
2550
|
+
interface OpenHiWebsiteServiceProps extends OpenHiServiceProps {
|
|
2551
|
+
/**
|
|
2552
|
+
* Sub-domain prefix attached to the child zone (e.g. "www" -> "www.<zone>").
|
|
2553
|
+
*
|
|
2554
|
+
* @default "www"
|
|
2555
|
+
*/
|
|
2556
|
+
readonly domainPrefix?: string;
|
|
2557
|
+
/**
|
|
2558
|
+
* Absolute path to the local directory whose contents should be uploaded
|
|
2559
|
+
* to the static-hosting bucket. Required.
|
|
2560
|
+
*/
|
|
2561
|
+
readonly contentSourceDirectory: string;
|
|
2562
|
+
/**
|
|
2563
|
+
* Path under the per-branch destination prefix to upload into. Should start
|
|
2564
|
+
* with a slash.
|
|
2565
|
+
*
|
|
2566
|
+
* @default "/"
|
|
2567
|
+
*/
|
|
2568
|
+
readonly contentDestinationDirectory?: string;
|
|
2569
|
+
/**
|
|
2570
|
+
* Force the `StaticHosting` infrastructure (bucket + distribution +
|
|
2571
|
+
* Lambda@Edge + DNS + 4 SSM params) to be created on this branch even when
|
|
2572
|
+
* it is not the release branch. Useful for one-off bootstraps and tests.
|
|
2573
|
+
*
|
|
2574
|
+
* When omitted, hosting infrastructure is created only on
|
|
2575
|
+
* `defaultReleaseBranch`. The `StaticContent` uploader is always
|
|
2576
|
+
* created so feature branches can publish their content under their own
|
|
2577
|
+
* sub-domain folder against the release-branch bucket.
|
|
2578
|
+
*
|
|
2579
|
+
* @default - true on release branch, false otherwise
|
|
2580
|
+
*/
|
|
2581
|
+
readonly createHostingInfrastructure?: boolean;
|
|
2582
|
+
}
|
|
2583
|
+
/**
|
|
2584
|
+
* SSM parameter name suffix for the website's full domain
|
|
2585
|
+
* (e.g. www.example.com).
|
|
2586
|
+
*/
|
|
2587
|
+
declare const SSM_PARAM_NAME_FULL_DOMAIN = "WEBSITE_FULL_DOMAIN";
|
|
2588
|
+
/**
|
|
2589
|
+
* Website service stack: composes StaticHosting (only on release-branch
|
|
2590
|
+
* deploys) and StaticContent (always) so feature branches can ship their
|
|
2591
|
+
* content to a per-branch sub-domain folder against the release-branch
|
|
2592
|
+
* bucket without provisioning duplicate infrastructure.
|
|
2593
|
+
*
|
|
2594
|
+
* Resources are created in protected methods; subclasses may override to
|
|
2595
|
+
* customize.
|
|
2596
|
+
*/
|
|
2597
|
+
declare class OpenHiWebsiteService extends OpenHiService {
|
|
2598
|
+
static readonly SERVICE_TYPE: "website";
|
|
2599
|
+
/**
|
|
2600
|
+
* Looks up the static-hosting bucket ARN published by the release-branch
|
|
2601
|
+
* deploy of this service.
|
|
2602
|
+
*/
|
|
2603
|
+
static bucketArnFromConstruct(scope: Construct): string;
|
|
2604
|
+
/**
|
|
2605
|
+
* Looks up the CloudFront distribution ARN published by the release-branch
|
|
2606
|
+
* deploy of this service.
|
|
2607
|
+
*/
|
|
2608
|
+
static distributionArnFromConstruct(scope: Construct): string;
|
|
2609
|
+
/**
|
|
2610
|
+
* Looks up the CloudFront distribution domain
|
|
2611
|
+
* (e.g. dXXXXX.cloudfront.net) published by the release-branch deploy.
|
|
2612
|
+
*/
|
|
2613
|
+
static distributionDomainFromConstruct(scope: Construct): string;
|
|
2614
|
+
/**
|
|
2615
|
+
* Looks up the CloudFront distribution ID published by the release-branch
|
|
2616
|
+
* deploy of this service.
|
|
2617
|
+
*/
|
|
2618
|
+
static distributionIdFromConstruct(scope: Construct): string;
|
|
2619
|
+
/**
|
|
2620
|
+
* Looks up the website's full domain (e.g. www.example.com) published by
|
|
2621
|
+
* the release-branch deploy of this service.
|
|
2622
|
+
*/
|
|
2623
|
+
static fullDomainFromConstruct(scope: Construct): string;
|
|
2624
|
+
get serviceType(): string;
|
|
2625
|
+
/** Override so this.props is typed with this service's options. */
|
|
2626
|
+
props: OpenHiWebsiteServiceProps;
|
|
2627
|
+
/**
|
|
2628
|
+
* Full domain served by this website (e.g. www.example.com). Derived from
|
|
2629
|
+
* `domainPrefix` and the child hosted zone name.
|
|
2630
|
+
*/
|
|
2631
|
+
readonly fullDomain: string;
|
|
2632
|
+
/**
|
|
2633
|
+
* The hosting construct, only created on release-branch deploys (or when
|
|
2634
|
+
* `createHostingInfrastructure` is true).
|
|
2635
|
+
*/
|
|
2636
|
+
readonly staticHosting?: StaticHosting;
|
|
2637
|
+
/**
|
|
2638
|
+
* The content uploader, always created.
|
|
2639
|
+
*/
|
|
2640
|
+
readonly staticContent: StaticContent;
|
|
2641
|
+
constructor(ohEnv: OpenHiEnvironment, props: OpenHiWebsiteServiceProps);
|
|
2642
|
+
/**
|
|
2643
|
+
* Validates that config required for the website stack is present.
|
|
2644
|
+
*/
|
|
2645
|
+
protected validateConfig(props: OpenHiWebsiteServiceProps): void;
|
|
2646
|
+
/**
|
|
2647
|
+
* Looks up the child hosted zone published by the Global service.
|
|
2648
|
+
* Override to customize.
|
|
2649
|
+
*/
|
|
2650
|
+
protected createHostedZone(): IHostedZone;
|
|
2651
|
+
/**
|
|
2652
|
+
* Returns the wildcard certificate looked up from the Global service.
|
|
2653
|
+
* Override to customize.
|
|
2654
|
+
*/
|
|
2655
|
+
protected createCertificate(): ICertificate;
|
|
2656
|
+
/**
|
|
2657
|
+
* Computes the full website domain from `domainPrefix` and the child
|
|
2658
|
+
* zone name.
|
|
2659
|
+
*/
|
|
2660
|
+
protected computeFullDomain(hostedZone: IHostedZone): string;
|
|
2661
|
+
/**
|
|
2662
|
+
* Creates the StaticHosting infrastructure (bucket + distribution +
|
|
2663
|
+
* Lambda@Edge + 4 SSM params + DNS).
|
|
2664
|
+
*/
|
|
2665
|
+
protected createStaticHosting(deps: {
|
|
2666
|
+
certificate: ICertificate;
|
|
2667
|
+
hostedZone: IHostedZone;
|
|
2668
|
+
}): StaticHosting;
|
|
2669
|
+
/**
|
|
2670
|
+
* Creates the SSM parameter that publishes the website's full domain.
|
|
2671
|
+
* Look up via {@link OpenHiWebsiteService.fullDomainFromConstruct}.
|
|
2672
|
+
*/
|
|
2673
|
+
protected createFullDomainParameter(): void;
|
|
2674
|
+
/**
|
|
2675
|
+
* Creates the StaticContent uploader. Always created so feature-branch
|
|
2676
|
+
* deploys can publish content to their own sub-domain folder against the
|
|
2677
|
+
* release-branch bucket.
|
|
2678
|
+
*/
|
|
2679
|
+
protected createStaticContent(): StaticContent;
|
|
2680
|
+
}
|
|
2681
|
+
|
|
2468
2682
|
interface OwningDeleteCascadeLambdasProps {
|
|
2469
2683
|
/** Data-store table the cascade reads (Query) and writes (DeleteItem / TransactWriteItems) against. */
|
|
2470
2684
|
readonly dataStoreTable: ITable;
|
|
@@ -2649,5 +2863,5 @@ declare class RenameCascadeWorkflow extends Construct {
|
|
|
2649
2863
|
constructor(scope: Construct, props: RenameCascadeWorkflowProps);
|
|
2650
2864
|
}
|
|
2651
2865
|
|
|
2652
|
-
export { BRIDGED_STATUSES, CLOUDFORMATION_EVENT_SOURCE, CLOUDFORMATION_STACK_STATUS_CHANGE_DETAIL_TYPE, CONTROL_EVENT_BUS_NAME_ENV_VAR, ChildHostedZone,
|
|
2653
|
-
export type { BridgedStatus, BuildParameterNameProps, CascadeChunkInput, CascadeFinalizeInput, CascadeFinalizeOutput, CascadeListInput, CascadeListOutput, ChildHostedZoneProps, CloudFormationStackStatusChangeDetail,
|
|
2866
|
+
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 };
|
|
2867
|
+
export type { BridgedStatus, BuildParameterNameProps, CascadeChunkInput, CascadeFinalizeInput, CascadeFinalizeOutput, CascadeListInput, CascadeListOutput, ChildHostedZoneProps, CloudFormationStackStatusChangeDetail, 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 };
|