@medplum/cdk 2.1.13 → 2.1.14
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/dist/cjs/index.cjs +2 -0
- package/dist/cjs/index.cjs.map +7 -0
- package/dist/cjs/package.json +1 -0
- package/dist/esm/index.mjs +2 -0
- package/dist/esm/index.mjs.map +7 -0
- package/dist/esm/package.json +1 -0
- package/dist/types/backend.d.ts +48 -0
- package/dist/types/backend.d.ts.map +1 -0
- package/dist/types/cloudtrail.d.ts +12 -0
- package/dist/types/cloudtrail.d.ts.map +1 -0
- package/dist/types/config.d.ts +18 -0
- package/dist/types/config.d.ts.map +1 -0
- package/dist/types/frontend.d.ts +21 -0
- package/dist/types/frontend.d.ts.map +1 -0
- package/dist/types/index.d.ts +8 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/oai.d.ts +19 -0
- package/dist/types/oai.d.ts.map +1 -0
- package/dist/types/stack.d.ts +25 -0
- package/dist/types/stack.d.ts.map +1 -0
- package/dist/types/storage.d.ts +18 -0
- package/dist/types/storage.d.ts.map +1 -0
- package/dist/types/waf.d.ts +3 -0
- package/dist/types/waf.d.ts.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"type": "module"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { MedplumInfraConfig } from '@medplum/core';
|
|
2
|
+
import { aws_ec2 as ec2, aws_ecs as ecs, aws_elasticache as elasticache, aws_elasticloadbalancingv2 as elbv2, aws_iam as iam, aws_logs as logs, aws_rds as rds, aws_route53 as route53, aws_secretsmanager as secretsmanager, aws_ssm as ssm, aws_wafv2 as wafv2 } from 'aws-cdk-lib';
|
|
3
|
+
import { Construct } from 'constructs';
|
|
4
|
+
/**
|
|
5
|
+
* Based on: https://github.com/aws-samples/http-api-aws-fargate-cdk/blob/master/cdk/singleAccount/lib/fargate-vpclink-stack.ts
|
|
6
|
+
*
|
|
7
|
+
* RDS config: https://docs.aws.amazon.com/cdk/api/latest/docs/aws-rds-readme.html
|
|
8
|
+
*/
|
|
9
|
+
export declare class BackEnd extends Construct {
|
|
10
|
+
vpc: ec2.IVpc;
|
|
11
|
+
botLambdaRole: iam.IRole;
|
|
12
|
+
rdsSecretsArn?: string;
|
|
13
|
+
rdsCluster?: rds.DatabaseCluster;
|
|
14
|
+
redisSubnetGroup: elasticache.CfnSubnetGroup;
|
|
15
|
+
redisSecurityGroup: ec2.SecurityGroup;
|
|
16
|
+
redisPassword: secretsmanager.ISecret;
|
|
17
|
+
redisCluster: elasticache.CfnReplicationGroup;
|
|
18
|
+
redisSecrets: secretsmanager.ISecret;
|
|
19
|
+
ecsCluster: ecs.Cluster;
|
|
20
|
+
taskRolePolicies: iam.PolicyDocument;
|
|
21
|
+
taskRole: iam.Role;
|
|
22
|
+
taskDefinition: ecs.FargateTaskDefinition;
|
|
23
|
+
logGroup: logs.ILogGroup;
|
|
24
|
+
logDriver: ecs.AwsLogDriver;
|
|
25
|
+
serviceContainer: ecs.ContainerDefinition;
|
|
26
|
+
fargateSecurityGroup: ec2.SecurityGroup;
|
|
27
|
+
fargateService: ecs.FargateService;
|
|
28
|
+
targetGroup: elbv2.ApplicationTargetGroup;
|
|
29
|
+
loadBalancer: elbv2.ApplicationLoadBalancer;
|
|
30
|
+
waf: wafv2.CfnWebACL;
|
|
31
|
+
wafAssociation: wafv2.CfnWebACLAssociation;
|
|
32
|
+
dnsRecord?: route53.ARecord;
|
|
33
|
+
regionParameter: ssm.StringParameter;
|
|
34
|
+
databaseSecretsParameter: ssm.StringParameter;
|
|
35
|
+
redisSecretsParameter: ssm.StringParameter;
|
|
36
|
+
botLambdaRoleParameter: ssm.StringParameter;
|
|
37
|
+
constructor(scope: Construct, config: MedplumInfraConfig);
|
|
38
|
+
/**
|
|
39
|
+
* Returns a container image for the given image name.
|
|
40
|
+
* If the image name is an ECR image, then the image will be pulled from ECR.
|
|
41
|
+
* Otherwise, the image name is assumed to be a Docker Hub image.
|
|
42
|
+
* @param config - The config settings (account number and region).
|
|
43
|
+
* @param imageName - The image name.
|
|
44
|
+
* @returns The container image.
|
|
45
|
+
*/
|
|
46
|
+
private getContainerImage;
|
|
47
|
+
}
|
|
48
|
+
//# sourceMappingURL=backend.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"backend.d.ts","sourceRoot":"","sources":["../../src/backend.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EAGL,OAAO,IAAI,GAAG,EACd,OAAO,IAAI,GAAG,EACd,eAAe,IAAI,WAAW,EAC9B,0BAA0B,IAAI,KAAK,EACnC,OAAO,IAAI,GAAG,EACd,QAAQ,IAAI,IAAI,EAChB,OAAO,IAAI,GAAG,EACd,WAAW,IAAI,OAAO,EAEtB,kBAAkB,IAAI,cAAc,EACpC,OAAO,IAAI,GAAG,EAEd,SAAS,IAAI,KAAK,EACnB,MAAM,aAAa,CAAC;AAGrB,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAGvC;;;;GAIG;AACH,qBAAa,OAAQ,SAAQ,SAAS;IACpC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;IACd,aAAa,EAAE,GAAG,CAAC,KAAK,CAAC;IACzB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,UAAU,CAAC,EAAE,GAAG,CAAC,eAAe,CAAC;IACjC,gBAAgB,EAAE,WAAW,CAAC,cAAc,CAAC;IAC7C,kBAAkB,EAAE,GAAG,CAAC,aAAa,CAAC;IACtC,aAAa,EAAE,cAAc,CAAC,OAAO,CAAC;IACtC,YAAY,EAAE,WAAW,CAAC,mBAAmB,CAAC;IAC9C,YAAY,EAAE,cAAc,CAAC,OAAO,CAAC;IACrC,UAAU,EAAE,GAAG,CAAC,OAAO,CAAC;IACxB,gBAAgB,EAAE,GAAG,CAAC,cAAc,CAAC;IACrC,QAAQ,EAAE,GAAG,CAAC,IAAI,CAAC;IACnB,cAAc,EAAE,GAAG,CAAC,qBAAqB,CAAC;IAC1C,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC;IACzB,SAAS,EAAE,GAAG,CAAC,YAAY,CAAC;IAC5B,gBAAgB,EAAE,GAAG,CAAC,mBAAmB,CAAC;IAC1C,oBAAoB,EAAE,GAAG,CAAC,aAAa,CAAC;IACxC,cAAc,EAAE,GAAG,CAAC,cAAc,CAAC;IACnC,WAAW,EAAE,KAAK,CAAC,sBAAsB,CAAC;IAC1C,YAAY,EAAE,KAAK,CAAC,uBAAuB,CAAC;IAC5C,GAAG,EAAE,KAAK,CAAC,SAAS,CAAC;IACrB,cAAc,EAAE,KAAK,CAAC,oBAAoB,CAAC;IAC3C,SAAS,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC;IAC5B,eAAe,EAAE,GAAG,CAAC,eAAe,CAAC;IACrC,wBAAwB,EAAE,GAAG,CAAC,eAAe,CAAC;IAC9C,qBAAqB,EAAE,GAAG,CAAC,eAAe,CAAC;IAC3C,sBAAsB,EAAE,GAAG,CAAC,eAAe,CAAC;gBAEhC,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,kBAAkB;IAmZxD;;;;;;;OAOG;IACH,OAAO,CAAC,iBAAiB;CAqB1B"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { MedplumInfraConfig } from '@medplum/core';
|
|
2
|
+
import { aws_cloudtrail as cloudtrail, aws_logs as logs, aws_sns as sns } from 'aws-cdk-lib';
|
|
3
|
+
import { Construct } from 'constructs';
|
|
4
|
+
export declare class CloudTrailAlarms extends Construct {
|
|
5
|
+
config: MedplumInfraConfig;
|
|
6
|
+
logGroup?: logs.ILogGroup;
|
|
7
|
+
cloudTrail?: cloudtrail.Trail;
|
|
8
|
+
alarmTopic?: sns.ITopic;
|
|
9
|
+
constructor(scope: Construct, config: MedplumInfraConfig);
|
|
10
|
+
createMetricAlarm(name: string, filterPattern: string): void;
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=cloudtrail.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cloudtrail.d.ts","sourceRoot":"","sources":["../../src/cloudtrail.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EACL,cAAc,IAAI,UAAU,EAG5B,QAAQ,IAAI,IAAI,EAChB,OAAO,IAAI,GAAG,EACf,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAEvC,qBAAa,gBAAiB,SAAQ,SAAS;IAC7C,MAAM,EAAE,kBAAkB,CAAC;IAC3B,QAAQ,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC;IAC1B,UAAU,CAAC,EAAE,UAAU,CAAC,KAAK,CAAC;IAC9B,UAAU,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC;gBAEZ,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,kBAAkB;IA2FxD,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,IAAI;CA0B7D"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { ExternalSecret, ExternalSecretPrimitive, ExternalSecretPrimitiveType, MedplumInfraConfig, MedplumSourceInfraConfig } from '@medplum/core';
|
|
2
|
+
export declare class InfraConfigNormalizer {
|
|
3
|
+
private config;
|
|
4
|
+
private clients;
|
|
5
|
+
constructor(config: MedplumSourceInfraConfig);
|
|
6
|
+
fetchParameterStoreSecret(key: string): Promise<string>;
|
|
7
|
+
fetchExternalSecret(externalSecret: ExternalSecret): Promise<ExternalSecretPrimitive>;
|
|
8
|
+
normalizeInfraConfigArray(currentVal: any[]): Promise<ExternalSecretPrimitive[] | Record<string, any>[]>;
|
|
9
|
+
normalizeValueForKey(obj: Record<string, any>, key: string): Promise<void>;
|
|
10
|
+
normalizeObjectInInfraConfig(obj: Record<string, any>): Promise<Record<string, any>>;
|
|
11
|
+
normalizeConfig(): Promise<MedplumInfraConfig>;
|
|
12
|
+
}
|
|
13
|
+
export declare function normalizeFetchedValue(key: string, rawValue: ExternalSecretPrimitive, expectedType: ExternalSecretPrimitiveType): ExternalSecretPrimitive;
|
|
14
|
+
export declare function isExternalSecretLike(obj: Record<string, any>): obj is ExternalSecret;
|
|
15
|
+
export declare function isExternalSecret(obj: Record<string, any>): obj is ExternalSecret;
|
|
16
|
+
export declare function assertValidExternalSecret(obj: Record<string, any>): asserts obj is ExternalSecret;
|
|
17
|
+
export declare function normalizeInfraConfig(config: MedplumSourceInfraConfig): Promise<MedplumInfraConfig>;
|
|
18
|
+
//# sourceMappingURL=config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/config.ts"],"names":[],"mappings":"AACA,OAAO,EACL,cAAc,EACd,uBAAuB,EACvB,2BAA2B,EAC3B,kBAAkB,EAClB,wBAAwB,EAIzB,MAAM,eAAe,CAAC;AAKvB,qBAAa,qBAAqB;IAChC,OAAO,CAAC,MAAM,CAA2B;IACzC,OAAO,CAAC,OAAO,CAAqB;gBACxB,MAAM,EAAE,wBAAwB;IAYtC,yBAAyB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IA0BvD,mBAAmB,CAAC,cAAc,EAAE,cAAc,GAAG,OAAO,CAAC,uBAAuB,CAAC;IAiBrF,yBAAyB,CAAC,UAAU,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,uBAAuB,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,CAAC;IA0BxG,oBAAoB,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAqB1E,4BAA4B,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IASpF,eAAe,IAAI,OAAO,CAAC,kBAAkB,CAAC;CAGrD;AAED,wBAAgB,qBAAqB,CACnC,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,uBAAuB,EACjC,YAAY,EAAE,2BAA2B,GACxC,uBAAuB,CAiCzB;AAED,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG,IAAI,cAAc,CAOpF;AAED,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG,IAAI,cAAc,CAOhF;AAED,wBAAgB,yBAAyB,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,OAAO,CAAC,GAAG,IAAI,cAAc,CAMjG;AAED,wBAAsB,oBAAoB,CAAC,MAAM,EAAE,wBAAwB,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAExG"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { MedplumInfraConfig } from '@medplum/core';
|
|
2
|
+
import { aws_cloudfront as cloudfront, aws_iam as iam, aws_route53 as route53, aws_s3 as s3, aws_wafv2 as wafv2 } from 'aws-cdk-lib';
|
|
3
|
+
import { Construct } from 'constructs';
|
|
4
|
+
/**
|
|
5
|
+
* Static app infrastructure, which deploys app content to an S3 bucket.
|
|
6
|
+
*
|
|
7
|
+
* The app redirects from HTTP to HTTPS, using a CloudFront distribution,
|
|
8
|
+
* Route53 alias record, and ACM certificate.
|
|
9
|
+
*/
|
|
10
|
+
export declare class FrontEnd extends Construct {
|
|
11
|
+
appBucket: s3.IBucket;
|
|
12
|
+
responseHeadersPolicy?: cloudfront.IResponseHeadersPolicy;
|
|
13
|
+
waf?: wafv2.CfnWebACL;
|
|
14
|
+
apiOriginCachePolicy?: cloudfront.ICachePolicy;
|
|
15
|
+
originAccessIdentity?: cloudfront.OriginAccessIdentity;
|
|
16
|
+
originAccessPolicyStatement?: iam.PolicyStatement;
|
|
17
|
+
distribution?: cloudfront.IDistribution;
|
|
18
|
+
dnsRecord?: route53.IRecordSet;
|
|
19
|
+
constructor(parent: Construct, config: MedplumInfraConfig, region: string);
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=frontend.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"frontend.d.ts","sourceRoot":"","sources":["../../src/frontend.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EAEL,cAAc,IAAI,UAAU,EAE5B,OAAO,IAAI,GAAG,EAGd,WAAW,IAAI,OAAO,EACtB,MAAM,IAAI,EAAE,EAEZ,SAAS,IAAI,KAAK,EACnB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAIvC;;;;;GAKG;AACH,qBAAa,QAAS,SAAQ,SAAS;IACrC,SAAS,EAAE,EAAE,CAAC,OAAO,CAAC;IACtB,qBAAqB,CAAC,EAAE,UAAU,CAAC,sBAAsB,CAAC;IAC1D,GAAG,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACtB,oBAAoB,CAAC,EAAE,UAAU,CAAC,YAAY,CAAC;IAC/C,oBAAoB,CAAC,EAAE,UAAU,CAAC,oBAAoB,CAAC;IACvD,2BAA2B,CAAC,EAAE,GAAG,CAAC,eAAe,CAAC;IAClD,YAAY,CAAC,EAAE,UAAU,CAAC,aAAa,CAAC;IACxC,SAAS,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC;gBAEnB,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,kBAAkB,EAAE,MAAM,EAAE,MAAM;CA0J1E"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export * from './backend';
|
|
2
|
+
export * from './cloudtrail';
|
|
3
|
+
export * from './frontend';
|
|
4
|
+
export * from './stack';
|
|
5
|
+
export * from './storage';
|
|
6
|
+
export * from './waf';
|
|
7
|
+
export declare function main(context?: Record<string, string>): void;
|
|
8
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAOA,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,SAAS,CAAC;AACxB,cAAc,WAAW,CAAC;AAC1B,cAAc,OAAO,CAAC;AAEtB,wBAAgB,IAAI,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAuB3D"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { aws_cloudfront as cloudfront, aws_iam as iam, aws_s3 as s3 } from 'aws-cdk-lib';
|
|
2
|
+
/**
|
|
3
|
+
* Grants S3 bucket read access to the CloudFront Origin Access Identity (OAI).
|
|
4
|
+
*
|
|
5
|
+
* Under normal circumstances, where CDK creates both the S3 bucket and the OAI,
|
|
6
|
+
* you can achieve this same behavior by simply calling:
|
|
7
|
+
*
|
|
8
|
+
* bucket.grantRead(identity);
|
|
9
|
+
*
|
|
10
|
+
* However, if importing an S3 bucket via `s3.Bucket.fromBucketAttributes()`, that does not work.
|
|
11
|
+
*
|
|
12
|
+
* See: https://stackoverflow.com/a/60917015
|
|
13
|
+
*
|
|
14
|
+
* @param bucket - The S3 bucket.
|
|
15
|
+
* @param identity - The CloudFront Origin Access Identity.
|
|
16
|
+
* @returns The policy statement.
|
|
17
|
+
*/
|
|
18
|
+
export declare function grantBucketAccessToOriginAccessIdentity(bucket: s3.IBucket, identity: cloudfront.OriginAccessIdentity): iam.PolicyStatement;
|
|
19
|
+
//# sourceMappingURL=oai.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"oai.d.ts","sourceRoot":"","sources":["../../src/oai.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,IAAI,UAAU,EAAE,OAAO,IAAI,GAAG,EAAE,MAAM,IAAI,EAAE,EAAE,MAAM,aAAa,CAAC;AAEzF;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,uCAAuC,CACrD,MAAM,EAAE,EAAE,CAAC,OAAO,EAClB,QAAQ,EAAE,UAAU,CAAC,oBAAoB,GACxC,GAAG,CAAC,eAAe,CAUrB"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { MedplumInfraConfig } from '@medplum/core';
|
|
2
|
+
import { App, Stack } from 'aws-cdk-lib';
|
|
3
|
+
import { BackEnd } from './backend';
|
|
4
|
+
import { CloudTrailAlarms } from './cloudtrail';
|
|
5
|
+
import { FrontEnd } from './frontend';
|
|
6
|
+
import { Storage } from './storage';
|
|
7
|
+
export declare class MedplumStack {
|
|
8
|
+
primaryStack: MedplumPrimaryStack;
|
|
9
|
+
globalStack?: MedplumGlobalStack;
|
|
10
|
+
constructor(scope: App, config: MedplumInfraConfig);
|
|
11
|
+
}
|
|
12
|
+
export declare class MedplumPrimaryStack extends Stack {
|
|
13
|
+
backEnd: BackEnd;
|
|
14
|
+
frontEnd: FrontEnd;
|
|
15
|
+
storage: Storage;
|
|
16
|
+
cloudTrail: CloudTrailAlarms;
|
|
17
|
+
constructor(scope: App, config: MedplumInfraConfig);
|
|
18
|
+
}
|
|
19
|
+
export declare class MedplumGlobalStack extends Stack {
|
|
20
|
+
frontEnd: FrontEnd;
|
|
21
|
+
storage: Storage;
|
|
22
|
+
cloudTrail: CloudTrailAlarms;
|
|
23
|
+
constructor(scope: App, config: MedplumInfraConfig);
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=stack.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stack.d.ts","sourceRoot":"","sources":["../../src/stack.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EAAE,GAAG,EAAE,KAAK,EAAQ,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,qBAAa,YAAY;IACvB,YAAY,EAAE,mBAAmB,CAAC;IAClC,WAAW,CAAC,EAAE,kBAAkB,CAAC;gBAErB,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,kBAAkB;CAWnD;AAED,qBAAa,mBAAoB,SAAQ,KAAK;IAC5C,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,QAAQ,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,gBAAgB,CAAC;gBAEjB,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,kBAAkB;CAcnD;AAED,qBAAa,kBAAmB,SAAQ,KAAK;IAC3C,QAAQ,EAAE,QAAQ,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,gBAAgB,CAAC;gBAEjB,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,kBAAkB;CAanD"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { MedplumInfraConfig } from '@medplum/core';
|
|
2
|
+
import { aws_cloudfront as cloudfront, aws_iam as iam, aws_route53 as route53, aws_s3 as s3, aws_wafv2 as wafv2 } from 'aws-cdk-lib';
|
|
3
|
+
import { Construct } from 'constructs';
|
|
4
|
+
/**
|
|
5
|
+
* Binary storage bucket and CloudFront distribution.
|
|
6
|
+
*/
|
|
7
|
+
export declare class Storage extends Construct {
|
|
8
|
+
storageBucket: s3.IBucket;
|
|
9
|
+
keyGroup?: cloudfront.IKeyGroup;
|
|
10
|
+
responseHeadersPolicy?: cloudfront.IResponseHeadersPolicy;
|
|
11
|
+
waf?: wafv2.CfnWebACL;
|
|
12
|
+
originAccessIdentity?: cloudfront.OriginAccessIdentity;
|
|
13
|
+
originAccessPolicyStatement?: iam.PolicyStatement;
|
|
14
|
+
distribution?: cloudfront.IDistribution;
|
|
15
|
+
dnsRecord?: route53.IRecordSet;
|
|
16
|
+
constructor(parent: Construct, config: MedplumInfraConfig, region: string);
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=storage.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../../src/storage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EAEL,cAAc,IAAI,UAAU,EAE5B,OAAO,IAAI,GAAG,EAEd,WAAW,IAAI,OAAO,EACtB,MAAM,IAAI,EAAE,EAEZ,SAAS,IAAI,KAAK,EACnB,MAAM,aAAa,CAAC;AAErB,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAIvC;;GAEG;AACH,qBAAa,OAAQ,SAAQ,SAAS;IACpC,aAAa,EAAE,EAAE,CAAC,OAAO,CAAC;IAC1B,QAAQ,CAAC,EAAE,UAAU,CAAC,SAAS,CAAC;IAChC,qBAAqB,CAAC,EAAE,UAAU,CAAC,sBAAsB,CAAC;IAC1D,GAAG,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACtB,oBAAoB,CAAC,EAAE,UAAU,CAAC,oBAAoB,CAAC;IACvD,2BAA2B,CAAC,EAAE,GAAG,CAAC,eAAe,CAAC;IAClD,YAAY,CAAC,EAAE,UAAU,CAAC,aAAa,CAAC;IACxC,SAAS,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC;gBAEnB,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,kBAAkB,EAAE,MAAM,EAAE,MAAM;CA8H1E"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"waf.d.ts","sourceRoot":"","sources":["../../src/waf.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,IAAI,KAAK,EAAE,MAAM,aAAa,CAAC;AAEjD,eAAO,MAAM,eAAe,EAAE,KAAK,CAAC,SAAS,CAAC,YAAY,EAqHzD,CAAC"}
|