diff --git a/lib/bootstrapper/runtime/Dockerfile b/lib/bootstrapper/runtime/Dockerfile index aaa58da..74831d0 100644 --- a/lib/bootstrapper/runtime/Dockerfile +++ b/lib/bootstrapper/runtime/Dockerfile @@ -1,11 +1,13 @@ -FROM lambci/lambda:build-python3.8 +ARG PYTHON_VERSION=3.11 + +FROM public.ecr.aws/lambda/python:${PYTHON_VERSION} ARG PGSTAC_VERSION RUN echo "Using PGSTAC Version ${PGSTAC_VERSION}" WORKDIR /tmp - -RUN pip install httpx psycopg[binary,pool] pypgstac==${PGSTAC_VERSION} -t /asset +RUN python -m pip install pip -U +RUN python -m pip install httpx psycopg["binary,pool"] pypgstac==${PGSTAC_VERSION} -t /asset COPY runtime/handler.py /asset/handler.py @@ -15,4 +17,4 @@ RUN rm -rf /asset/asyncio* # A command must be present avoid the following error on CDK deploy: # Error response from daemon: No command specified -CMD [ "echo", "ready to go!" ] \ No newline at end of file +CMD [ "echo", "ready to go!" ] diff --git a/lib/ingestor-api/index.ts b/lib/ingestor-api/index.ts index dc65f02..aa63303 100644 --- a/lib/ingestor-api/index.ts +++ b/lib/ingestor-api/index.ts @@ -45,7 +45,7 @@ export class StacIngestor extends Construct { ), ], }); - + const handler = this.buildApiLambda({ table: this.table, env, @@ -112,7 +112,7 @@ export class StacIngestor extends Construct { subnetSelection: ec2.SubnetSelection apiCode?: ApiCode; }): PythonFunction { - + const apiCode = props.apiCode || { entry: `${__dirname}/runtime`, index: "src/handler.py", @@ -121,7 +121,7 @@ export class StacIngestor extends Construct { const handler = new PythonFunction(this, "api-handler", { ...apiCode, - runtime: lambda.Runtime.PYTHON_3_9, + runtime: lambda.Runtime.PYTHON_3_11, timeout: Duration.seconds(30), environment: { DB_SECRET_ARN: props.dbSecret.secretArn, ...props.env }, vpc: props.dbVpc, @@ -166,7 +166,7 @@ export class StacIngestor extends Construct { const handler = new PythonFunction(this, "stac-ingestor", { ...ingestorCode, - runtime: lambda.Runtime.PYTHON_3_9, + runtime: lambda.Runtime.PYTHON_3_11, timeout: Duration.seconds(180), environment: { DB_SECRET_ARN: props.dbSecret.secretArn, ...props.env }, vpc: props.dbVpc, @@ -311,14 +311,14 @@ export interface StacIngestorProps { /** * Custom code for the ingestor api. * - * @default - default in the runtime folder. + * @default - default in the runtime folder. */ readonly apiCode?: ApiCode; /** * Custom code for the ingestor. * - * @default - default in the runtime folder. + * @default - default in the runtime folder. */ readonly ingestorCode?: IngestorCode; } @@ -326,17 +326,17 @@ export interface StacIngestorProps { export interface ApiCode { /** - * Path to the source of the function or the location for dependencies, for the api lambda. + * Path to the source of the function or the location for dependencies, for the api lambda. */ readonly entry: PythonFunctionProps["entry"]; /** - * Path to the index file containing the exported handler, relative to `api_lambda_entry`. + * Path to the index file containing the exported handler, relative to `api_lambda_entry`. */ readonly index: PythonFunctionProps["index"]; /** - * The name of the exported handler in the `api_lambda_index` file. + * The name of the exported handler in the `api_lambda_index` file. */ readonly handler: PythonFunctionProps["handler"]; @@ -345,12 +345,12 @@ export interface ApiCode { export interface IngestorCode { /** - * Path to the source of the function or the location for dependencies, for the ingestor lambda. + * Path to the source of the function or the location for dependencies, for the ingestor lambda. */ readonly entry: PythonFunctionProps["entry"]; /** - * Path to the index file containing the exported handler, relative to `ingestor_lambda_entry`. + * Path to the index file containing the exported handler, relative to `ingestor_lambda_entry`. */ readonly index: PythonFunctionProps["index"]; @@ -359,4 +359,4 @@ export interface IngestorCode { */ readonly handler: PythonFunctionProps["handler"]; -} \ No newline at end of file +} diff --git a/lib/stac-api/index.ts b/lib/stac-api/index.ts index a6e5212..7887610 100644 --- a/lib/stac-api/index.ts +++ b/lib/stac-api/index.ts @@ -40,7 +40,7 @@ export class PgStacApiLambda extends Construct { * package has a hash.) * anyio==3.6.1 --hash=sha256:cb29b9c70620506a9a8f87a309591713446953302d7d995344d0d7c6c0c9a7be * */ - runtime: lambda.Runtime.PYTHON_3_8, + runtime: lambda.Runtime.PYTHON_3_11, architecture: lambda.Architecture.X86_64, environment: { PGSTAC_SECRET_ARN: props.dbSecret.secretArn, @@ -58,7 +58,7 @@ export class PgStacApiLambda extends Construct { this.stacApiLambdaFunction.connections.allowTo(props.db, ec2.Port.tcp(5432)); const stacApi = new HttpApi(this, `${Stack.of(this).stackName}-stac-api`, { - defaultDomainMapping: props.stacApiDomainName ? { + defaultDomainMapping: props.stacApiDomainName ? { domainName: props.stacApiDomainName } : undefined, defaultIntegration: new HttpLambdaIntegration("integration", this.stacApiLambdaFunction), diff --git a/lib/tipg-api/index.ts b/lib/tipg-api/index.ts index c9f7fe7..f318b7c 100644 --- a/lib/tipg-api/index.ts +++ b/lib/tipg-api/index.ts @@ -30,7 +30,7 @@ import { this.tiPgLambdaFunction = new PythonFunction(this, "tipg-api", { ...apiCode, - runtime: lambda.Runtime.PYTHON_3_10, + runtime: lambda.Runtime.PYTHON_3_11, architecture: lambda.Architecture.X86_64, environment: { PGSTAC_SECRET_ARN: props.dbSecret.secretArn, @@ -49,7 +49,7 @@ import { this.tiPgLambdaFunction.connections.allowTo(props.db, ec2.Port.tcp(5432), "allow connections from tipg"); const tipgApi = new HttpApi(this, `${Stack.of(this).stackName}-tipg-api`, { - defaultDomainMapping: props.tipgApiDomainName ? { + defaultDomainMapping: props.tipgApiDomainName ? { domainName: props.tipgApiDomainName } : undefined, defaultIntegration: new HttpLambdaIntegration("integration", this.tiPgLambdaFunction), @@ -97,11 +97,11 @@ import { * Customized environment variables to send to titiler-pgstac runtime. */ readonly apiEnv?: Record; - + /** - * Custom Domain Name for tipg API. If defined, will create the - * domain name and integrate it with the tipg API. - * + * Custom Domain Name for tipg API. If defined, will create the + * domain name and integrate it with the tipg API. + * * @default - undefined */ readonly tipgApiDomainName?: IDomainName; diff --git a/lib/titiler-pgstac-api/index.ts b/lib/titiler-pgstac-api/index.ts index 0a09fb0..8b7a030 100644 --- a/lib/titiler-pgstac-api/index.ts +++ b/lib/titiler-pgstac-api/index.ts @@ -15,12 +15,12 @@ import { import { IDomainName, HttpApi } from "@aws-cdk/aws-apigatewayv2-alpha"; import { HttpLambdaIntegration } from "@aws-cdk/aws-apigatewayv2-integrations-alpha"; import { Construct } from "constructs"; - - // default settings that can be overridden by the user-provided environment. + + // default settings that can be overridden by the user-provided environment. let defaultTitilerPgstacEnv :{ [key: string]: any } = { "CPL_VSIL_CURL_ALLOWED_EXTENSIONS": ".tif,.TIF,.tiff", - "GDAL_CACHEMAX": "200", + "GDAL_CACHEMAX": "200", "GDAL_DISABLE_READDIR_ON_OPEN": "EMPTY_DIR", "GDAL_INGESTED_BYTES_AT_OPEN": "32768", "GDAL_HTTP_MERGE_CONSECUTIVE_RANGES": "YES", @@ -28,7 +28,7 @@ import { "GDAL_HTTP_VERSION": "2", "PYTHONWARNINGS": "ignore", "VSI_CACHE": "TRUE", - "VSI_CACHE_SIZE": "5000000", + "VSI_CACHE_SIZE": "5000000", "DB_MIN_CONN_SIZE": "1", "DB_MAX_CONN_SIZE": "1" } @@ -36,7 +36,7 @@ import { export class TitilerPgstacApiLambda extends Construct { readonly url: string; public titilerPgstacLambdaFunction: lambda.Function; - + constructor(scope: Construct, id: string, props: TitilerPgStacApiLambdaProps) { super(scope, id); @@ -45,7 +45,7 @@ import { const apiEnv = props.apiEnv ? { ...defaultTitilerPgstacEnv, ...props.apiEnv, "PGSTAC_SECRET_ARN": props.dbSecret.secretArn } : defaultTitilerPgstacEnv; const pythonLambdaOptions: TitilerPgstacPythonLambdaOptions = props.pythonLambdaOptions ?? { - runtime: lambda.Runtime.PYTHON_3_10, + runtime: lambda.Runtime.PYTHON_3_11, entry: `${__dirname}/runtime`, index: "src/handler.py", handler: "handler", @@ -62,7 +62,7 @@ import { logRetention: aws_logs.RetentionDays.ONE_WEEK, timeout: Duration.seconds(30) }) - + // grant access to buckets using addToRolePolicy if (props.buckets) { props.buckets.forEach(bucket => { @@ -72,43 +72,43 @@ import { })); }); } - + props.dbSecret.grantRead(this.titilerPgstacLambdaFunction); this.titilerPgstacLambdaFunction.connections.allowTo(props.db, ec2.Port.tcp(5432), "allow connections from titiler"); - + const stacApi = new HttpApi(this, `${Stack.of(this).stackName}-titiler-pgstac-api`, { - defaultDomainMapping: props.titilerPgstacApiDomainName ? { - domainName: props.titilerPgstacApiDomainName + defaultDomainMapping: props.titilerPgstacApiDomainName ? { + domainName: props.titilerPgstacApiDomainName } : undefined, defaultIntegration: new HttpLambdaIntegration("integration", this.titilerPgstacLambdaFunction), }); - + this.url = stacApi.url!; - + new CfnOutput(this, "titiler-pgstac-api-output", { exportName: `${Stack.of(this).stackName}-titiler-pgstac-url`, value: this.url, }); } } - + export interface TitilerPgStacApiLambdaProps { /** * VPC into which the lambda should be deployed. */ readonly vpc: ec2.IVpc; - + /** * RDS Instance with installed pgSTAC. */ readonly db: rds.IDatabaseInstance; - + /** * Subnet into which the lambda should be deployed. */ readonly subnetSelection: ec2.SubnetSelection; - + /** * Secret containing connection information for pgSTAC database. */ @@ -116,19 +116,19 @@ import { /** * Customized environment variables to send to titiler-pgstac runtime. These will be merged with `defaultTitilerPgstacEnv`. - * The database secret arn is automatically added to the environment variables at deployment. + * The database secret arn is automatically added to the environment variables at deployment. /*/ readonly apiEnv?: Record; /** - * list of buckets the lambda will be granted access to. + * list of buckets the lambda will be granted access to. */ readonly buckets?: string[]; /** * Custom Domain Name Options for Titiler Pgstac API, - * - * @default - undefined. + * + * @default - undefined. */ readonly titilerPgstacApiDomainName?: IDomainName; diff --git a/package-lock.json b/package-lock.json index 4af7193..a5642b4 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,18 +1,18 @@ { - "name": "cdk-pgstac", + "name": "eoapi-cdk", "version": "5.4.0", "lockfileVersion": 2, "requires": true, "packages": { "": { - "name": "cdk-pgstac", + "name": "eoapi-cdk", "version": "5.4.0", "license": "ISC", "dependencies": { - "@aws-cdk/aws-apigatewayv2-integrations-alpha": "^2.47.0-alpha.0", - "@aws-cdk/aws-lambda-python-alpha": "^2.47.0-alpha.0", - "aws-cdk-lib": "^2.75.0", - "constructs": "^10.1.113" + "@aws-cdk/aws-apigatewayv2-integrations-alpha": "^2.94.0-alpha.0", + "@aws-cdk/aws-lambda-python-alpha": "^2.94.0-alpha.0", + "aws-cdk-lib": "^2.94.0", + "constructs": "^10.2.70" }, "devDependencies": { "@qiwi/semantic-release-gh-pages-plugin": "^5.2.3", @@ -28,60 +28,60 @@ "semantic-release": "^19.0.5" }, "peerDependencies": { - "aws-cdk-lib": "^2.75.0", - "constructs": "^10.1.113" + "aws-cdk-lib": "^2.94.0", + "constructs": "^10.2.70" } }, "node_modules/@aws-cdk/asset-awscli-v1": { - "version": "2.2.192", - "resolved": "https://registry.npmjs.org/@aws-cdk/asset-awscli-v1/-/asset-awscli-v1-2.2.192.tgz", - "integrity": "sha512-kabo2WJR1lMh8ER2MYUdiN0inYIO8+K/ken6obNcdxIKf9d1llP8wlfU3JwNMv5IkNqoVWLPToZ8D2dCL2VAPQ==" + "version": "2.2.200", + "resolved": "https://registry.npmjs.org/@aws-cdk/asset-awscli-v1/-/asset-awscli-v1-2.2.200.tgz", + "integrity": "sha512-Kf5J8DfJK4wZFWT2Myca0lhwke7LwHcHBo+4TvWOGJrFVVKVuuiLCkzPPRBQQVDj0Vtn2NBokZAz8pfMpAqAKg==" }, "node_modules/@aws-cdk/asset-kubectl-v20": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/@aws-cdk/asset-kubectl-v20/-/asset-kubectl-v20-2.1.2.tgz", "integrity": "sha512-3M2tELJOxQv0apCIiuKQ4pAbncz9GuLwnKFqxifWfe77wuMxyTRPmxssYHs42ePqzap1LT6GDcPygGs+hHstLg==" }, - "node_modules/@aws-cdk/asset-node-proxy-agent-v5": { - "version": "2.0.165", - "resolved": "https://registry.npmjs.org/@aws-cdk/asset-node-proxy-agent-v5/-/asset-node-proxy-agent-v5-2.0.165.tgz", - "integrity": "sha512-bsyLQD/vqXQcc9RDmlM1XqiFNO/yewgVFXmkMcQkndJbmE/jgYkzewwYGrBlfL725hGLQipXq19+jwWwdsXQqg==" + "node_modules/@aws-cdk/asset-node-proxy-agent-v6": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@aws-cdk/asset-node-proxy-agent-v6/-/asset-node-proxy-agent-v6-2.0.1.tgz", + "integrity": "sha512-DDt4SLdLOwWCjGtltH4VCST7hpOI5DzieuhGZsBpZ+AgJdSI2GCjklCXm0GCTwJG/SolkL5dtQXyUKgg9luBDg==" }, "node_modules/@aws-cdk/aws-apigatewayv2-alpha": { - "version": "2.47.0-alpha.0", - "resolved": "https://registry.npmjs.org/@aws-cdk/aws-apigatewayv2-alpha/-/aws-apigatewayv2-alpha-2.47.0-alpha.0.tgz", - "integrity": "sha512-o8oM6xZoNNXIv6W9h9ieVF8NRuHMAvXQBlGXu0v689XOqTzQqXGcfvr8R08d/iFpXboC3LubloLBg0evTS0SOw==", + "version": "2.94.0-alpha.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-apigatewayv2-alpha/-/aws-apigatewayv2-alpha-2.94.0-alpha.0.tgz", + "integrity": "sha512-qBJCnQwOrqhWBDWPgkYq13KOsJShxMm28K1a5CcnS+DMKcZ1HK0TWIn67RMKNSChA2+cRFQ82qKE9yrxopl3WQ==", "peer": true, "engines": { "node": ">= 14.15.0" }, "peerDependencies": { - "aws-cdk-lib": "^2.47.0", + "aws-cdk-lib": "2.94.0", "constructs": "^10.0.0" } }, "node_modules/@aws-cdk/aws-apigatewayv2-integrations-alpha": { - "version": "2.47.0-alpha.0", - "resolved": "https://registry.npmjs.org/@aws-cdk/aws-apigatewayv2-integrations-alpha/-/aws-apigatewayv2-integrations-alpha-2.47.0-alpha.0.tgz", - "integrity": "sha512-PvFccVpQlpkxYIs9BlZyQC4pKpQjJ3lmXTTFCkl+8Bl7OK1tHQ9wfyK/LhPdcfwoKZi1QW/xzrTbd/dqVjRv2g==", + "version": "2.94.0-alpha.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-apigatewayv2-integrations-alpha/-/aws-apigatewayv2-integrations-alpha-2.94.0-alpha.0.tgz", + "integrity": "sha512-wqUV9R/DcN5Z8lRzFri8e+y2X01RItAs0+/lR0zlsWqBuV4TnYCl3rxsndfri1oRsPUj6cU0oIBs2icvEiSW2A==", "engines": { "node": ">= 14.15.0" }, "peerDependencies": { - "@aws-cdk/aws-apigatewayv2-alpha": "2.47.0-alpha.0", - "aws-cdk-lib": "^2.47.0", + "@aws-cdk/aws-apigatewayv2-alpha": "2.94.0-alpha.0", + "aws-cdk-lib": "2.94.0", "constructs": "^10.0.0" } }, "node_modules/@aws-cdk/aws-lambda-python-alpha": { - "version": "2.47.0-alpha.0", - "resolved": "https://registry.npmjs.org/@aws-cdk/aws-lambda-python-alpha/-/aws-lambda-python-alpha-2.47.0-alpha.0.tgz", - "integrity": "sha512-IJKppxHggLZeeC4XJM6RzwybFctrMS+e9XZcruI3Hf96DcBid/VFjbiyBgtEbbNdRD4yNx6mM0SsKzqzCV5hlQ==", + "version": "2.94.0-alpha.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-lambda-python-alpha/-/aws-lambda-python-alpha-2.94.0-alpha.0.tgz", + "integrity": "sha512-f0HgwpN1oyxFTjgj0FElmYfy9jjw+YogLiSYoPTvYhZgy624saL1uRe8HR9sd7yUqiwEx0z5KigvCRkwG/2QaA==", "engines": { "node": ">= 14.15.0" }, "peerDependencies": { - "aws-cdk-lib": "^2.47.0", + "aws-cdk-lib": "2.94.0", "constructs": "^10.0.0" } }, @@ -1038,9 +1038,9 @@ } }, "node_modules/aws-cdk-lib": { - "version": "2.84.0", - "resolved": "https://registry.npmjs.org/aws-cdk-lib/-/aws-cdk-lib-2.84.0.tgz", - "integrity": "sha512-4zLtCLCIs5Ia4WRGqiXRwxSkpGaNy3NxMexO9qYHSuIYpqf4sHObzZ0tDHZCFL5Wkui3sCu3OLQWrRHrr93HvA==", + "version": "2.94.0", + "resolved": "https://registry.npmjs.org/aws-cdk-lib/-/aws-cdk-lib-2.94.0.tgz", + "integrity": "sha512-pB/UzKeM+p/wY9WuFYkEewOFUh2r8qwaML63is4vUChXY2G2Bj3pGyfJ97Xir2Q5KIhgJPJz5igdouI4+F9A+g==", "bundleDependencies": [ "@balena/dockerignore", "case", @@ -1054,9 +1054,9 @@ "yaml" ], "dependencies": { - "@aws-cdk/asset-awscli-v1": "^2.2.177", - "@aws-cdk/asset-kubectl-v20": "^2.1.1", - "@aws-cdk/asset-node-proxy-agent-v5": "^2.0.148", + "@aws-cdk/asset-awscli-v1": "^2.2.200", + "@aws-cdk/asset-kubectl-v20": "^2.1.2", + "@aws-cdk/asset-node-proxy-agent-v6": "^2.0.1", "@balena/dockerignore": "^1.0.2", "case": "1.6.3", "fs-extra": "^11.1.1", @@ -1064,7 +1064,7 @@ "jsonschema": "^1.4.1", "minimatch": "^3.1.2", "punycode": "^2.3.0", - "semver": "^7.5.1", + "semver": "^7.5.4", "table": "^6.8.1", "yaml": "1.10.2" }, @@ -1280,7 +1280,7 @@ } }, "node_modules/aws-cdk-lib/node_modules/semver": { - "version": "7.5.1", + "version": "7.5.4", "inBundle": true, "license": "ISC", "dependencies": { @@ -1719,11 +1719,11 @@ } }, "node_modules/constructs": { - "version": "10.1.113", - "resolved": "https://registry.npmjs.org/constructs/-/constructs-10.1.113.tgz", - "integrity": "sha512-BhX7nHQjCWykIONFw6IlvCHizHB+ruz2Jncgmrosv8yGX8U1pF4SJTrSCqBdbA/aaXusNPpgFD2asRu3gOCjgA==", + "version": "10.2.70", + "resolved": "https://registry.npmjs.org/constructs/-/constructs-10.2.70.tgz", + "integrity": "sha512-z6zr1E8K/9tzJbCQzY0UGX0/oVKPFKu9C/mzEnghCG6TAJINnvlq0CMKm63XqqeMleadZYm5T3sZGJKcxJS/Pg==", "engines": { - "node": ">= 14.17.0" + "node": ">= 16.14.0" } }, "node_modules/conventional-changelog-angular": { @@ -2501,6 +2501,7 @@ "version": "10.1.0", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", + "dev": true, "license": "MIT", "dependencies": { "graceful-fs": "^4.2.0", @@ -2830,6 +2831,7 @@ "version": "4.2.10", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", + "dev": true, "license": "ISC" }, "node_modules/handlebars": { @@ -3017,6 +3019,7 @@ "version": "5.2.0", "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==", + "dev": true, "engines": { "node": ">= 4" } @@ -3657,6 +3660,7 @@ "version": "6.1.0", "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, "license": "MIT", "dependencies": { "universalify": "^2.0.0" @@ -7412,6 +7416,7 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "dev": true, "license": "MIT", "engines": { "node": ">=6" @@ -8722,6 +8727,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "dev": true, "license": "MIT", "engines": { "node": ">= 10.0.0" @@ -8914,37 +8920,37 @@ }, "dependencies": { "@aws-cdk/asset-awscli-v1": { - "version": "2.2.192", - "resolved": "https://registry.npmjs.org/@aws-cdk/asset-awscli-v1/-/asset-awscli-v1-2.2.192.tgz", - "integrity": "sha512-kabo2WJR1lMh8ER2MYUdiN0inYIO8+K/ken6obNcdxIKf9d1llP8wlfU3JwNMv5IkNqoVWLPToZ8D2dCL2VAPQ==" + "version": "2.2.200", + "resolved": "https://registry.npmjs.org/@aws-cdk/asset-awscli-v1/-/asset-awscli-v1-2.2.200.tgz", + "integrity": "sha512-Kf5J8DfJK4wZFWT2Myca0lhwke7LwHcHBo+4TvWOGJrFVVKVuuiLCkzPPRBQQVDj0Vtn2NBokZAz8pfMpAqAKg==" }, "@aws-cdk/asset-kubectl-v20": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/@aws-cdk/asset-kubectl-v20/-/asset-kubectl-v20-2.1.2.tgz", "integrity": "sha512-3M2tELJOxQv0apCIiuKQ4pAbncz9GuLwnKFqxifWfe77wuMxyTRPmxssYHs42ePqzap1LT6GDcPygGs+hHstLg==" }, - "@aws-cdk/asset-node-proxy-agent-v5": { - "version": "2.0.165", - "resolved": "https://registry.npmjs.org/@aws-cdk/asset-node-proxy-agent-v5/-/asset-node-proxy-agent-v5-2.0.165.tgz", - "integrity": "sha512-bsyLQD/vqXQcc9RDmlM1XqiFNO/yewgVFXmkMcQkndJbmE/jgYkzewwYGrBlfL725hGLQipXq19+jwWwdsXQqg==" + "@aws-cdk/asset-node-proxy-agent-v6": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@aws-cdk/asset-node-proxy-agent-v6/-/asset-node-proxy-agent-v6-2.0.1.tgz", + "integrity": "sha512-DDt4SLdLOwWCjGtltH4VCST7hpOI5DzieuhGZsBpZ+AgJdSI2GCjklCXm0GCTwJG/SolkL5dtQXyUKgg9luBDg==" }, "@aws-cdk/aws-apigatewayv2-alpha": { - "version": "2.47.0-alpha.0", - "resolved": "https://registry.npmjs.org/@aws-cdk/aws-apigatewayv2-alpha/-/aws-apigatewayv2-alpha-2.47.0-alpha.0.tgz", - "integrity": "sha512-o8oM6xZoNNXIv6W9h9ieVF8NRuHMAvXQBlGXu0v689XOqTzQqXGcfvr8R08d/iFpXboC3LubloLBg0evTS0SOw==", + "version": "2.94.0-alpha.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-apigatewayv2-alpha/-/aws-apigatewayv2-alpha-2.94.0-alpha.0.tgz", + "integrity": "sha512-qBJCnQwOrqhWBDWPgkYq13KOsJShxMm28K1a5CcnS+DMKcZ1HK0TWIn67RMKNSChA2+cRFQ82qKE9yrxopl3WQ==", "peer": true, "requires": {} }, "@aws-cdk/aws-apigatewayv2-integrations-alpha": { - "version": "2.47.0-alpha.0", - "resolved": "https://registry.npmjs.org/@aws-cdk/aws-apigatewayv2-integrations-alpha/-/aws-apigatewayv2-integrations-alpha-2.47.0-alpha.0.tgz", - "integrity": "sha512-PvFccVpQlpkxYIs9BlZyQC4pKpQjJ3lmXTTFCkl+8Bl7OK1tHQ9wfyK/LhPdcfwoKZi1QW/xzrTbd/dqVjRv2g==", + "version": "2.94.0-alpha.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-apigatewayv2-integrations-alpha/-/aws-apigatewayv2-integrations-alpha-2.94.0-alpha.0.tgz", + "integrity": "sha512-wqUV9R/DcN5Z8lRzFri8e+y2X01RItAs0+/lR0zlsWqBuV4TnYCl3rxsndfri1oRsPUj6cU0oIBs2icvEiSW2A==", "requires": {} }, "@aws-cdk/aws-lambda-python-alpha": { - "version": "2.47.0-alpha.0", - "resolved": "https://registry.npmjs.org/@aws-cdk/aws-lambda-python-alpha/-/aws-lambda-python-alpha-2.47.0-alpha.0.tgz", - "integrity": "sha512-IJKppxHggLZeeC4XJM6RzwybFctrMS+e9XZcruI3Hf96DcBid/VFjbiyBgtEbbNdRD4yNx6mM0SsKzqzCV5hlQ==", + "version": "2.94.0-alpha.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-lambda-python-alpha/-/aws-lambda-python-alpha-2.94.0-alpha.0.tgz", + "integrity": "sha512-f0HgwpN1oyxFTjgj0FElmYfy9jjw+YogLiSYoPTvYhZgy624saL1uRe8HR9sd7yUqiwEx0z5KigvCRkwG/2QaA==", "requires": {} }, "@babel/code-frame": { @@ -9717,13 +9723,13 @@ "dev": true }, "aws-cdk-lib": { - "version": "2.84.0", - "resolved": "https://registry.npmjs.org/aws-cdk-lib/-/aws-cdk-lib-2.84.0.tgz", - "integrity": "sha512-4zLtCLCIs5Ia4WRGqiXRwxSkpGaNy3NxMexO9qYHSuIYpqf4sHObzZ0tDHZCFL5Wkui3sCu3OLQWrRHrr93HvA==", + "version": "2.94.0", + "resolved": "https://registry.npmjs.org/aws-cdk-lib/-/aws-cdk-lib-2.94.0.tgz", + "integrity": "sha512-pB/UzKeM+p/wY9WuFYkEewOFUh2r8qwaML63is4vUChXY2G2Bj3pGyfJ97Xir2Q5KIhgJPJz5igdouI4+F9A+g==", "requires": { - "@aws-cdk/asset-awscli-v1": "^2.2.177", - "@aws-cdk/asset-kubectl-v20": "^2.1.1", - "@aws-cdk/asset-node-proxy-agent-v5": "^2.0.148", + "@aws-cdk/asset-awscli-v1": "^2.2.200", + "@aws-cdk/asset-kubectl-v20": "^2.1.2", + "@aws-cdk/asset-node-proxy-agent-v6": "^2.0.1", "@balena/dockerignore": "^1.0.2", "case": "1.6.3", "fs-extra": "^11.1.1", @@ -9731,7 +9737,7 @@ "jsonschema": "^1.4.1", "minimatch": "^3.1.2", "punycode": "^2.3.0", - "semver": "^7.5.1", + "semver": "^7.5.4", "table": "^6.8.1", "yaml": "1.10.2" }, @@ -9868,7 +9874,7 @@ "bundled": true }, "semver": { - "version": "7.5.1", + "version": "7.5.4", "bundled": true, "requires": { "lru-cache": "^6.0.0" @@ -10190,9 +10196,9 @@ } }, "constructs": { - "version": "10.1.113", - "resolved": "https://registry.npmjs.org/constructs/-/constructs-10.1.113.tgz", - "integrity": "sha512-BhX7nHQjCWykIONFw6IlvCHizHB+ruz2Jncgmrosv8yGX8U1pF4SJTrSCqBdbA/aaXusNPpgFD2asRu3gOCjgA==" + "version": "10.2.70", + "resolved": "https://registry.npmjs.org/constructs/-/constructs-10.2.70.tgz", + "integrity": "sha512-z6zr1E8K/9tzJbCQzY0UGX0/oVKPFKu9C/mzEnghCG6TAJINnvlq0CMKm63XqqeMleadZYm5T3sZGJKcxJS/Pg==" }, "conventional-changelog-angular": { "version": "5.0.13", @@ -10758,6 +10764,7 @@ "version": "10.1.0", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", + "dev": true, "requires": { "graceful-fs": "^4.2.0", "jsonfile": "^6.0.1", @@ -11008,7 +11015,8 @@ "graceful-fs": { "version": "4.2.10", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", - "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==" + "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", + "dev": true }, "handlebars": { "version": "4.7.7", @@ -11145,7 +11153,8 @@ "ignore": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", - "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==" + "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==", + "dev": true }, "ignore-by-default": { "version": "1.0.1", @@ -11619,6 +11628,7 @@ "version": "6.1.0", "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, "requires": { "graceful-fs": "^4.1.6", "universalify": "^2.0.0" @@ -14287,7 +14297,8 @@ "punycode": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==" + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "dev": true }, "q": { "version": "1.5.1", @@ -15276,7 +15287,8 @@ "universalify": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", - "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==" + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "dev": true }, "uri-js": { "version": "4.4.1", diff --git a/package.json b/package.json index 2fc7c64..2178e4b 100644 --- a/package.json +++ b/package.json @@ -50,14 +50,14 @@ "semantic-release": "^19.0.5" }, "dependencies": { - "@aws-cdk/aws-apigatewayv2-integrations-alpha": "^2.47.0-alpha.0", - "@aws-cdk/aws-lambda-python-alpha": "^2.47.0-alpha.0", - "aws-cdk-lib": "^2.75.0", - "constructs": "^10.1.113" + "@aws-cdk/aws-apigatewayv2-integrations-alpha": "^2.94.0-alpha.0", + "@aws-cdk/aws-lambda-python-alpha": "^2.94.0-alpha.0", + "aws-cdk-lib": "^2.94.0", + "constructs": "^10.2.70" }, "peerDependencies": { - "aws-cdk-lib": "^2.75.0", - "constructs": "^10.1.113" + "aws-cdk-lib": "^2.94.0", + "constructs": "^10.2.70" }, "release": { "branches": [