sst 3.0.0 → 3.0.1-2
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/package.json +8 -139
- package/src/index.ts +1 -0
- package/src/resource.ts +15 -0
- package/tsconfig.json +11 -0
- package/LICENSE +0 -21
- package/README.md +0 -43
- package/bootstrap.d.ts +0 -5
- package/bootstrap.js +0 -318
- package/bus.d.ts +0 -20
- package/bus.js +0 -52
- package/cache.d.ts +0 -4
- package/cache.js +0 -31
- package/cdk/deploy-stack.d.ts +0 -223
- package/cdk/deploy-stack.js +0 -562
- package/cdk/deployments-wrapper.d.ts +0 -3
- package/cdk/deployments-wrapper.js +0 -135
- package/cdk/deployments.d.ts +0 -327
- package/cdk/deployments.js +0 -360
- package/cdk/util.d.ts +0 -1
- package/cdk/util.js +0 -17
- package/cli/ci-info.d.ts +0 -4
- package/cli/ci-info.js +0 -8
- package/cli/colors.d.ts +0 -17
- package/cli/colors.js +0 -27
- package/cli/commands/bind.d.ts +0 -19
- package/cli/commands/bind.js +0 -360
- package/cli/commands/bootstrap.d.ts +0 -15
- package/cli/commands/bootstrap.js +0 -11
- package/cli/commands/build.d.ts +0 -17
- package/cli/commands/build.js +0 -25
- package/cli/commands/connect.d.ts +0 -17
- package/cli/commands/connect.js +0 -55
- package/cli/commands/console.d.ts +0 -15
- package/cli/commands/console.js +0 -22
- package/cli/commands/deploy.d.ts +0 -19
- package/cli/commands/deploy.js +0 -112
- package/cli/commands/dev.d.ts +0 -25
- package/cli/commands/dev.js +0 -351
- package/cli/commands/diff.d.ts +0 -19
- package/cli/commands/diff.js +0 -89
- package/cli/commands/plugins/kysely.d.ts +0 -1
- package/cli/commands/plugins/kysely.js +0 -87
- package/cli/commands/plugins/pothos.d.ts +0 -1
- package/cli/commands/plugins/pothos.js +0 -58
- package/cli/commands/plugins/warmer.d.ts +0 -1
- package/cli/commands/plugins/warmer.js +0 -33
- package/cli/commands/remove.d.ts +0 -19
- package/cli/commands/remove.js +0 -62
- package/cli/commands/secrets/get.d.ts +0 -19
- package/cli/commands/secrets/get.js +0 -27
- package/cli/commands/secrets/list.d.ts +0 -19
- package/cli/commands/secrets/list.js +0 -69
- package/cli/commands/secrets/load.d.ts +0 -17
- package/cli/commands/secrets/load.js +0 -47
- package/cli/commands/secrets/remove.d.ts +0 -19
- package/cli/commands/secrets/remove.js +0 -27
- package/cli/commands/secrets/secrets.d.ts +0 -2
- package/cli/commands/secrets/secrets.js +0 -16
- package/cli/commands/secrets/set.d.ts +0 -21
- package/cli/commands/secrets/set.js +0 -54
- package/cli/commands/telemetry.d.ts +0 -17
- package/cli/commands/telemetry.js +0 -24
- package/cli/commands/transform.d.ts +0 -17
- package/cli/commands/transform.js +0 -62
- package/cli/commands/types.d.ts +0 -15
- package/cli/commands/types.js +0 -25
- package/cli/commands/update.d.ts +0 -17
- package/cli/commands/update.js +0 -116
- package/cli/commands/version.d.ts +0 -15
- package/cli/commands/version.js +0 -15
- package/cli/local/router.d.ts +0 -44
- package/cli/local/router.js +0 -43
- package/cli/local/server.d.ts +0 -22
- package/cli/local/server.js +0 -319
- package/cli/program.d.ts +0 -19
- package/cli/program.js +0 -87
- package/cli/spinner.d.ts +0 -3
- package/cli/spinner.js +0 -14
- package/cli/sst.d.ts +0 -2
- package/cli/sst.js +0 -74
- package/cli/telemetry/environment.d.ts +0 -15
- package/cli/telemetry/environment.js +0 -27
- package/cli/telemetry/post-payload.d.ts +0 -1
- package/cli/telemetry/post-payload.js +0 -27
- package/cli/telemetry/project-id.d.ts +0 -2
- package/cli/telemetry/project-id.js +0 -47
- package/cli/telemetry/telemetry.d.ts +0 -19
- package/cli/telemetry/telemetry.js +0 -103
- package/cli/terminal.d.ts +0 -1
- package/cli/terminal.js +0 -8
- package/cli/ui/deploy.d.ts +0 -10
- package/cli/ui/deploy.js +0 -172
- package/cli/ui/functions.d.ts +0 -2
- package/cli/ui/functions.js +0 -130
- package/cli/ui/header.d.ts +0 -5
- package/cli/ui/header.js +0 -16
- package/cli/ui/stack.d.ts +0 -1
- package/cli/ui/stack.js +0 -6
- package/config.d.ts +0 -56
- package/config.js +0 -244
- package/constructs/Api.d.ts +0 -814
- package/constructs/Api.js +0 -743
- package/constructs/ApiGatewayV1Api.d.ts +0 -642
- package/constructs/ApiGatewayV1Api.js +0 -767
- package/constructs/App.d.ts +0 -168
- package/constructs/App.js +0 -493
- package/constructs/AppSyncApi.d.ts +0 -550
- package/constructs/AppSyncApi.js +0 -493
- package/constructs/AstroSite.d.ts +0 -39
- package/constructs/AstroSite.js +0 -78
- package/constructs/AstroSite.tsdoc.d.ts +0 -2
- package/constructs/AstroSite.tsdoc.js +0 -2
- package/constructs/Auth.d.ts +0 -100
- package/constructs/Auth.js +0 -177
- package/constructs/BaseSite.d.ts +0 -29
- package/constructs/BaseSite.js +0 -43
- package/constructs/Bucket.d.ts +0 -364
- package/constructs/Bucket.js +0 -327
- package/constructs/Cognito.d.ts +0 -232
- package/constructs/Cognito.js +0 -370
- package/constructs/Config.d.ts +0 -3
- package/constructs/Config.js +0 -3
- package/constructs/Construct.d.ts +0 -23
- package/constructs/Construct.js +0 -46
- package/constructs/Cron.d.ts +0 -164
- package/constructs/Cron.js +0 -114
- package/constructs/Distribution.d.ts +0 -143
- package/constructs/Distribution.js +0 -260
- package/constructs/EdgeFunction.d.ts +0 -49
- package/constructs/EdgeFunction.js +0 -442
- package/constructs/EventBus.d.ts +0 -444
- package/constructs/EventBus.js +0 -440
- package/constructs/Function.d.ts +0 -690
- package/constructs/Function.js +0 -583
- package/constructs/FunctionalStack.d.ts +0 -13
- package/constructs/FunctionalStack.js +0 -62
- package/constructs/Job.d.ts +0 -337
- package/constructs/Job.js +0 -404
- package/constructs/KinesisStream.d.ts +0 -224
- package/constructs/KinesisStream.js +0 -207
- package/constructs/Metadata.d.ts +0 -60
- package/constructs/Metadata.js +0 -1
- package/constructs/NextjsSite.d.ts +0 -104
- package/constructs/NextjsSite.js +0 -308
- package/constructs/Parameter.d.ts +0 -37
- package/constructs/Parameter.js +0 -53
- package/constructs/Queue.d.ts +0 -194
- package/constructs/Queue.js +0 -204
- package/constructs/RDS.d.ts +0 -221
- package/constructs/RDS.js +0 -363
- package/constructs/RemixSite.d.ts +0 -42
- package/constructs/RemixSite.js +0 -158
- package/constructs/RemixSite.tsdoc.d.ts +0 -2
- package/constructs/RemixSite.tsdoc.js +0 -2
- package/constructs/Script.d.ts +0 -160
- package/constructs/Script.js +0 -179
- package/constructs/Secret.d.ts +0 -30
- package/constructs/Secret.js +0 -59
- package/constructs/Service.d.ts +0 -487
- package/constructs/Service.js +0 -655
- package/constructs/SolidStartSite.d.ts +0 -37
- package/constructs/SolidStartSite.js +0 -66
- package/constructs/SolidStartSite.tsdoc.d.ts +0 -2
- package/constructs/SolidStartSite.tsdoc.js +0 -2
- package/constructs/SsrFunction.d.ts +0 -60
- package/constructs/SsrFunction.js +0 -226
- package/constructs/SsrSite.d.ts +0 -407
- package/constructs/SsrSite.js +0 -850
- package/constructs/Stack.d.ts +0 -127
- package/constructs/Stack.js +0 -243
- package/constructs/StaticSite.d.ts +0 -348
- package/constructs/StaticSite.js +0 -468
- package/constructs/SvelteKitSite.d.ts +0 -40
- package/constructs/SvelteKitSite.js +0 -106
- package/constructs/SvelteKitSite.tsdoc.d.ts +0 -2
- package/constructs/SvelteKitSite.tsdoc.js +0 -2
- package/constructs/Table.d.ts +0 -410
- package/constructs/Table.js +0 -425
- package/constructs/Topic.d.ts +0 -257
- package/constructs/Topic.js +0 -273
- package/constructs/WebSocketApi.d.ts +0 -355
- package/constructs/WebSocketApi.js +0 -404
- package/constructs/cdk/HttpAwsIntegration.d.ts +0 -32
- package/constructs/cdk/HttpAwsIntegration.js +0 -24
- package/constructs/cdk/certificate-base.d.ts +0 -18
- package/constructs/cdk/certificate-base.js +0 -26
- package/constructs/cdk/dns-validated-certificate.d.ts +0 -77
- package/constructs/cdk/dns-validated-certificate.js +0 -125
- package/constructs/cdk/website-redirect.d.ts +0 -53
- package/constructs/cdk/website-redirect.js +0 -77
- package/constructs/context.d.ts +0 -3
- package/constructs/context.js +0 -27
- package/constructs/deferred_task.d.ts +0 -6
- package/constructs/deferred_task.js +0 -45
- package/constructs/deprecated/NextjsSite.d.ts +0 -309
- package/constructs/deprecated/NextjsSite.js +0 -1074
- package/constructs/deprecated/cross-region-helper.d.ts +0 -7
- package/constructs/deprecated/cross-region-helper.js +0 -152
- package/constructs/deprecated/index.d.ts +0 -1
- package/constructs/deprecated/index.js +0 -1
- package/constructs/future/Auth.d.ts +0 -80
- package/constructs/future/Auth.js +0 -122
- package/constructs/future/index.d.ts +0 -1
- package/constructs/future/index.js +0 -1
- package/constructs/index.d.ts +0 -32
- package/constructs/index.js +0 -32
- package/constructs/static-file-list.d.ts +0 -1
- package/constructs/static-file-list.js +0 -51
- package/constructs/util/apiGatewayV1AccessLog.d.ts +0 -15
- package/constructs/util/apiGatewayV1AccessLog.js +0 -76
- package/constructs/util/apiGatewayV2AccessLog.d.ts +0 -10
- package/constructs/util/apiGatewayV2AccessLog.js +0 -107
- package/constructs/util/apiGatewayV2Cors.d.ts +0 -67
- package/constructs/util/apiGatewayV2Cors.js +0 -21
- package/constructs/util/apiGatewayV2Domain.d.ts +0 -47
- package/constructs/util/apiGatewayV2Domain.js +0 -208
- package/constructs/util/appSyncApiDomain.d.ts +0 -41
- package/constructs/util/appSyncApiDomain.js +0 -176
- package/constructs/util/builder.d.ts +0 -3
- package/constructs/util/builder.js +0 -9
- package/constructs/util/duration.d.ts +0 -3
- package/constructs/util/duration.js +0 -19
- package/constructs/util/functionBinding.d.ts +0 -31
- package/constructs/util/functionBinding.js +0 -104
- package/constructs/util/functionUrlCors.d.ts +0 -67
- package/constructs/util/functionUrlCors.js +0 -23
- package/constructs/util/permission.d.ts +0 -8
- package/constructs/util/permission.js +0 -228
- package/constructs/util/size.d.ts +0 -3
- package/constructs/util/size.js +0 -12
- package/constructs/util/warning.d.ts +0 -11
- package/constructs/util/warning.js +0 -21
- package/context/context.d.ts +0 -13
- package/context/context.js +0 -69
- package/context/context2.d.ts +0 -16
- package/context/context2.js +0 -108
- package/context/handler.d.ts +0 -25
- package/context/handler.js +0 -21
- package/context/index.d.ts +0 -2
- package/context/index.js +0 -2
- package/credentials.d.ts +0 -9
- package/credentials.js +0 -145
- package/error.d.ts +0 -6
- package/error.js +0 -10
- package/index.d.ts +0 -1
- package/index.js +0 -1
- package/iot.d.ts +0 -6
- package/iot.js +0 -163
- package/logger.d.ts +0 -3
- package/logger.js +0 -32
- package/node/actor/index.d.ts +0 -29
- package/node/actor/index.js +0 -17
- package/node/api/index.d.ts +0 -64
- package/node/api/index.js +0 -179
- package/node/auth/adapter/adapter.d.ts +0 -3
- package/node/auth/adapter/adapter.js +0 -3
- package/node/auth/adapter/facebook.d.ts +0 -2
- package/node/auth/adapter/facebook.js +0 -26
- package/node/auth/adapter/github.d.ts +0 -2
- package/node/auth/adapter/github.js +0 -21
- package/node/auth/adapter/google.d.ts +0 -9
- package/node/auth/adapter/google.js +0 -18
- package/node/auth/adapter/link.d.ts +0 -8
- package/node/auth/adapter/link.js +0 -39
- package/node/auth/adapter/oauth.d.ts +0 -25
- package/node/auth/adapter/oauth.js +0 -52
- package/node/auth/adapter/oidc.d.ts +0 -17
- package/node/auth/adapter/oidc.js +0 -50
- package/node/auth/adapter/twitch.d.ts +0 -2
- package/node/auth/adapter/twitch.js +0 -11
- package/node/auth/auth.d.ts +0 -24
- package/node/auth/auth.js +0 -74
- package/node/auth/index.d.ts +0 -13
- package/node/auth/index.js +0 -12
- package/node/auth/session.d.ts +0 -76
- package/node/auth/session.js +0 -121
- package/node/bucket/index.d.ts +0 -3
- package/node/bucket/index.js +0 -2
- package/node/config/index.d.ts +0 -13
- package/node/config/index.js +0 -22
- package/node/event-bus/index.d.ts +0 -51
- package/node/event-bus/index.js +0 -76
- package/node/function/index.d.ts +0 -3
- package/node/function/index.js +0 -3
- package/node/future/auth/adapter/adapter.d.ts +0 -10
- package/node/future/auth/adapter/adapter.js +0 -1
- package/node/future/auth/adapter/code.d.ts +0 -17
- package/node/future/auth/adapter/code.js +0 -68
- package/node/future/auth/adapter/facebook.d.ts +0 -16
- package/node/future/auth/adapter/facebook.js +0 -27
- package/node/future/auth/adapter/github.d.ts +0 -23
- package/node/future/auth/adapter/github.js +0 -23
- package/node/future/auth/adapter/google.d.ts +0 -28
- package/node/future/auth/adapter/google.js +0 -22
- package/node/future/auth/adapter/link.d.ts +0 -13
- package/node/future/auth/adapter/link.js +0 -47
- package/node/future/auth/adapter/microsoft.d.ts +0 -22
- package/node/future/auth/adapter/microsoft.js +0 -16
- package/node/future/auth/adapter/oauth.d.ts +0 -41
- package/node/future/auth/adapter/oauth.js +0 -67
- package/node/future/auth/adapter/oidc.d.ts +0 -30
- package/node/future/auth/adapter/oidc.js +0 -63
- package/node/future/auth/adapter/spotify.d.ts +0 -23
- package/node/future/auth/adapter/spotify.js +0 -22
- package/node/future/auth/encryption.d.ts +0 -2
- package/node/future/auth/encryption.js +0 -30
- package/node/future/auth/handler.d.ts +0 -46
- package/node/future/auth/handler.js +0 -280
- package/node/future/auth/index.d.ts +0 -17
- package/node/future/auth/index.js +0 -15
- package/node/future/auth/session.d.ts +0 -71
- package/node/future/auth/session.js +0 -146
- package/node/graphql/index.d.ts +0 -15
- package/node/graphql/index.js +0 -32
- package/node/job/index.d.ts +0 -37
- package/node/job/index.js +0 -64
- package/node/kinesis-stream/index.d.ts +0 -3
- package/node/kinesis-stream/index.js +0 -3
- package/node/queue/index.d.ts +0 -3
- package/node/queue/index.js +0 -2
- package/node/rds/index.d.ts +0 -3
- package/node/rds/index.js +0 -2
- package/node/service/index.d.ts +0 -3
- package/node/service/index.js +0 -4
- package/node/site/index.d.ts +0 -18
- package/node/site/index.js +0 -18
- package/node/table/index.d.ts +0 -3
- package/node/table/index.js +0 -4
- package/node/topic/index.d.ts +0 -3
- package/node/topic/index.js +0 -4
- package/node/util/index.d.ts +0 -2
- package/node/util/index.js +0 -196
- package/node/util/loader.d.ts +0 -2
- package/node/util/loader.js +0 -51
- package/node/websocket-api/index.d.ts +0 -23
- package/node/websocket-api/index.js +0 -48
- package/pothos.d.ts +0 -7
- package/pothos.js +0 -160
- package/project.d.ts +0 -75
- package/project.js +0 -188
- package/runtime/handlers/container.d.ts +0 -2
- package/runtime/handlers/container.js +0 -263
- package/runtime/handlers/dotnet.d.ts +0 -2
- package/runtime/handlers/dotnet.js +0 -115
- package/runtime/handlers/go.d.ts +0 -2
- package/runtime/handlers/go.js +0 -126
- package/runtime/handlers/java.d.ts +0 -2
- package/runtime/handlers/java.js +0 -103
- package/runtime/handlers/node.d.ts +0 -2
- package/runtime/handlers/node.js +0 -269
- package/runtime/handlers/python.d.ts +0 -2
- package/runtime/handlers/python.js +0 -141
- package/runtime/handlers/pythonBundling.d.ts +0 -82
- package/runtime/handlers/pythonBundling.js +0 -80
- package/runtime/handlers/rust.d.ts +0 -2
- package/runtime/handlers/rust.js +0 -110
- package/runtime/handlers.d.ts +0 -74
- package/runtime/handlers.js +0 -151
- package/runtime/iot.d.ts +0 -1
- package/runtime/iot.js +0 -17
- package/runtime/runtime.d.ts +0 -32
- package/runtime/runtime.js +0 -1
- package/runtime/server.d.ts +0 -6
- package/runtime/server.js +0 -150
- package/runtime/workers.d.ts +0 -37
- package/runtime/workers.js +0 -85
- package/stacks/app-metadata.d.ts +0 -7
- package/stacks/app-metadata.js +0 -75
- package/stacks/assembly.d.ts +0 -1
- package/stacks/assembly.js +0 -4
- package/stacks/build.d.ts +0 -9
- package/stacks/build.js +0 -110
- package/stacks/deploy.d.ts +0 -9
- package/stacks/deploy.js +0 -240
- package/stacks/diff.d.ts +0 -8
- package/stacks/diff.js +0 -62
- package/stacks/index.d.ts +0 -10
- package/stacks/index.js +0 -10
- package/stacks/metadata.d.ts +0 -11
- package/stacks/metadata.js +0 -83
- package/stacks/monitor.d.ts +0 -32
- package/stacks/monitor.js +0 -151
- package/stacks/remove.d.ts +0 -8
- package/stacks/remove.js +0 -76
- package/stacks/synth.d.ts +0 -12
- package/stacks/synth.js +0 -94
- package/support/base-site-archiver.mjs +0 -99
- package/support/base-site-custom-resource/s3-handler.py +0 -195
- package/support/base-site-custom-resource/s3-upload.py +0 -89
- package/support/bootstrap-metadata-function/index.mjs +0 -58011
- package/support/bridge/Dockerfile +0 -3
- package/support/bridge/bridge.mjs +0 -146
- package/support/certificate-requestor/index.js +0 -549
- package/support/custom-resources/index.mjs +0 -180627
- package/support/dotnet31-bootstrap/Program.cs +0 -17
- package/support/dotnet31-bootstrap/dotnet-bootstrap.csproj +0 -12
- package/support/dotnet31-bootstrap/release/Amazon.Lambda.Core.dll +0 -0
- package/support/dotnet31-bootstrap/release/Amazon.Lambda.RuntimeSupport.dll +0 -0
- package/support/dotnet31-bootstrap/release/System.Runtime.CompilerServices.Unsafe.dll +0 -0
- package/support/dotnet31-bootstrap/release/System.Text.Encodings.Web.dll +0 -0
- package/support/dotnet31-bootstrap/release/System.Text.Json.dll +0 -0
- package/support/dotnet31-bootstrap/release/dotnet-bootstrap +0 -0
- package/support/dotnet31-bootstrap/release/dotnet-bootstrap.deps.json +0 -230
- package/support/dotnet31-bootstrap/release/dotnet-bootstrap.dll +0 -0
- package/support/dotnet31-bootstrap/release/dotnet-bootstrap.pdb +0 -0
- package/support/dotnet31-bootstrap/release/dotnet-bootstrap.runtimeconfig.json +0 -9
- package/support/dotnet6-bootstrap/Program.cs +0 -17
- package/support/dotnet6-bootstrap/dotnet-bootstrap.csproj +0 -12
- package/support/dotnet6-bootstrap/release/Amazon.Lambda.Core.dll +0 -0
- package/support/dotnet6-bootstrap/release/Amazon.Lambda.RuntimeSupport.dll +0 -0
- package/support/dotnet6-bootstrap/release/dotnet-bootstrap +0 -0
- package/support/dotnet6-bootstrap/release/dotnet-bootstrap.deps.json +0 -59
- package/support/dotnet6-bootstrap/release/dotnet-bootstrap.dll +0 -0
- package/support/dotnet6-bootstrap/release/dotnet-bootstrap.pdb +0 -0
- package/support/dotnet6-bootstrap/release/dotnet-bootstrap.runtimeconfig.json +0 -12
- package/support/edge-function/edge-lambda-version.mjs +0 -3
- package/support/edge-function/edge-lambda.mjs +0 -3
- package/support/edge-function/s3-bucket.mjs +0 -3
- package/support/event-bus-retrier/index.mjs +0 -75
- package/support/java-runtime/install.sh +0 -25
- package/support/java-runtime/pom.xml +0 -39
- package/support/java-runtime/release/aws-lambda-java-core-1.2.0.jar +0 -0
- package/support/java-runtime/release/aws-lambda-java-runtime-interface-client-1.1.0.jar +0 -0
- package/support/java-runtime/release/aws-lambda-java-serialization-1.0.0.jar +0 -0
- package/support/job-manager/index.mjs +0 -57679
- package/support/nixpacks/Dockerfile +0 -6
- package/support/nodejs-runtime/index.mjs +0 -169
- package/support/python-runtime/Dockerfile +0 -9
- package/support/python-runtime/Dockerfile.custom +0 -21
- package/support/python-runtime/Dockerfile.dependencies +0 -26
- package/support/python-runtime/runtime.py +0 -127
- package/support/rds-migrator/index.mjs +0 -49
- package/support/remix-site-function/edge-server.js +0 -161
- package/support/remix-site-function/polyfill.js +0 -24
- package/support/remix-site-function/regional-server.js +0 -164
- package/support/script-function/index.mjs +0 -48760
- package/support/service-dev-function/index.js +0 -1
- package/support/signing-function/index.mjs +0 -3769
- package/support/sls-nextjs-site-build-helper/build.cjs +0 -91
- package/support/sls-nextjs-site-build-helper/index-wrapper.js +0 -19
- package/support/sls-nextjs-site-function-code-replacer/lambda-code-updater.py +0 -156
- package/support/sls-nextjs-site-stub/index.html +0 -99
- package/support/ssr-site-function-archiver.mjs +0 -96
- package/support/ssr-site-function-stub/index.js +0 -5
- package/support/ssr-warmer/index.mjs +0 -34235
- package/util/error.d.ts +0 -3
- package/util/error.js +0 -6
- package/util/fs.d.ts +0 -4
- package/util/fs.js +0 -46
- package/util/lazy.d.ts +0 -1
- package/util/lazy.js +0 -11
- package/util/module.d.ts +0 -1
- package/util/module.js +0 -5
- package/util/process.d.ts +0 -2
- package/util/process.js +0 -3
- package/watcher.d.ts +0 -14
- package/watcher.js +0 -35
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
export function addExtensionToHandler(handler, extension) {
|
|
2
|
-
return handler.replace(/\.[\w\d]+$/, extension);
|
|
3
|
-
}
|
|
4
|
-
export function getHandlerFullPosixPath(srcPath, handler) {
|
|
5
|
-
return srcPath === "." ? handler : `${srcPath}/${handler}`;
|
|
6
|
-
}
|
|
7
|
-
export function getHandlerHash(posixPath) {
|
|
8
|
-
return `${posixPath.replace(/[\\/.]/g, "-")}-${Date.now()}`;
|
|
9
|
-
}
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import { Duration as CDKDuration } from "aws-cdk-lib/core";
|
|
2
|
-
export function toCdkDuration(duration) {
|
|
3
|
-
const [count, unit] = duration.split(" ");
|
|
4
|
-
const countNum = parseInt(count);
|
|
5
|
-
const unitLower = unit.toLowerCase();
|
|
6
|
-
if (unitLower.startsWith("second")) {
|
|
7
|
-
return CDKDuration.seconds(countNum);
|
|
8
|
-
}
|
|
9
|
-
else if (unitLower.startsWith("minute")) {
|
|
10
|
-
return CDKDuration.minutes(countNum);
|
|
11
|
-
}
|
|
12
|
-
else if (unitLower.startsWith("hour")) {
|
|
13
|
-
return CDKDuration.hours(countNum);
|
|
14
|
-
}
|
|
15
|
-
else if (unitLower.startsWith("day")) {
|
|
16
|
-
return CDKDuration.days(countNum);
|
|
17
|
-
}
|
|
18
|
-
return CDKDuration.days(0);
|
|
19
|
-
}
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
import { SSTConstruct } from "../Construct.js";
|
|
2
|
-
import { Secret } from "../Secret.js";
|
|
3
|
-
export interface FunctionBindingProps {
|
|
4
|
-
clientPackage: string;
|
|
5
|
-
permissions: Record<string, string[]>;
|
|
6
|
-
variables: Record<string, {
|
|
7
|
-
type: "plain";
|
|
8
|
-
value: string;
|
|
9
|
-
} | {
|
|
10
|
-
type: "secret";
|
|
11
|
-
} | {
|
|
12
|
-
type: "secret_reference";
|
|
13
|
-
secret: Secret;
|
|
14
|
-
} | {
|
|
15
|
-
type: "site_url";
|
|
16
|
-
value: string;
|
|
17
|
-
}>;
|
|
18
|
-
}
|
|
19
|
-
export declare function bindEnvironment(c: SSTConstruct): Record<string, string>;
|
|
20
|
-
export declare function bindParameters(c: SSTConstruct): void;
|
|
21
|
-
export declare function bindPermissions(c: SSTConstruct): Record<string, string[]>;
|
|
22
|
-
export declare function bindType(c: SSTConstruct): {
|
|
23
|
-
clientPackage: string;
|
|
24
|
-
variables: string[];
|
|
25
|
-
} | undefined;
|
|
26
|
-
export declare function getReferencedSecrets(c: SSTConstruct): Secret[];
|
|
27
|
-
export declare function getEnvironmentKey(c: SSTConstruct, prop: string): string;
|
|
28
|
-
export declare function getParameterPath(c: SSTConstruct, prop: string): string;
|
|
29
|
-
export declare function getParameterFallbackPath(c: SSTConstruct, prop: string): string;
|
|
30
|
-
export declare function placeholderSecretValue(): string;
|
|
31
|
-
export declare function placeholderSecretReferenceValue(secret: Secret): string;
|
|
@@ -1,104 +0,0 @@
|
|
|
1
|
-
import * as ssm from "aws-cdk-lib/aws-ssm";
|
|
2
|
-
import { Config } from "../../config.js";
|
|
3
|
-
export function bindEnvironment(c) {
|
|
4
|
-
const binding = c.getFunctionBinding();
|
|
5
|
-
let environment = {};
|
|
6
|
-
if (binding) {
|
|
7
|
-
Object.entries(binding.variables).forEach(([prop, variable]) => {
|
|
8
|
-
const envName = getEnvironmentKey(c, prop);
|
|
9
|
-
if (variable.type === "plain") {
|
|
10
|
-
environment[envName] = variable.value;
|
|
11
|
-
}
|
|
12
|
-
else if (variable.type === "secret" || variable.type === "site_url") {
|
|
13
|
-
environment[envName] = placeholderSecretValue();
|
|
14
|
-
}
|
|
15
|
-
else if (variable.type === "secret_reference") {
|
|
16
|
-
environment[envName] = placeholderSecretReferenceValue(variable.secret);
|
|
17
|
-
}
|
|
18
|
-
});
|
|
19
|
-
}
|
|
20
|
-
return environment;
|
|
21
|
-
}
|
|
22
|
-
export function bindParameters(c) {
|
|
23
|
-
const binding = c.getFunctionBinding();
|
|
24
|
-
if (!binding) {
|
|
25
|
-
return;
|
|
26
|
-
}
|
|
27
|
-
const app = c.node.root;
|
|
28
|
-
Object.entries(binding.variables).forEach(([prop, variable]) => {
|
|
29
|
-
const resId = `Parameter_${prop}`;
|
|
30
|
-
if (!c.node.tryFindChild(resId)) {
|
|
31
|
-
if (variable.type === "plain" || variable.type === "site_url") {
|
|
32
|
-
new ssm.StringParameter(c, resId, {
|
|
33
|
-
parameterName: getParameterPath(c, prop),
|
|
34
|
-
stringValue: variable.value,
|
|
35
|
-
});
|
|
36
|
-
}
|
|
37
|
-
else if (variable.type === "secret_reference") {
|
|
38
|
-
new ssm.StringParameter(c, resId, {
|
|
39
|
-
parameterName: getParameterPath(c, prop),
|
|
40
|
-
stringValue: placeholderSecretReferenceValue(variable.secret),
|
|
41
|
-
});
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
});
|
|
45
|
-
}
|
|
46
|
-
export function bindPermissions(c) {
|
|
47
|
-
const binding = c.getFunctionBinding();
|
|
48
|
-
if (!binding) {
|
|
49
|
-
return {};
|
|
50
|
-
}
|
|
51
|
-
return c.getFunctionBinding()?.permissions || {};
|
|
52
|
-
}
|
|
53
|
-
export function bindType(c) {
|
|
54
|
-
const binding = c.getFunctionBinding();
|
|
55
|
-
if (!binding) {
|
|
56
|
-
return;
|
|
57
|
-
}
|
|
58
|
-
return {
|
|
59
|
-
clientPackage: binding.clientPackage,
|
|
60
|
-
variables: Object.keys(binding.variables),
|
|
61
|
-
};
|
|
62
|
-
}
|
|
63
|
-
export function getReferencedSecrets(c) {
|
|
64
|
-
const binding = c.getFunctionBinding();
|
|
65
|
-
const secrets = [];
|
|
66
|
-
if (binding) {
|
|
67
|
-
Object.values(binding.variables).forEach((variable) => {
|
|
68
|
-
if (variable.type === "secret_reference") {
|
|
69
|
-
secrets.push(variable.secret);
|
|
70
|
-
}
|
|
71
|
-
});
|
|
72
|
-
}
|
|
73
|
-
return secrets;
|
|
74
|
-
}
|
|
75
|
-
export function getEnvironmentKey(c, prop) {
|
|
76
|
-
return Config.envFor({
|
|
77
|
-
type: c.constructor.name,
|
|
78
|
-
id: c.id,
|
|
79
|
-
prop: prop,
|
|
80
|
-
});
|
|
81
|
-
}
|
|
82
|
-
export function getParameterPath(c, prop) {
|
|
83
|
-
const construct = c.constructor.name;
|
|
84
|
-
return Config.pathFor({
|
|
85
|
-
id: c.id,
|
|
86
|
-
type: construct,
|
|
87
|
-
prop: prop,
|
|
88
|
-
});
|
|
89
|
-
}
|
|
90
|
-
export function getParameterFallbackPath(c, prop) {
|
|
91
|
-
const construct = c.constructor.name;
|
|
92
|
-
return Config.pathFor({
|
|
93
|
-
id: c.id,
|
|
94
|
-
type: construct,
|
|
95
|
-
prop: prop,
|
|
96
|
-
fallback: true,
|
|
97
|
-
});
|
|
98
|
-
}
|
|
99
|
-
export function placeholderSecretValue() {
|
|
100
|
-
return "__FETCH_FROM_SSM__";
|
|
101
|
-
}
|
|
102
|
-
export function placeholderSecretReferenceValue(secret) {
|
|
103
|
-
return "__FETCH_FROM_SECRET__:" + secret.name;
|
|
104
|
-
}
|
|
@@ -1,67 +0,0 @@
|
|
|
1
|
-
import { HttpMethod, FunctionUrlCorsOptions } from "aws-cdk-lib/aws-lambda";
|
|
2
|
-
import { Duration } from "./duration.js";
|
|
3
|
-
export interface CorsProps {
|
|
4
|
-
/**
|
|
5
|
-
* Specifies whether credentials are included in the CORS request.
|
|
6
|
-
* @default false
|
|
7
|
-
*/
|
|
8
|
-
allowCredentials?: boolean;
|
|
9
|
-
/**
|
|
10
|
-
* The collection of allowed headers.
|
|
11
|
-
* @default Allow all headers.
|
|
12
|
-
*
|
|
13
|
-
* @example
|
|
14
|
-
* ```js
|
|
15
|
-
* // Allow all headers
|
|
16
|
-
* allowHeaders: ["*"]
|
|
17
|
-
*
|
|
18
|
-
* // Allow specific headers
|
|
19
|
-
* allowHeaders: ["Accept", "Content-Type", "Authorization"]
|
|
20
|
-
* ```
|
|
21
|
-
*/
|
|
22
|
-
allowHeaders?: string[];
|
|
23
|
-
/**
|
|
24
|
-
* The collection of allowed HTTP methods.
|
|
25
|
-
* @default Allow all methods.
|
|
26
|
-
*
|
|
27
|
-
* @example
|
|
28
|
-
* ```js
|
|
29
|
-
* // Allow all methods
|
|
30
|
-
* allowMethods: ["*"]
|
|
31
|
-
*
|
|
32
|
-
* // Allow specific methods
|
|
33
|
-
* allowMethods: ["GET", "POST"]
|
|
34
|
-
* ```
|
|
35
|
-
*/
|
|
36
|
-
allowMethods?: (keyof Omit<typeof HttpMethod, "ALL"> | "*")[];
|
|
37
|
-
/**
|
|
38
|
-
* The collection of allowed origins.
|
|
39
|
-
* @default Allow all origins.
|
|
40
|
-
*
|
|
41
|
-
* @example
|
|
42
|
-
* ```js
|
|
43
|
-
* // Allow all origins
|
|
44
|
-
* allowOrigins: ["*"]
|
|
45
|
-
*
|
|
46
|
-
* // Allow specific origins. Note that the url protocol, ie. "https://", is required.
|
|
47
|
-
* allowOrigins: ["https://domain.com"]
|
|
48
|
-
* ```
|
|
49
|
-
*/
|
|
50
|
-
allowOrigins?: string[];
|
|
51
|
-
/**
|
|
52
|
-
* The collection of exposed headers.
|
|
53
|
-
* @default No expose headers are allowed.
|
|
54
|
-
*/
|
|
55
|
-
exposeHeaders?: string[];
|
|
56
|
-
/**
|
|
57
|
-
* Specify how long the results of a preflight response can be cached
|
|
58
|
-
* @default No caching
|
|
59
|
-
*
|
|
60
|
-
* @example
|
|
61
|
-
* ```js
|
|
62
|
-
* maxAge: "1 day"
|
|
63
|
-
* ```
|
|
64
|
-
*/
|
|
65
|
-
maxAge?: Duration;
|
|
66
|
-
}
|
|
67
|
-
export declare function buildCorsConfig(cors?: boolean | CorsProps): FunctionUrlCorsOptions | undefined;
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
import { HttpMethod } from "aws-cdk-lib/aws-lambda";
|
|
2
|
-
import { toCdkDuration } from "./duration.js";
|
|
3
|
-
export function buildCorsConfig(cors) {
|
|
4
|
-
// Handle cors: false
|
|
5
|
-
if (cors === false) {
|
|
6
|
-
return;
|
|
7
|
-
}
|
|
8
|
-
// Handle cors: true | undefined
|
|
9
|
-
if (cors === undefined || cors === true) {
|
|
10
|
-
cors = {};
|
|
11
|
-
}
|
|
12
|
-
// Handle cors: CorsProps
|
|
13
|
-
return {
|
|
14
|
-
allowCredentials: cors.allowCredentials,
|
|
15
|
-
allowedHeaders: cors.allowHeaders || ["*"],
|
|
16
|
-
allowedMethods: (cors.allowMethods || ["*"]).map((method) => method === "*"
|
|
17
|
-
? HttpMethod.ALL
|
|
18
|
-
: HttpMethod[method]),
|
|
19
|
-
allowedOrigins: cors.allowOrigins || ["*"],
|
|
20
|
-
exposedHeaders: cors.exposeHeaders,
|
|
21
|
-
maxAge: cors.maxAge && toCdkDuration(cors.maxAge),
|
|
22
|
-
};
|
|
23
|
-
}
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import { IConstruct } from "constructs";
|
|
2
|
-
import * as iam from "aws-cdk-lib/aws-iam";
|
|
3
|
-
export type Permissions = "*" | Permission[];
|
|
4
|
-
type SupportedPermissions = "execute-api" | "appsync" | "dynamodb" | "sns" | "sqs" | "events" | "kinesis" | "s3" | "rds-data" | "secretsmanager" | "lambda" | "ssm";
|
|
5
|
-
type Permission = SupportedPermissions | Omit<string, SupportedPermissions> | IConstruct | [IConstruct, string] | iam.PolicyStatement;
|
|
6
|
-
export declare function attachPermissionsToRole(role: iam.Role, permissions: Permissions): void;
|
|
7
|
-
export declare function attachPermissionsToPolicy(policy: iam.Policy, permissions: Permissions): void;
|
|
8
|
-
export {};
|
|
@@ -1,228 +0,0 @@
|
|
|
1
|
-
/* eslint-disable @typescript-eslint/ban-ts-comment*/
|
|
2
|
-
import * as iam from "aws-cdk-lib/aws-iam";
|
|
3
|
-
import { isCDKConstruct, isCDKConstructOf } from "../Construct.js";
|
|
4
|
-
import { Api } from "../Api.js";
|
|
5
|
-
import { ApiGatewayV1Api } from "../ApiGatewayV1Api.js";
|
|
6
|
-
import { Stack } from "../Stack.js";
|
|
7
|
-
import { WebSocketApi } from "../WebSocketApi.js";
|
|
8
|
-
import { AppSyncApi } from "../AppSyncApi.js";
|
|
9
|
-
import { Table } from "../Table.js";
|
|
10
|
-
import { Topic } from "../Topic.js";
|
|
11
|
-
import { Queue } from "../Queue.js";
|
|
12
|
-
import { EventBus } from "../EventBus.js";
|
|
13
|
-
import { KinesisStream } from "../KinesisStream.js";
|
|
14
|
-
import { Bucket } from "../Bucket.js";
|
|
15
|
-
import { Function } from "../Function.js";
|
|
16
|
-
import { RDS } from "../RDS.js";
|
|
17
|
-
import { Job } from "../Job.js";
|
|
18
|
-
export function attachPermissionsToRole(role, permissions) {
|
|
19
|
-
const { statements, grants } = permissionsToStatementsAndGrants(permissions);
|
|
20
|
-
statements.forEach((statement) => role.addToPolicy(statement));
|
|
21
|
-
grants.forEach((grant) => {
|
|
22
|
-
const construct = grant[0];
|
|
23
|
-
const methodName = grant[1];
|
|
24
|
-
construct[methodName](role);
|
|
25
|
-
});
|
|
26
|
-
}
|
|
27
|
-
export function attachPermissionsToPolicy(policy, permissions) {
|
|
28
|
-
const { statements, grants } = permissionsToStatementsAndGrants(permissions);
|
|
29
|
-
statements.forEach((statement) => policy.addStatements(statement));
|
|
30
|
-
grants.forEach((grant) => {
|
|
31
|
-
throw new Error(`Cannot attach the "${grant[1]}" permission to an IAM policy.`);
|
|
32
|
-
});
|
|
33
|
-
}
|
|
34
|
-
function permissionsToStatementsAndGrants(permissions) {
|
|
35
|
-
// Four patterns
|
|
36
|
-
//
|
|
37
|
-
// attachPermissions("*");
|
|
38
|
-
// attachPermissions([ 'sns', 'sqs' ]);
|
|
39
|
-
// attachPermissions([ event, queue ]);
|
|
40
|
-
// attachPermissions([
|
|
41
|
-
// [ event.snsTopic, 'grantPublish' ],
|
|
42
|
-
// [ queue.sqsQueue, 'grantSendMessages' ],
|
|
43
|
-
// ]);
|
|
44
|
-
// attachPermissions([
|
|
45
|
-
// new iam.PolicyStatement({
|
|
46
|
-
// actions: ["s3:*"],
|
|
47
|
-
// effect: iam.Effect.ALLOW,
|
|
48
|
-
// resources: [
|
|
49
|
-
// bucket.bucketArn + "/private/${cognito-identity.amazonaws.com:sub}/*",
|
|
50
|
-
// ],
|
|
51
|
-
// })
|
|
52
|
-
// ]);
|
|
53
|
-
////////////////////////////////////
|
|
54
|
-
// Case: 'admin' permissions => '*'
|
|
55
|
-
////////////////////////////////////
|
|
56
|
-
if (permissions === "*") {
|
|
57
|
-
return {
|
|
58
|
-
statements: [buildPolicyStatement(permissions, ["*"])],
|
|
59
|
-
grants: [],
|
|
60
|
-
};
|
|
61
|
-
}
|
|
62
|
-
if (!Array.isArray(permissions)) {
|
|
63
|
-
throw new Error(`The specified permissions are not supported. They are expected to be "*" or an array.`);
|
|
64
|
-
}
|
|
65
|
-
// Handle array of permissions
|
|
66
|
-
const statements = [];
|
|
67
|
-
const grants = [];
|
|
68
|
-
permissions.forEach((permission) => {
|
|
69
|
-
////////////////////////////////////
|
|
70
|
-
// Case: string ie. 's3' or 's3:*'
|
|
71
|
-
////////////////////////////////////
|
|
72
|
-
if (typeof permission === "string") {
|
|
73
|
-
const perm = permission.indexOf(":") === -1 ? `${permission}:*` : permission;
|
|
74
|
-
statements.push(buildPolicyStatement(perm, ["*"]));
|
|
75
|
-
}
|
|
76
|
-
////////////////////////////////////
|
|
77
|
-
// Case: iam.PolicyStatement
|
|
78
|
-
////////////////////////////////////
|
|
79
|
-
else if (isCDKConstructOf(permission, "aws-cdk-lib.aws_iam.PolicyStatement")) {
|
|
80
|
-
statements.push(permission);
|
|
81
|
-
}
|
|
82
|
-
////////////////////////////////////
|
|
83
|
-
// Case: SST construct
|
|
84
|
-
////////////////////////////////////
|
|
85
|
-
else if (permission instanceof Api) {
|
|
86
|
-
const httpApi = permission.cdk.httpApi;
|
|
87
|
-
const { account, region, partition } = Stack.of(httpApi);
|
|
88
|
-
statements.push(buildPolicyStatement("execute-api:Invoke", [
|
|
89
|
-
`arn:${partition}:execute-api:${region}:${account}:${httpApi.httpApiId}/*`,
|
|
90
|
-
]));
|
|
91
|
-
}
|
|
92
|
-
else if (permission instanceof ApiGatewayV1Api) {
|
|
93
|
-
const restApi = permission.cdk.restApi;
|
|
94
|
-
const { account, region, partition } = Stack.of(restApi);
|
|
95
|
-
statements.push(buildPolicyStatement("execute-api:Invoke", [
|
|
96
|
-
`arn:${partition}:execute-api:${region}:${account}:${restApi.restApiId}/*`,
|
|
97
|
-
]));
|
|
98
|
-
}
|
|
99
|
-
else if (permission instanceof WebSocketApi) {
|
|
100
|
-
const webSocketApi = permission.cdk.webSocketApi;
|
|
101
|
-
const { account, region, partition } = Stack.of(webSocketApi);
|
|
102
|
-
statements.push(buildPolicyStatement("execute-api:Invoke", [
|
|
103
|
-
`arn:${partition}:execute-api:${region}:${account}:${webSocketApi.apiId}/*`,
|
|
104
|
-
]));
|
|
105
|
-
statements.push(buildPolicyStatement("execute-api:ManageConnections", [
|
|
106
|
-
permission._connectionsArn,
|
|
107
|
-
]));
|
|
108
|
-
}
|
|
109
|
-
else if (permission instanceof AppSyncApi) {
|
|
110
|
-
const graphqlApi = permission.cdk.graphqlApi;
|
|
111
|
-
const { account, region, partition } = Stack.of(graphqlApi);
|
|
112
|
-
statements.push(buildPolicyStatement("appsync:GraphQL", [
|
|
113
|
-
`arn:${partition}:appsync:${region}:${account}:apis/${graphqlApi.apiId}/*`,
|
|
114
|
-
]));
|
|
115
|
-
}
|
|
116
|
-
else if (permission instanceof Table) {
|
|
117
|
-
const tableArn = permission.cdk.table.tableArn;
|
|
118
|
-
statements.push(buildPolicyStatement("dynamodb:*", [tableArn, `${tableArn}/*`]));
|
|
119
|
-
}
|
|
120
|
-
else if (permission instanceof Topic) {
|
|
121
|
-
statements.push(buildPolicyStatement("sns:*", [permission.cdk.topic.topicArn]));
|
|
122
|
-
}
|
|
123
|
-
else if (permission instanceof Queue) {
|
|
124
|
-
statements.push(buildPolicyStatement("sqs:*", [permission.cdk.queue.queueArn]));
|
|
125
|
-
}
|
|
126
|
-
else if (permission instanceof EventBus) {
|
|
127
|
-
statements.push(buildPolicyStatement("events:*", [permission.cdk.eventBus.eventBusArn]));
|
|
128
|
-
}
|
|
129
|
-
else if (permission instanceof KinesisStream) {
|
|
130
|
-
statements.push(buildPolicyStatement("kinesis:*", [permission.cdk.stream.streamArn]));
|
|
131
|
-
}
|
|
132
|
-
else if (permission instanceof Bucket) {
|
|
133
|
-
const bucketArn = permission.cdk.bucket.bucketArn;
|
|
134
|
-
statements.push(buildPolicyStatement("s3:*", [bucketArn, `${bucketArn}/*`]));
|
|
135
|
-
}
|
|
136
|
-
else if (permission instanceof RDS) {
|
|
137
|
-
statements.push(buildPolicyStatement("rds-data:*", [permission.clusterArn]));
|
|
138
|
-
if (permission.cdk.cluster.secret) {
|
|
139
|
-
statements.push(buildPolicyStatement(["secretsmanager:GetSecretValue", "secretsmanager:DescribeSecret"], [permission.cdk.cluster.secret.secretArn]));
|
|
140
|
-
}
|
|
141
|
-
}
|
|
142
|
-
else if (permission instanceof Function) {
|
|
143
|
-
statements.push(buildPolicyStatement("lambda:*", [permission.functionArn]));
|
|
144
|
-
}
|
|
145
|
-
else if (permission instanceof Job) {
|
|
146
|
-
statements.push(buildPolicyStatement("lambda:*", [permission._jobManager.functionArn]));
|
|
147
|
-
}
|
|
148
|
-
////////////////////////////////////
|
|
149
|
-
// Case: CDK constructs
|
|
150
|
-
////////////////////////////////////
|
|
151
|
-
else if (permission.tableArn && permission.tableName) {
|
|
152
|
-
// @ts-expect-error We do not want to import the cdk modules, just cast to any
|
|
153
|
-
const tableArn = permission.tableArn;
|
|
154
|
-
statements.push(buildPolicyStatement("dynamodb:*", [tableArn, `${tableArn}/*`]));
|
|
155
|
-
}
|
|
156
|
-
else if (permission.topicArn && permission.topicName) {
|
|
157
|
-
// @ts-expect-error We do not want to import the cdk modules, just cast to any
|
|
158
|
-
statements.push(buildPolicyStatement("sns:*", [permission.topicArn]));
|
|
159
|
-
}
|
|
160
|
-
else if (permission.queueArn && permission.queueName) {
|
|
161
|
-
// @ts-expect-error We do not want to import the cdk modules, just cast to any
|
|
162
|
-
statements.push(buildPolicyStatement("sqs:*", [permission.queueArn]));
|
|
163
|
-
}
|
|
164
|
-
else if (permission.eventBusArn &&
|
|
165
|
-
permission.eventBusName) {
|
|
166
|
-
statements.push(
|
|
167
|
-
// @ts-expect-error We do not want to import the cdk modules, just cast to any
|
|
168
|
-
buildPolicyStatement("events:*", [permission.eventBusArn]));
|
|
169
|
-
}
|
|
170
|
-
else if (permission.streamArn &&
|
|
171
|
-
permission.streamName) {
|
|
172
|
-
statements.push(
|
|
173
|
-
// @ts-expect-error We do not want to import the cdk modules, just cast to any
|
|
174
|
-
buildPolicyStatement("kinesis:*", [permission.streamArn]));
|
|
175
|
-
}
|
|
176
|
-
else if (permission.deliveryStreamArn &&
|
|
177
|
-
permission.deliveryStreamName) {
|
|
178
|
-
statements.push(buildPolicyStatement("firehose:*", [
|
|
179
|
-
permission.deliveryStreamArn,
|
|
180
|
-
]));
|
|
181
|
-
}
|
|
182
|
-
else if (permission.bucketArn &&
|
|
183
|
-
permission.bucketName) {
|
|
184
|
-
// @ts-expect-error We do not want to import the cdk modules, just cast to any
|
|
185
|
-
const bucketArn = permission.bucketArn;
|
|
186
|
-
statements.push(buildPolicyStatement("s3:*", [bucketArn, `${bucketArn}/*`]));
|
|
187
|
-
}
|
|
188
|
-
else if (permission.clusterArn) {
|
|
189
|
-
// For ServerlessCluster, we need to grant:
|
|
190
|
-
// - permisssions to access the Data API;
|
|
191
|
-
// - permisssions to access the Secret Manager (required by Data API).
|
|
192
|
-
// No need to grant the permissions for IAM database authentication
|
|
193
|
-
statements.push(buildPolicyStatement("rds-data:*", [permission.clusterArn]));
|
|
194
|
-
const secret = permission.secret;
|
|
195
|
-
if (secret) {
|
|
196
|
-
statements.push(buildPolicyStatement(["secretsmanager:GetSecretValue", "secretsmanager:DescribeSecret"], [secret.secretArn]));
|
|
197
|
-
}
|
|
198
|
-
if (secret?.encryptionKey) {
|
|
199
|
-
statements.push(buildPolicyStatement(["kms:Decrypt"], [secret.encryptionKey.keyArn]));
|
|
200
|
-
}
|
|
201
|
-
}
|
|
202
|
-
////////////////////////////////////
|
|
203
|
-
// Case: grant method
|
|
204
|
-
////////////////////////////////////
|
|
205
|
-
else if (Array.isArray(permission) &&
|
|
206
|
-
permission.length === 2 &&
|
|
207
|
-
isCDKConstruct(permission[0]) &&
|
|
208
|
-
typeof permission[1] === "string") {
|
|
209
|
-
const construct = permission[0];
|
|
210
|
-
const methodName = permission[1];
|
|
211
|
-
if (typeof construct[methodName] !== "function")
|
|
212
|
-
throw new Error(`The specified grant method is incorrect.
|
|
213
|
-
Check the available methods that prefixed with grants on the Construct`);
|
|
214
|
-
grants.push(permission);
|
|
215
|
-
}
|
|
216
|
-
else {
|
|
217
|
-
throw new Error(`The specified permissions are not supported.`);
|
|
218
|
-
}
|
|
219
|
-
});
|
|
220
|
-
return { statements, grants };
|
|
221
|
-
}
|
|
222
|
-
function buildPolicyStatement(actions, resources) {
|
|
223
|
-
return new iam.PolicyStatement({
|
|
224
|
-
effect: iam.Effect.ALLOW,
|
|
225
|
-
actions: typeof actions === "string" ? [actions] : actions,
|
|
226
|
-
resources,
|
|
227
|
-
});
|
|
228
|
-
}
|
package/constructs/util/size.js
DELETED
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import { Size as CDKSize } from "aws-cdk-lib/core";
|
|
2
|
-
export function toCdkSize(size) {
|
|
3
|
-
const [count, unit] = size.split(" ");
|
|
4
|
-
const countNum = parseInt(count);
|
|
5
|
-
if (unit === "MB") {
|
|
6
|
-
return CDKSize.mebibytes(countNum);
|
|
7
|
-
}
|
|
8
|
-
else if (unit === "GB") {
|
|
9
|
-
return CDKSize.gibibytes(countNum);
|
|
10
|
-
}
|
|
11
|
-
throw new Error(`Invalid size ${size}`);
|
|
12
|
-
}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
declare const WARNINGS: {
|
|
2
|
-
"config.deprecated": string;
|
|
3
|
-
"permissions.noConstructs": string;
|
|
4
|
-
"go.deprecated": string;
|
|
5
|
-
"remix.cjs": string;
|
|
6
|
-
};
|
|
7
|
-
export declare const useWarning: () => {
|
|
8
|
-
add(message: keyof typeof WARNINGS): void;
|
|
9
|
-
print(): void;
|
|
10
|
-
};
|
|
11
|
-
export {};
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import { createAppContext } from "../context.js";
|
|
2
|
-
import { Colors } from "../../cli/colors.js";
|
|
3
|
-
const WARNINGS = {
|
|
4
|
-
"config.deprecated": `The "config" prop is deprecated, and will be removed in SST v2. Pass Parameters and Secrets in through the "bind" prop. Read more about how to upgrade here — https://docs.serverless-stack.com/upgrade-guide#upgrade-to-v116`,
|
|
5
|
-
"permissions.noConstructs": `Passing SST constructs into "permissions" is deprecated, and will be removed in SST v2. Pass them into the "bind" prop. Read more about how to upgrade here — https://docs.serverless-stack.com/upgrade-guide#upgrade-to-v116`,
|
|
6
|
-
"go.deprecated": `The "go1.x" runtime is deprecated and replaced by the "go" runtime`,
|
|
7
|
-
"remix.cjs": `"RemixSite" will soon deprecate support for the "cjs" output format. Please update your "remix.config.js" to set "serverModuleFormat" to "esm".`,
|
|
8
|
-
};
|
|
9
|
-
export const useWarning = createAppContext(() => {
|
|
10
|
-
const set = new Set();
|
|
11
|
-
return {
|
|
12
|
-
add(message) {
|
|
13
|
-
set.add(message);
|
|
14
|
-
},
|
|
15
|
-
print() {
|
|
16
|
-
for (const key of set) {
|
|
17
|
-
Colors.line(Colors.warning(`Warning: ${WARNINGS[key]}`));
|
|
18
|
-
}
|
|
19
|
-
},
|
|
20
|
-
};
|
|
21
|
-
});
|
package/context/context.d.ts
DELETED
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
export declare const Context: {
|
|
2
|
-
create: typeof create;
|
|
3
|
-
reset: typeof reset;
|
|
4
|
-
memo: typeof memo;
|
|
5
|
-
};
|
|
6
|
-
declare function create<C>(cb?: (() => C) | string, name?: string): {
|
|
7
|
-
use(): C;
|
|
8
|
-
reset(): void;
|
|
9
|
-
provide(value: C): void;
|
|
10
|
-
};
|
|
11
|
-
declare function reset(): void;
|
|
12
|
-
export declare function memo<C>(cb: () => C, name?: string): () => C;
|
|
13
|
-
export {};
|
package/context/context.js
DELETED
|
@@ -1,69 +0,0 @@
|
|
|
1
|
-
export const Context = {
|
|
2
|
-
create,
|
|
3
|
-
reset,
|
|
4
|
-
memo,
|
|
5
|
-
};
|
|
6
|
-
const state = {
|
|
7
|
-
requestID: "",
|
|
8
|
-
contexts: new Map(),
|
|
9
|
-
tracking: [],
|
|
10
|
-
};
|
|
11
|
-
function create(cb, name) {
|
|
12
|
-
const id = typeof cb === "string" ? cb : name || Symbol(cb?.toString());
|
|
13
|
-
return {
|
|
14
|
-
use() {
|
|
15
|
-
let result = state.contexts.get(id);
|
|
16
|
-
if (!result) {
|
|
17
|
-
if (!cb || typeof cb === "string")
|
|
18
|
-
throw new Error(`"${String(id)}" context was not provided.`);
|
|
19
|
-
state.tracking.push(id);
|
|
20
|
-
const value = cb();
|
|
21
|
-
state.tracking.pop();
|
|
22
|
-
result = {
|
|
23
|
-
value,
|
|
24
|
-
dependants: new Set(),
|
|
25
|
-
};
|
|
26
|
-
state.contexts.set(id, result);
|
|
27
|
-
}
|
|
28
|
-
const last = state.tracking[state.tracking.length - 1];
|
|
29
|
-
// Use is being called within another context booting up so mark it as a dependent
|
|
30
|
-
if (last)
|
|
31
|
-
result.dependants.add(last);
|
|
32
|
-
return result.value;
|
|
33
|
-
},
|
|
34
|
-
reset() {
|
|
35
|
-
resetDependencies(id);
|
|
36
|
-
state.contexts.delete(id);
|
|
37
|
-
},
|
|
38
|
-
provide(value) {
|
|
39
|
-
// If a new request has started, automatically clear all contexts
|
|
40
|
-
const requestID = global[Symbol.for("aws.lambda.runtime.requestId")];
|
|
41
|
-
if (state.requestID !== requestID) {
|
|
42
|
-
state.requestID = requestID;
|
|
43
|
-
reset();
|
|
44
|
-
}
|
|
45
|
-
// If the context is already set, we need to reset its dependants
|
|
46
|
-
resetDependencies(id);
|
|
47
|
-
state.contexts.set(id, {
|
|
48
|
-
value,
|
|
49
|
-
dependants: new Set(),
|
|
50
|
-
});
|
|
51
|
-
},
|
|
52
|
-
};
|
|
53
|
-
}
|
|
54
|
-
function reset() {
|
|
55
|
-
state.contexts.clear();
|
|
56
|
-
}
|
|
57
|
-
function resetDependencies(id) {
|
|
58
|
-
const info = state.contexts.get(id);
|
|
59
|
-
if (!info)
|
|
60
|
-
return;
|
|
61
|
-
for (const dependantID of info.dependants) {
|
|
62
|
-
state.contexts.delete(dependantID);
|
|
63
|
-
resetDependencies(dependantID);
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
export function memo(cb, name) {
|
|
67
|
-
const ctx = create(cb, name);
|
|
68
|
-
return ctx.use;
|
|
69
|
-
}
|
package/context/context2.d.ts
DELETED
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
export declare class ContextNotFoundError extends Error {
|
|
2
|
-
name: string;
|
|
3
|
-
constructor(name: string);
|
|
4
|
-
}
|
|
5
|
-
export type Context<T> = ReturnType<typeof create<T>>;
|
|
6
|
-
export declare function create<T>(name: string): {
|
|
7
|
-
name: string;
|
|
8
|
-
with<R>(value: T, cb: () => R): R;
|
|
9
|
-
use(): T;
|
|
10
|
-
version(): string;
|
|
11
|
-
};
|
|
12
|
-
export declare function memo<T>(cb: () => T): () => T;
|
|
13
|
-
export declare const Context: {
|
|
14
|
-
create: typeof create;
|
|
15
|
-
memo: typeof memo;
|
|
16
|
-
};
|