@jaypie/constructs 1.1.41 → 1.1.43
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/JaypieLambda.d.ts +2 -2
- package/dist/cjs/helpers/{addDatadogLayer.d.ts → addDatadogLayers.d.ts} +1 -1
- package/dist/cjs/helpers/envHostname.d.ts +1 -1
- package/dist/cjs/helpers/index.d.ts +3 -2
- package/dist/cjs/helpers/resolveDatadogLayers.d.ts +7 -0
- package/dist/cjs/helpers/resolveHostedZone.d.ts +1 -1
- package/dist/cjs/helpers/resolveParamsAndSecrets.d.ts +10 -0
- package/dist/cjs/index.cjs +181 -193
- package/dist/cjs/index.cjs.map +1 -1
- package/dist/esm/JaypieLambda.d.ts +2 -2
- package/dist/esm/helpers/{addDatadogLayer.d.ts → addDatadogLayers.d.ts} +1 -1
- package/dist/esm/helpers/envHostname.d.ts +1 -1
- package/dist/esm/helpers/index.d.ts +3 -2
- package/dist/esm/helpers/resolveDatadogLayers.d.ts +7 -0
- package/dist/esm/helpers/resolveHostedZone.d.ts +1 -1
- package/dist/esm/helpers/resolveParamsAndSecrets.d.ts +10 -0
- package/dist/esm/index.js +68 -81
- package/dist/esm/index.js.map +1 -1
- package/package.json +4 -3
- package/dist/cjs/helpers/addParamsAndSecrets.d.ts +0 -11
- package/dist/esm/helpers/addParamsAndSecrets.d.ts +0 -11
|
@@ -38,8 +38,8 @@ export interface JaypieLambdaProps {
|
|
|
38
38
|
paramsAndSecretsOptions?: {
|
|
39
39
|
cacheSize?: number;
|
|
40
40
|
logLevel?: lambda.ParamsAndSecretsLogLevel;
|
|
41
|
-
parameterStoreTtl?:
|
|
42
|
-
secretsManagerTtl?:
|
|
41
|
+
parameterStoreTtl?: Duration;
|
|
42
|
+
secretsManagerTtl?: Duration;
|
|
43
43
|
};
|
|
44
44
|
profiling?: boolean;
|
|
45
45
|
profilingGroup?: import("aws-cdk-lib/aws-codeguruprofiler").IProfilingGroup;
|
|
@@ -2,4 +2,4 @@ import * as lambda from "aws-cdk-lib/aws-lambda";
|
|
|
2
2
|
export interface AddDatadogLayerOptions {
|
|
3
3
|
datadogApiKeyArn?: string;
|
|
4
4
|
}
|
|
5
|
-
export declare function
|
|
5
|
+
export declare function addDatadogLayers(lambdaFunction: lambda.Function, options?: AddDatadogLayerOptions): boolean;
|
|
@@ -1,9 +1,10 @@
|
|
|
1
|
-
export {
|
|
2
|
-
export { addParamsAndSecrets } from "./addParamsAndSecrets";
|
|
1
|
+
export { addDatadogLayers } from "./addDatadogLayers";
|
|
3
2
|
export { constructEnvName } from "./constructEnvName";
|
|
4
3
|
export { constructStackName } from "./constructStackName";
|
|
5
4
|
export { constructTagger } from "./constructTagger";
|
|
6
5
|
export { envHostname } from "./envHostname";
|
|
7
6
|
export { isEnv, isProductionEnv, isSandboxEnv } from "./isEnv";
|
|
8
7
|
export { jaypieLambdaEnv } from "./jaypieLambdaEnv";
|
|
8
|
+
export { resolveDatadogLayers } from "./resolveDatadogLayers";
|
|
9
9
|
export { resolveHostedZone } from "./resolveHostedZone";
|
|
10
|
+
export { resolveParamsAndSecrets } from "./resolveParamsAndSecrets";
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import * as lambda from "aws-cdk-lib/aws-lambda";
|
|
2
|
+
import { Construct } from "constructs";
|
|
3
|
+
export interface ResolveDatadogLayerOptions {
|
|
4
|
+
datadogApiKeyArn?: string;
|
|
5
|
+
uniqueId?: string;
|
|
6
|
+
}
|
|
7
|
+
export declare function resolveDatadogLayers(scope: Construct, options?: ResolveDatadogLayerOptions): lambda.ILayerVersion[] | undefined;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Construct } from "constructs";
|
|
2
2
|
import * as route53 from "aws-cdk-lib/aws-route53";
|
|
3
|
-
export declare function resolveHostedZone(scope: Construct, { name, zone, }
|
|
3
|
+
export declare function resolveHostedZone(scope: Construct, { name, zone, }?: {
|
|
4
4
|
name?: string;
|
|
5
5
|
zone?: string | route53.IHostedZone;
|
|
6
6
|
}): route53.IHostedZone;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { Duration } from "aws-cdk-lib";
|
|
2
|
+
import * as lambda from "aws-cdk-lib/aws-lambda";
|
|
3
|
+
export interface ResolveParamsAndSecretsOptions {
|
|
4
|
+
cacheSize?: number;
|
|
5
|
+
logLevel?: lambda.ParamsAndSecretsLogLevel;
|
|
6
|
+
parameterStoreTtl?: Duration;
|
|
7
|
+
secretsManagerTtl?: Duration;
|
|
8
|
+
}
|
|
9
|
+
export declare const resolveParamsAndSecrets: (paramsAndSecretsOptions?: lambda.ParamsAndSecretsLayerVersion | boolean | ResolveParamsAndSecretsOptions) => lambda.ParamsAndSecretsLayerVersion | undefined;
|
|
10
|
+
export default resolveParamsAndSecrets;
|
package/dist/esm/index.js
CHANGED
|
@@ -1,14 +1,15 @@
|
|
|
1
1
|
import { Construct } from 'constructs';
|
|
2
2
|
import * as cdk from 'aws-cdk-lib';
|
|
3
|
-
import {
|
|
3
|
+
import { Tags, Stack, Duration, RemovalPolicy, Fn, CfnOutput, SecretValue } from 'aws-cdk-lib';
|
|
4
4
|
import * as acm from 'aws-cdk-lib/aws-certificatemanager';
|
|
5
5
|
import * as apiGateway from 'aws-cdk-lib/aws-apigateway';
|
|
6
6
|
import * as route53 from 'aws-cdk-lib/aws-route53';
|
|
7
7
|
import { HostedZone } from 'aws-cdk-lib/aws-route53';
|
|
8
8
|
import * as route53Targets from 'aws-cdk-lib/aws-route53-targets';
|
|
9
9
|
import { CDK as CDK$2, ConfigurationError, mergeDomain, isValidSubdomain, isValidHostname } from '@jaypie/cdk';
|
|
10
|
-
import * as lambda from 'aws-cdk-lib/aws-lambda';
|
|
11
10
|
import * as secretsmanager from 'aws-cdk-lib/aws-secretsmanager';
|
|
11
|
+
import { DatadogLambda } from 'datadog-cdk-constructs-v2';
|
|
12
|
+
import * as lambda from 'aws-cdk-lib/aws-lambda';
|
|
12
13
|
import * as s3 from 'aws-cdk-lib/aws-s3';
|
|
13
14
|
import * as s3n from 'aws-cdk-lib/aws-s3-notifications';
|
|
14
15
|
import * as sqs from 'aws-cdk-lib/aws-sqs';
|
|
@@ -19,23 +20,14 @@ import * as sso from 'aws-cdk-lib/aws-sso';
|
|
|
19
20
|
import * as cloudfront from 'aws-cdk-lib/aws-cloudfront';
|
|
20
21
|
import * as origins from 'aws-cdk-lib/aws-cloudfront-origins';
|
|
21
22
|
|
|
22
|
-
function
|
|
23
|
-
const
|
|
24
|
-
// Resolve the Datadog API key ARN from multiple sources
|
|
23
|
+
function addDatadogLayers(lambdaFunction, options = {}) {
|
|
24
|
+
const datadogApiKeyArn = options?.datadogApiKeyArn;
|
|
25
25
|
const resolvedDatadogApiKeyArn = datadogApiKeyArn ||
|
|
26
26
|
process.env.DATADOG_API_KEY_ARN ||
|
|
27
27
|
process.env.CDK_ENV_DATADOG_API_KEY_ARN;
|
|
28
|
-
// Return false if no API key is found
|
|
29
28
|
if (!resolvedDatadogApiKeyArn) {
|
|
30
29
|
return false;
|
|
31
30
|
}
|
|
32
|
-
const stack = Stack.of(lambdaFunction);
|
|
33
|
-
// Create Datadog Node.js layer
|
|
34
|
-
const datadogNodeLayer = lambda.LayerVersion.fromLayerVersionArn(stack, `DatadogNodeLayer-${lambdaFunction.node.id}`, `arn:aws:lambda:${stack.region}:464622532012:layer:Datadog-Node20-x:${CDK$2.DATADOG.LAYER.NODE}`);
|
|
35
|
-
// Create Datadog Extension layer
|
|
36
|
-
const datadogExtensionLayer = lambda.LayerVersion.fromLayerVersionArn(stack, `DatadogExtensionLayer-${lambdaFunction.node.id}`, `arn:aws:lambda:${stack.region}:464622532012:layer:Datadog-Extension:${CDK$2.DATADOG.LAYER.EXTENSION}`);
|
|
37
|
-
// Add layers to the lambda function
|
|
38
|
-
lambdaFunction.addLayers(datadogNodeLayer, datadogExtensionLayer);
|
|
39
31
|
// Define Datadog environment variables
|
|
40
32
|
const datadogEnvVars = {
|
|
41
33
|
DD_API_KEY_SECRET_ARN: resolvedDatadogApiKeyArn,
|
|
@@ -50,68 +42,21 @@ function addDatadogLayer(lambdaFunction, options = {}) {
|
|
|
50
42
|
};
|
|
51
43
|
// Add environment variables only if they don't already exist
|
|
52
44
|
Object.entries(datadogEnvVars).forEach(([key, value]) => {
|
|
53
|
-
|
|
54
|
-
lambdaFunction.addEnvironment(key, value);
|
|
55
|
-
}
|
|
45
|
+
lambdaFunction.addEnvironment(key, value);
|
|
56
46
|
});
|
|
57
|
-
|
|
58
|
-
const
|
|
59
|
-
|
|
47
|
+
const datadogApiKeySecret = secretsmanager.Secret.fromSecretNameV2(lambdaFunction.stack, "DatadogApiKey", resolvedDatadogApiKeyArn);
|
|
48
|
+
const datadogLambda = new DatadogLambda(lambdaFunction.stack, "DatadogLambda", {
|
|
49
|
+
apiKeySecret: datadogApiKeySecret, // apiKeySecret auto-grants secret access to the added lambdas
|
|
50
|
+
nodeLayerVersion: CDK$2.DATADOG.LAYER.NODE,
|
|
51
|
+
extensionLayerVersion: CDK$2.DATADOG.LAYER.EXTENSION,
|
|
52
|
+
env: process.env.PROJECT_ENV,
|
|
53
|
+
service: process.env.PROJECT_SERVICE,
|
|
54
|
+
version: process.env.PROJECT_VERSION,
|
|
55
|
+
});
|
|
56
|
+
datadogLambda.addLambdaFunctions([lambdaFunction]);
|
|
60
57
|
return true;
|
|
61
58
|
}
|
|
62
59
|
|
|
63
|
-
function addParamsAndSecrets(lambdaFunction, options = {}) {
|
|
64
|
-
const { paramsAndSecrets, paramsAndSecretsOptions } = options;
|
|
65
|
-
// Return false if explicitly disabled
|
|
66
|
-
if (paramsAndSecrets === false) {
|
|
67
|
-
return false;
|
|
68
|
-
}
|
|
69
|
-
const stack = Stack.of(lambdaFunction);
|
|
70
|
-
let resolvedLayer = undefined;
|
|
71
|
-
if (paramsAndSecrets instanceof lambda.ParamsAndSecretsLayerVersion) {
|
|
72
|
-
// For custom ParamsAndSecretsLayerVersion, we need to extract the ARN
|
|
73
|
-
// This is a workaround since ParamsAndSecretsLayerVersion doesn't implement ILayerVersion
|
|
74
|
-
const layerArn = `arn:aws:lambda:${stack.region}:017000801446:layer:AWSLambdaParametersAndSecrets:${lambda.ParamsAndSecretsVersions.V1_0_103}`;
|
|
75
|
-
resolvedLayer = lambda.LayerVersion.fromLayerVersionArn(stack, `ParamsAndSecretsLayer-${lambdaFunction.node.id}`, layerArn);
|
|
76
|
-
// Set environment variables for configuration
|
|
77
|
-
if (paramsAndSecretsOptions?.cacheSize) {
|
|
78
|
-
lambdaFunction.addEnvironment("PARAMETERS_SECRETS_EXTENSION_CACHE_SIZE", paramsAndSecretsOptions.cacheSize.toString());
|
|
79
|
-
}
|
|
80
|
-
if (paramsAndSecretsOptions?.logLevel) {
|
|
81
|
-
lambdaFunction.addEnvironment("PARAMETERS_SECRETS_EXTENSION_LOG_LEVEL", paramsAndSecretsOptions.logLevel);
|
|
82
|
-
}
|
|
83
|
-
if (paramsAndSecretsOptions?.parameterStoreTtl) {
|
|
84
|
-
lambdaFunction.addEnvironment("PARAMETERS_SECRETS_EXTENSION_PARAMETER_STORE_TTL", paramsAndSecretsOptions.parameterStoreTtl.toString());
|
|
85
|
-
}
|
|
86
|
-
if (paramsAndSecretsOptions?.secretsManagerTtl) {
|
|
87
|
-
lambdaFunction.addEnvironment("PARAMETERS_SECRETS_EXTENSION_SECRETS_MANAGER_TTL", paramsAndSecretsOptions.secretsManagerTtl.toString());
|
|
88
|
-
}
|
|
89
|
-
}
|
|
90
|
-
else {
|
|
91
|
-
// Create default ParamsAndSecrets layer using LayerVersion.fromLayerVersionArn
|
|
92
|
-
const layerArn = `arn:aws:lambda:${stack.region}:017000801446:layer:AWSLambdaParametersAndSecrets:${lambda.ParamsAndSecretsVersions.V1_0_103}`;
|
|
93
|
-
resolvedLayer = lambda.LayerVersion.fromLayerVersionArn(stack, `ParamsAndSecretsLayer-${lambdaFunction.node.id}`, layerArn);
|
|
94
|
-
// Set default environment variables
|
|
95
|
-
if (paramsAndSecretsOptions?.cacheSize) {
|
|
96
|
-
lambdaFunction.addEnvironment("PARAMETERS_SECRETS_EXTENSION_CACHE_SIZE", paramsAndSecretsOptions.cacheSize.toString());
|
|
97
|
-
}
|
|
98
|
-
const logLevel = paramsAndSecretsOptions?.logLevel || lambda.ParamsAndSecretsLogLevel.WARN;
|
|
99
|
-
lambdaFunction.addEnvironment("PARAMETERS_SECRETS_EXTENSION_LOG_LEVEL", logLevel);
|
|
100
|
-
if (paramsAndSecretsOptions?.parameterStoreTtl) {
|
|
101
|
-
lambdaFunction.addEnvironment("PARAMETERS_SECRETS_EXTENSION_PARAMETER_STORE_TTL", paramsAndSecretsOptions.parameterStoreTtl.toString());
|
|
102
|
-
}
|
|
103
|
-
if (paramsAndSecretsOptions?.secretsManagerTtl) {
|
|
104
|
-
lambdaFunction.addEnvironment("PARAMETERS_SECRETS_EXTENSION_SECRETS_MANAGER_TTL", paramsAndSecretsOptions.secretsManagerTtl.toString());
|
|
105
|
-
}
|
|
106
|
-
}
|
|
107
|
-
// Add the layer to the lambda function
|
|
108
|
-
if (resolvedLayer) {
|
|
109
|
-
lambdaFunction.addLayers(resolvedLayer);
|
|
110
|
-
return true;
|
|
111
|
-
}
|
|
112
|
-
return false;
|
|
113
|
-
}
|
|
114
|
-
|
|
115
60
|
function constructEnvName(name, opts) {
|
|
116
61
|
const env = opts?.env ?? process.env.PROJECT_ENV ?? "build";
|
|
117
62
|
const key = opts?.key ?? process.env.PROJECT_KEY ?? "project";
|
|
@@ -180,7 +125,7 @@ function constructTagger(construct, { name } = {}) {
|
|
|
180
125
|
return true;
|
|
181
126
|
}
|
|
182
127
|
|
|
183
|
-
function envHostname({ component, domain, env, subdomain, }) {
|
|
128
|
+
function envHostname({ component, domain, env, subdomain, } = {}) {
|
|
184
129
|
const resolvedDomain = domain || process.env.CDK_ENV_DOMAIN || process.env.CDK_ENV_HOSTED_ZONE;
|
|
185
130
|
if (!resolvedDomain) {
|
|
186
131
|
throw new ConfigurationError("No hostname `domain` provided. Set CDK_ENV_DOMAIN or CDK_ENV_HOSTED_ZONE to use environment domain");
|
|
@@ -270,7 +215,26 @@ function jaypieLambdaEnv(options = {}) {
|
|
|
270
215
|
return environment;
|
|
271
216
|
}
|
|
272
217
|
|
|
273
|
-
function
|
|
218
|
+
function resolveDatadogLayers(scope, options = {}) {
|
|
219
|
+
const { datadogApiKeyArn, uniqueId } = options;
|
|
220
|
+
let resolvedRegion = Stack.of(scope).region || "us-east-1";
|
|
221
|
+
// Resolve the Datadog API key ARN from multiple sources
|
|
222
|
+
const resolvedDatadogApiKeyArn = datadogApiKeyArn ||
|
|
223
|
+
process.env.DATADOG_API_KEY_ARN ||
|
|
224
|
+
process.env.CDK_ENV_DATADOG_API_KEY_ARN;
|
|
225
|
+
// Return null if no API key is found
|
|
226
|
+
if (!resolvedDatadogApiKeyArn) {
|
|
227
|
+
return undefined;
|
|
228
|
+
}
|
|
229
|
+
const layerIdSuffix = uniqueId || process.env.PROJECT_NONCE || Date.now().toString();
|
|
230
|
+
// Create Datadog Node.js layer
|
|
231
|
+
const datadogNodeLayer = lambda.LayerVersion.fromLayerVersionArn(scope, `DatadogNodeLayer-${layerIdSuffix}`, `arn:aws:lambda:${resolvedRegion}:464622532012:layer:Datadog-Node20-x:${CDK$2.DATADOG.LAYER.NODE}`);
|
|
232
|
+
// Create Datadog Extension layer
|
|
233
|
+
const datadogExtensionLayer = lambda.LayerVersion.fromLayerVersionArn(scope, `DatadogExtensionLayer-${layerIdSuffix}`, `arn:aws:lambda:${resolvedRegion}:464622532012:layer:Datadog-Extension:${CDK$2.DATADOG.LAYER.EXTENSION}`);
|
|
234
|
+
return [datadogNodeLayer, datadogExtensionLayer];
|
|
235
|
+
}
|
|
236
|
+
|
|
237
|
+
function resolveHostedZone(scope, { name = "HostedZone", zone = process.env.CDK_ENV_HOSTED_ZONE, } = {}) {
|
|
274
238
|
if (!zone) {
|
|
275
239
|
throw new ConfigurationError("No `zone` provided. Set CDK_ENV_HOSTED_ZONE to use environment zone");
|
|
276
240
|
}
|
|
@@ -282,6 +246,30 @@ function resolveHostedZone(scope, { name = "HostedZone", zone = process.env.CDK_
|
|
|
282
246
|
return zone;
|
|
283
247
|
}
|
|
284
248
|
|
|
249
|
+
const resolveParamsAndSecrets = (paramsAndSecretsOptions) => {
|
|
250
|
+
if (paramsAndSecretsOptions === false) {
|
|
251
|
+
return;
|
|
252
|
+
}
|
|
253
|
+
let resolvedParamsAndSecrets;
|
|
254
|
+
if (paramsAndSecretsOptions instanceof lambda.ParamsAndSecretsLayerVersion) {
|
|
255
|
+
resolvedParamsAndSecrets = paramsAndSecretsOptions;
|
|
256
|
+
}
|
|
257
|
+
else {
|
|
258
|
+
if (paramsAndSecretsOptions === true ||
|
|
259
|
+
paramsAndSecretsOptions === undefined) {
|
|
260
|
+
paramsAndSecretsOptions = {};
|
|
261
|
+
}
|
|
262
|
+
resolvedParamsAndSecrets = lambda.ParamsAndSecretsLayerVersion.fromVersion(lambda.ParamsAndSecretsVersions.V1_0_103, {
|
|
263
|
+
cacheSize: paramsAndSecretsOptions?.cacheSize,
|
|
264
|
+
logLevel: paramsAndSecretsOptions?.logLevel ||
|
|
265
|
+
lambda.ParamsAndSecretsLogLevel.WARN,
|
|
266
|
+
parameterStoreTtl: paramsAndSecretsOptions?.parameterStoreTtl,
|
|
267
|
+
secretsManagerTtl: paramsAndSecretsOptions?.secretsManagerTtl,
|
|
268
|
+
});
|
|
269
|
+
}
|
|
270
|
+
return resolvedParamsAndSecrets;
|
|
271
|
+
};
|
|
272
|
+
|
|
285
273
|
class JaypieApiGateway extends Construct {
|
|
286
274
|
constructor(scope, id, props) {
|
|
287
275
|
super(scope, id);
|
|
@@ -479,6 +467,10 @@ class JaypieLambda extends Construct {
|
|
|
479
467
|
}
|
|
480
468
|
return acc;
|
|
481
469
|
}, {});
|
|
470
|
+
// Add ParamsAndSecrets layer if configured
|
|
471
|
+
const resolvedParamsAndSecrets = paramsAndSecrets
|
|
472
|
+
? resolveParamsAndSecrets(paramsAndSecretsOptions)
|
|
473
|
+
: undefined;
|
|
482
474
|
// Create Lambda Function
|
|
483
475
|
this._lambda = new lambda.Function(this, "Function", {
|
|
484
476
|
allowAllOutbound,
|
|
@@ -506,6 +498,7 @@ class JaypieLambda extends Construct {
|
|
|
506
498
|
logRetentionRetryOptions,
|
|
507
499
|
maxEventAge,
|
|
508
500
|
memorySize,
|
|
501
|
+
paramsAndSecrets: resolvedParamsAndSecrets,
|
|
509
502
|
profiling,
|
|
510
503
|
profilingGroup,
|
|
511
504
|
reservedConcurrentExecutions,
|
|
@@ -526,13 +519,7 @@ class JaypieLambda extends Construct {
|
|
|
526
519
|
}
|
|
527
520
|
: undefined,
|
|
528
521
|
});
|
|
529
|
-
|
|
530
|
-
addParamsAndSecrets(this._lambda, {
|
|
531
|
-
paramsAndSecrets,
|
|
532
|
-
paramsAndSecretsOptions,
|
|
533
|
-
});
|
|
534
|
-
// Add Datadog layers and environment variables if configured
|
|
535
|
-
addDatadogLayer(this._lambda, { datadogApiKeyArn });
|
|
522
|
+
addDatadogLayers(this._lambda, { datadogApiKeyArn });
|
|
536
523
|
// Grant secret read permissions
|
|
537
524
|
Object.values(envSecrets).forEach((secret) => {
|
|
538
525
|
secret.grantRead(this._lambda);
|
|
@@ -1834,5 +1821,5 @@ class JaypieWebDeploymentBucket extends Construct {
|
|
|
1834
1821
|
}
|
|
1835
1822
|
}
|
|
1836
1823
|
|
|
1837
|
-
export { JaypieApiGateway, JaypieAppStack, JaypieBucketQueuedLambda, JaypieDatadogSecret, JaypieEnvSecret, JaypieExpressLambda, JaypieHostedZone, JaypieInfrastructureStack, JaypieLambda, JaypieMongoDbSecret, JaypieOpenAiSecret, JaypieQueuedLambda, JaypieSsoGroups, JaypieStack, JaypieTraceSigningKeySecret, JaypieWebDeploymentBucket, PermissionSetType,
|
|
1824
|
+
export { JaypieApiGateway, JaypieAppStack, JaypieBucketQueuedLambda, JaypieDatadogSecret, JaypieEnvSecret, JaypieExpressLambda, JaypieHostedZone, JaypieInfrastructureStack, JaypieLambda, JaypieMongoDbSecret, JaypieOpenAiSecret, JaypieQueuedLambda, JaypieSsoGroups, JaypieStack, JaypieTraceSigningKeySecret, JaypieWebDeploymentBucket, PermissionSetType, addDatadogLayers, constructEnvName, constructStackName, constructTagger, envHostname, isEnv, isProductionEnv, isSandboxEnv, jaypieLambdaEnv, resolveDatadogLayers, resolveHostedZone, resolveParamsAndSecrets };
|
|
1838
1825
|
//# sourceMappingURL=index.js.map
|