sst 3.0.0 → 3.0.1-10
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/index.d.ts +2 -0
- package/dist/index.js +2 -0
- package/dist/resource.d.ts +4 -0
- package/dist/resource.js +15 -0
- package/dist/vector-client.d.ts +126 -0
- package/dist/vector-client.js +38 -0
- package/package.json +16 -137
- 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
package/constructs/Cognito.d.ts
DELETED
|
@@ -1,232 +0,0 @@
|
|
|
1
|
-
import { Construct } from "constructs";
|
|
2
|
-
import { SSTConstruct } from "./Construct.js";
|
|
3
|
-
import { Function as Fn, FunctionProps, FunctionDefinition } from "./Function.js";
|
|
4
|
-
import { Permissions } from "./util/permission.js";
|
|
5
|
-
import { CfnIdentityPool, CfnIdentityPoolProps, CfnIdentityPoolRoleAttachment, IUserPool, IUserPoolClient, UserPoolClientOptions, UserPoolProps } from "aws-cdk-lib/aws-cognito";
|
|
6
|
-
import { Role } from "aws-cdk-lib/aws-iam";
|
|
7
|
-
export interface CognitoUserPoolTriggers {
|
|
8
|
-
createAuthChallenge?: FunctionDefinition;
|
|
9
|
-
customEmailSender?: FunctionDefinition;
|
|
10
|
-
customMessage?: FunctionDefinition;
|
|
11
|
-
customSmsSender?: FunctionDefinition;
|
|
12
|
-
defineAuthChallenge?: FunctionDefinition;
|
|
13
|
-
postAuthentication?: FunctionDefinition;
|
|
14
|
-
postConfirmation?: FunctionDefinition;
|
|
15
|
-
preAuthentication?: FunctionDefinition;
|
|
16
|
-
preSignUp?: FunctionDefinition;
|
|
17
|
-
preTokenGeneration?: FunctionDefinition;
|
|
18
|
-
userMigration?: FunctionDefinition;
|
|
19
|
-
verifyAuthChallengeResponse?: FunctionDefinition;
|
|
20
|
-
}
|
|
21
|
-
export interface CognitoAuth0Props {
|
|
22
|
-
domain: string;
|
|
23
|
-
clientId: string;
|
|
24
|
-
}
|
|
25
|
-
export interface CognitoAmazonProps {
|
|
26
|
-
appId: string;
|
|
27
|
-
}
|
|
28
|
-
export interface CognitoAppleProps {
|
|
29
|
-
servicesId: string;
|
|
30
|
-
}
|
|
31
|
-
export interface CognitoFacebookProps {
|
|
32
|
-
appId: string;
|
|
33
|
-
}
|
|
34
|
-
export interface CognitoGoogleProps {
|
|
35
|
-
clientId: string;
|
|
36
|
-
}
|
|
37
|
-
export interface CognitoTwitterProps {
|
|
38
|
-
consumerKey: string;
|
|
39
|
-
consumerSecret: string;
|
|
40
|
-
}
|
|
41
|
-
export interface CognitoCdkCfnIdentityPoolProps extends Omit<CfnIdentityPoolProps, "allowUnauthenticatedIdentities"> {
|
|
42
|
-
allowUnauthenticatedIdentities?: boolean;
|
|
43
|
-
}
|
|
44
|
-
export interface CognitoIdentityPoolFederationProps {
|
|
45
|
-
auth0?: CognitoAuth0Props;
|
|
46
|
-
amazon?: CognitoAmazonProps;
|
|
47
|
-
apple?: CognitoAppleProps;
|
|
48
|
-
facebook?: CognitoFacebookProps;
|
|
49
|
-
google?: CognitoGoogleProps;
|
|
50
|
-
twitter?: CognitoTwitterProps;
|
|
51
|
-
cdk?: {
|
|
52
|
-
cfnIdentityPool?: CognitoCdkCfnIdentityPoolProps;
|
|
53
|
-
};
|
|
54
|
-
}
|
|
55
|
-
export interface CognitoProps {
|
|
56
|
-
defaults?: {
|
|
57
|
-
/**
|
|
58
|
-
* The default function props to be applied to all the triggers in the UserPool. The `environment`, `permissions` and `layers` properties will be merged with per route definitions if they are defined.
|
|
59
|
-
*
|
|
60
|
-
* @example
|
|
61
|
-
*
|
|
62
|
-
* ```js
|
|
63
|
-
* new Cognito(stack, "Auth", {
|
|
64
|
-
* defaults: {
|
|
65
|
-
* function: {
|
|
66
|
-
* timeout: 20,
|
|
67
|
-
* environment: { topicName: topic.topicName },
|
|
68
|
-
* permissions: [topic],
|
|
69
|
-
* }
|
|
70
|
-
* },
|
|
71
|
-
* });
|
|
72
|
-
* ```
|
|
73
|
-
*/
|
|
74
|
-
function?: FunctionProps;
|
|
75
|
-
};
|
|
76
|
-
/**
|
|
77
|
-
* Configure the different ways a user can sign in to our application for our User Pool. For example, you might want a user to be able to sign in with their email or username. Or with their phone number.
|
|
78
|
-
*
|
|
79
|
-
* :::caution
|
|
80
|
-
* You cannot change the login property once the User Pool has been created.
|
|
81
|
-
* :::
|
|
82
|
-
*
|
|
83
|
-
* @default `["username"]`
|
|
84
|
-
*/
|
|
85
|
-
login?: ("email" | "phone" | "username" | "preferredUsername")[];
|
|
86
|
-
/**
|
|
87
|
-
* Configure triggers for this User Pool
|
|
88
|
-
* @default No triggers
|
|
89
|
-
*
|
|
90
|
-
* @example
|
|
91
|
-
*
|
|
92
|
-
* ```js
|
|
93
|
-
* new Cognito(stack, "Auth", {
|
|
94
|
-
* triggers: {
|
|
95
|
-
* preAuthentication: "src/preAuthentication.main",
|
|
96
|
-
* postAuthentication: "src/postAuthentication.main",
|
|
97
|
-
* },
|
|
98
|
-
* });
|
|
99
|
-
* ```
|
|
100
|
-
*/
|
|
101
|
-
triggers?: CognitoUserPoolTriggers;
|
|
102
|
-
/**
|
|
103
|
-
* Configure the Cognito Identity Pool and its authentication providers.
|
|
104
|
-
* @default Identity Pool created with the User Pool as the authentication provider
|
|
105
|
-
*/
|
|
106
|
-
identityPoolFederation?: boolean | CognitoIdentityPoolFederationProps;
|
|
107
|
-
cdk?: {
|
|
108
|
-
/**
|
|
109
|
-
* Allows you to override default id for this construct.
|
|
110
|
-
*/
|
|
111
|
-
id?: string;
|
|
112
|
-
/**
|
|
113
|
-
* This allows you to override the default settings this construct uses internally to create the User Pool.
|
|
114
|
-
*/
|
|
115
|
-
userPool?: UserPoolProps | IUserPool;
|
|
116
|
-
/**
|
|
117
|
-
* This allows you to override the default settings this construct uses internally to create the User Pool client.
|
|
118
|
-
*/
|
|
119
|
-
userPoolClient?: UserPoolClientOptions | IUserPoolClient;
|
|
120
|
-
};
|
|
121
|
-
}
|
|
122
|
-
/**
|
|
123
|
-
* The `Cognito` construct is a higher level CDK construct that makes it easy to configure a Cognito User Pool and Cognito Identity Pool.
|
|
124
|
-
*
|
|
125
|
-
* @example
|
|
126
|
-
*
|
|
127
|
-
* ```js
|
|
128
|
-
* import { Cognito } from "sst/constructs";
|
|
129
|
-
*
|
|
130
|
-
* new Cognito(stack, "Cognito");
|
|
131
|
-
* ```
|
|
132
|
-
*/
|
|
133
|
-
export declare class Cognito extends Construct implements SSTConstruct {
|
|
134
|
-
readonly id: string;
|
|
135
|
-
readonly cdk: {
|
|
136
|
-
userPool: IUserPool;
|
|
137
|
-
userPoolClient: IUserPoolClient;
|
|
138
|
-
cfnIdentityPool?: CfnIdentityPool;
|
|
139
|
-
cfnIdentityPoolRoleAttachment?: CfnIdentityPoolRoleAttachment;
|
|
140
|
-
authRole: Role;
|
|
141
|
-
unauthRole: Role;
|
|
142
|
-
};
|
|
143
|
-
private functions;
|
|
144
|
-
private props;
|
|
145
|
-
constructor(scope: Construct, id: string, props?: CognitoProps);
|
|
146
|
-
/**
|
|
147
|
-
* The id of the internally created Cognito User Pool.
|
|
148
|
-
*/
|
|
149
|
-
get userPoolId(): string;
|
|
150
|
-
/**
|
|
151
|
-
* The ARN of the internally created Cognito User Pool.
|
|
152
|
-
*/
|
|
153
|
-
get userPoolArn(): string;
|
|
154
|
-
/**
|
|
155
|
-
* The id of the internally created Cognito User Pool client.
|
|
156
|
-
*/
|
|
157
|
-
get userPoolClientId(): string;
|
|
158
|
-
/**
|
|
159
|
-
* The id of the internally created `IdentityPool` instance.
|
|
160
|
-
*/
|
|
161
|
-
get cognitoIdentityPoolId(): string | undefined;
|
|
162
|
-
/**
|
|
163
|
-
* Attaches the given list of permissions to the authenticated users. This allows the authenticated users to access other AWS resources.
|
|
164
|
-
*
|
|
165
|
-
* @example
|
|
166
|
-
* ```js
|
|
167
|
-
* auth.attachPermissionsForAuthUsers(stack, ["s3"]);
|
|
168
|
-
* ```
|
|
169
|
-
*/
|
|
170
|
-
attachPermissionsForAuthUsers(scope: Construct, permissions: Permissions): void;
|
|
171
|
-
/**
|
|
172
|
-
* @deprecated You are now required to pass in a scope as the first argument.
|
|
173
|
-
*
|
|
174
|
-
* ```js
|
|
175
|
-
* // Change
|
|
176
|
-
* auth.attachPermissionsForAuthUsers(["s3"]);
|
|
177
|
-
* // to
|
|
178
|
-
* auth.attachPermissionsForAuthUsers(auth, ["s3"]);
|
|
179
|
-
* ```
|
|
180
|
-
*/
|
|
181
|
-
attachPermissionsForAuthUsers(permissions: Permissions): void;
|
|
182
|
-
/**
|
|
183
|
-
* Attaches the given list of permissions to the authenticated users. This allows the authenticated users to access other AWS resources.
|
|
184
|
-
*
|
|
185
|
-
* @example
|
|
186
|
-
* ```js
|
|
187
|
-
* auth.attachPermissionsForUnauthUsers(stack, ["s3"]);
|
|
188
|
-
* ```
|
|
189
|
-
*/
|
|
190
|
-
attachPermissionsForUnauthUsers(scope: Construct, permissions: Permissions): void;
|
|
191
|
-
/**
|
|
192
|
-
* @deprecated You are now required to pass in a scope as the first argument.
|
|
193
|
-
* ```js
|
|
194
|
-
* // Change
|
|
195
|
-
* auth.attachPermissionsForUnauthUsers(["s3"]);
|
|
196
|
-
* // to
|
|
197
|
-
* auth.attachPermissionsForUnauthUsers(auth, ["s3"]);
|
|
198
|
-
* ```
|
|
199
|
-
*/
|
|
200
|
-
attachPermissionsForUnauthUsers(permissions: Permissions): void;
|
|
201
|
-
bindForTriggers(constructs: SSTConstruct[]): void;
|
|
202
|
-
bindForTrigger(triggerKey: keyof CognitoUserPoolTriggers, constructs: SSTConstruct[]): void;
|
|
203
|
-
attachPermissionsForTriggers(permissions: Permissions): void;
|
|
204
|
-
attachPermissionsForTrigger(triggerKey: keyof CognitoUserPoolTriggers, permissions: Permissions): void;
|
|
205
|
-
getFunction(triggerKey: keyof CognitoUserPoolTriggers): Fn | undefined;
|
|
206
|
-
getConstructMetadata(): {
|
|
207
|
-
type: "Cognito";
|
|
208
|
-
data: {
|
|
209
|
-
identityPoolId: string | undefined;
|
|
210
|
-
userPoolId: string;
|
|
211
|
-
triggers: {
|
|
212
|
-
name: string;
|
|
213
|
-
fn: {
|
|
214
|
-
node: string;
|
|
215
|
-
stack: string;
|
|
216
|
-
} | undefined;
|
|
217
|
-
}[];
|
|
218
|
-
};
|
|
219
|
-
};
|
|
220
|
-
/** @internal */
|
|
221
|
-
getFunctionBinding(): undefined;
|
|
222
|
-
private attachPermissionsForUsers;
|
|
223
|
-
private createUserPool;
|
|
224
|
-
private createUserPoolClient;
|
|
225
|
-
private createIdentityPool;
|
|
226
|
-
private addTriggers;
|
|
227
|
-
private addTrigger;
|
|
228
|
-
private createAuthRole;
|
|
229
|
-
private createUnauthRole;
|
|
230
|
-
private buildSignInAliases;
|
|
231
|
-
private cognitoIdentityName;
|
|
232
|
-
}
|
package/constructs/Cognito.js
DELETED
|
@@ -1,370 +0,0 @@
|
|
|
1
|
-
import { Construct } from "constructs";
|
|
2
|
-
import { Stack } from "./Stack.js";
|
|
3
|
-
import { getFunctionRef, isCDKConstruct } from "./Construct.js";
|
|
4
|
-
import { Function as Fn, } from "./Function.js";
|
|
5
|
-
import { attachPermissionsToRole, attachPermissionsToPolicy, } from "./util/permission.js";
|
|
6
|
-
import { CfnIdentityPool, CfnIdentityPoolRoleAttachment, UserPool, UserPoolClient, UserPoolOperation, } from "aws-cdk-lib/aws-cognito";
|
|
7
|
-
import { Effect, FederatedPrincipal, OpenIdConnectProvider, Policy, PolicyStatement, Role, } from "aws-cdk-lib/aws-iam";
|
|
8
|
-
const CognitoUserPoolTriggerOperationMapping = {
|
|
9
|
-
createAuthChallenge: UserPoolOperation.CREATE_AUTH_CHALLENGE,
|
|
10
|
-
customEmailSender: UserPoolOperation.CUSTOM_EMAIL_SENDER,
|
|
11
|
-
customMessage: UserPoolOperation.CUSTOM_MESSAGE,
|
|
12
|
-
customSmsSender: UserPoolOperation.CUSTOM_SMS_SENDER,
|
|
13
|
-
defineAuthChallenge: UserPoolOperation.DEFINE_AUTH_CHALLENGE,
|
|
14
|
-
postAuthentication: UserPoolOperation.POST_AUTHENTICATION,
|
|
15
|
-
postConfirmation: UserPoolOperation.POST_CONFIRMATION,
|
|
16
|
-
preAuthentication: UserPoolOperation.PRE_AUTHENTICATION,
|
|
17
|
-
preSignUp: UserPoolOperation.PRE_SIGN_UP,
|
|
18
|
-
preTokenGeneration: UserPoolOperation.PRE_TOKEN_GENERATION,
|
|
19
|
-
userMigration: UserPoolOperation.USER_MIGRATION,
|
|
20
|
-
verifyAuthChallengeResponse: UserPoolOperation.VERIFY_AUTH_CHALLENGE_RESPONSE,
|
|
21
|
-
};
|
|
22
|
-
/////////////////////
|
|
23
|
-
// Construct
|
|
24
|
-
/////////////////////
|
|
25
|
-
/**
|
|
26
|
-
* The `Cognito` construct is a higher level CDK construct that makes it easy to configure a Cognito User Pool and Cognito Identity Pool.
|
|
27
|
-
*
|
|
28
|
-
* @example
|
|
29
|
-
*
|
|
30
|
-
* ```js
|
|
31
|
-
* import { Cognito } from "sst/constructs";
|
|
32
|
-
*
|
|
33
|
-
* new Cognito(stack, "Cognito");
|
|
34
|
-
* ```
|
|
35
|
-
*/
|
|
36
|
-
export class Cognito extends Construct {
|
|
37
|
-
id;
|
|
38
|
-
cdk;
|
|
39
|
-
functions = {};
|
|
40
|
-
props;
|
|
41
|
-
constructor(scope, id, props) {
|
|
42
|
-
super(scope, props?.cdk?.id || id);
|
|
43
|
-
this.id = id;
|
|
44
|
-
this.props = props || {};
|
|
45
|
-
this.cdk = {};
|
|
46
|
-
this.createUserPool();
|
|
47
|
-
this.createUserPoolClient();
|
|
48
|
-
this.addTriggers();
|
|
49
|
-
this.createIdentityPool();
|
|
50
|
-
}
|
|
51
|
-
/**
|
|
52
|
-
* The id of the internally created Cognito User Pool.
|
|
53
|
-
*/
|
|
54
|
-
get userPoolId() {
|
|
55
|
-
return this.cdk.userPool.userPoolId;
|
|
56
|
-
}
|
|
57
|
-
/**
|
|
58
|
-
* The ARN of the internally created Cognito User Pool.
|
|
59
|
-
*/
|
|
60
|
-
get userPoolArn() {
|
|
61
|
-
return this.cdk.userPool.userPoolArn;
|
|
62
|
-
}
|
|
63
|
-
/**
|
|
64
|
-
* The id of the internally created Cognito User Pool client.
|
|
65
|
-
*/
|
|
66
|
-
get userPoolClientId() {
|
|
67
|
-
return this.cdk.userPoolClient.userPoolClientId;
|
|
68
|
-
}
|
|
69
|
-
/**
|
|
70
|
-
* The id of the internally created `IdentityPool` instance.
|
|
71
|
-
*/
|
|
72
|
-
get cognitoIdentityPoolId() {
|
|
73
|
-
return this.cdk.cfnIdentityPool?.ref;
|
|
74
|
-
}
|
|
75
|
-
attachPermissionsForAuthUsers(arg1, arg2) {
|
|
76
|
-
return this.attachPermissionsForUsers(this.cdk.authRole, arg1, arg2);
|
|
77
|
-
}
|
|
78
|
-
attachPermissionsForUnauthUsers(arg1, arg2) {
|
|
79
|
-
return this.attachPermissionsForUsers(this.cdk.unauthRole, arg1, arg2);
|
|
80
|
-
}
|
|
81
|
-
bindForTriggers(constructs) {
|
|
82
|
-
Object.values(this.functions).forEach((fn) => fn.bind(constructs));
|
|
83
|
-
}
|
|
84
|
-
bindForTrigger(triggerKey, constructs) {
|
|
85
|
-
const fn = this.getFunction(triggerKey);
|
|
86
|
-
if (!fn) {
|
|
87
|
-
throw new Error(`Failed to bind resources. Trigger "${triggerKey}" does not exist.`);
|
|
88
|
-
}
|
|
89
|
-
fn.bind(constructs);
|
|
90
|
-
}
|
|
91
|
-
attachPermissionsForTriggers(permissions) {
|
|
92
|
-
Object.values(this.functions).forEach((fn) => fn.attachPermissions(permissions));
|
|
93
|
-
}
|
|
94
|
-
attachPermissionsForTrigger(triggerKey, permissions) {
|
|
95
|
-
const fn = this.getFunction(triggerKey);
|
|
96
|
-
if (!fn) {
|
|
97
|
-
throw new Error(`Failed to attach permissions. Trigger "${triggerKey}" does not exist.`);
|
|
98
|
-
}
|
|
99
|
-
fn.attachPermissions(permissions);
|
|
100
|
-
}
|
|
101
|
-
getFunction(triggerKey) {
|
|
102
|
-
return this.functions[triggerKey];
|
|
103
|
-
}
|
|
104
|
-
getConstructMetadata() {
|
|
105
|
-
return {
|
|
106
|
-
type: "Cognito",
|
|
107
|
-
data: {
|
|
108
|
-
identityPoolId: this.cdk.cfnIdentityPool?.ref,
|
|
109
|
-
userPoolId: this.cdk.userPool.userPoolId,
|
|
110
|
-
triggers: Object.entries(this.functions).map(([name, fun]) => ({
|
|
111
|
-
name,
|
|
112
|
-
fn: getFunctionRef(fun),
|
|
113
|
-
})),
|
|
114
|
-
},
|
|
115
|
-
};
|
|
116
|
-
}
|
|
117
|
-
/** @internal */
|
|
118
|
-
getFunctionBinding() {
|
|
119
|
-
return undefined;
|
|
120
|
-
}
|
|
121
|
-
attachPermissionsForUsers(role, arg1, arg2) {
|
|
122
|
-
let scope;
|
|
123
|
-
let permissions;
|
|
124
|
-
if (arg2) {
|
|
125
|
-
scope = arg1;
|
|
126
|
-
permissions = arg2;
|
|
127
|
-
}
|
|
128
|
-
else {
|
|
129
|
-
scope = this;
|
|
130
|
-
permissions = arg1;
|
|
131
|
-
}
|
|
132
|
-
// If the scope is within the same stack as the `Auth` construct, attach the permissions
|
|
133
|
-
// directly to the auth role.
|
|
134
|
-
if (Stack.of(scope) === Stack.of(this)) {
|
|
135
|
-
attachPermissionsToRole(role, permissions);
|
|
136
|
-
}
|
|
137
|
-
// If the scope is within a different stack, we need to create a new role and attach the permissions to that role.
|
|
138
|
-
else {
|
|
139
|
-
const policyId = role === this.cdk.authRole
|
|
140
|
-
? `Auth-${this.node.id}-${scope.node.id}-AuthRole`
|
|
141
|
-
: `Auth-${this.node.id}-${scope.node.id}-UnauthRole`;
|
|
142
|
-
let policy = scope.node.tryFindChild(policyId);
|
|
143
|
-
if (!policy) {
|
|
144
|
-
policy = new Policy(scope, policyId);
|
|
145
|
-
}
|
|
146
|
-
role.attachInlinePolicy(policy);
|
|
147
|
-
attachPermissionsToPolicy(policy, permissions);
|
|
148
|
-
}
|
|
149
|
-
}
|
|
150
|
-
createUserPool() {
|
|
151
|
-
const { login, cdk } = this.props;
|
|
152
|
-
const app = this.node.root;
|
|
153
|
-
if (isCDKConstruct(cdk?.userPool)) {
|
|
154
|
-
this.cdk.userPool = cdk?.userPool;
|
|
155
|
-
}
|
|
156
|
-
else {
|
|
157
|
-
const cognitoUserPoolProps = (cdk?.userPool || {});
|
|
158
|
-
// validate `lambdaTriggers` is not specified
|
|
159
|
-
if (cognitoUserPoolProps.lambdaTriggers) {
|
|
160
|
-
throw new Error(`Cannot configure the "cdk.userPool.lambdaTriggers" in the Cognito construct. Use the "triggers" instead.`);
|
|
161
|
-
}
|
|
162
|
-
// validate `cdk.userPoolClient` is not imported
|
|
163
|
-
if (isCDKConstruct(cdk?.userPoolClient)) {
|
|
164
|
-
throw new Error(`Cannot import the "userPoolClient" when the "userPool" is not imported.`);
|
|
165
|
-
}
|
|
166
|
-
this.cdk.userPool = new UserPool(this, "UserPool", {
|
|
167
|
-
userPoolName: app.logicalPrefixedName(this.node.id),
|
|
168
|
-
selfSignUpEnabled: true,
|
|
169
|
-
signInCaseSensitive: false,
|
|
170
|
-
signInAliases: this.buildSignInAliases(login),
|
|
171
|
-
...cognitoUserPoolProps,
|
|
172
|
-
});
|
|
173
|
-
}
|
|
174
|
-
}
|
|
175
|
-
createUserPoolClient() {
|
|
176
|
-
const { cdk } = this.props;
|
|
177
|
-
if (isCDKConstruct(cdk?.userPoolClient)) {
|
|
178
|
-
this.cdk.userPoolClient = cdk?.userPoolClient;
|
|
179
|
-
}
|
|
180
|
-
else {
|
|
181
|
-
const clientProps = (cdk?.userPoolClient || {});
|
|
182
|
-
this.cdk.userPoolClient = new UserPoolClient(this, "UserPoolClient", {
|
|
183
|
-
userPool: this.cdk.userPool,
|
|
184
|
-
...clientProps,
|
|
185
|
-
});
|
|
186
|
-
}
|
|
187
|
-
}
|
|
188
|
-
createIdentityPool() {
|
|
189
|
-
const { identityPoolFederation } = this.props;
|
|
190
|
-
if (identityPoolFederation === false) {
|
|
191
|
-
return;
|
|
192
|
-
}
|
|
193
|
-
const id = this.node.id;
|
|
194
|
-
const app = this.node.root;
|
|
195
|
-
const cognitoIdentityProviders = [];
|
|
196
|
-
const openIdConnectProviderArns = [];
|
|
197
|
-
const supportedLoginProviders = {};
|
|
198
|
-
////////////////////
|
|
199
|
-
// Handle Cognito Identity Providers (ie. User Pool)
|
|
200
|
-
////////////////////
|
|
201
|
-
const urlSuffix = Stack.of(this).urlSuffix;
|
|
202
|
-
cognitoIdentityProviders.push({
|
|
203
|
-
providerName: `cognito-idp.${app.region}.${urlSuffix}/${this.cdk.userPool.userPoolId}`,
|
|
204
|
-
clientId: this.cdk.userPoolClient.userPoolClientId,
|
|
205
|
-
});
|
|
206
|
-
if (typeof identityPoolFederation === "object") {
|
|
207
|
-
const { auth0, amazon, apple, facebook, google, twitter } = identityPoolFederation;
|
|
208
|
-
////////////////////
|
|
209
|
-
// Handle OpenId Connect Providers (ie. Cognito)
|
|
210
|
-
////////////////////
|
|
211
|
-
if (auth0) {
|
|
212
|
-
if (!auth0.domain) {
|
|
213
|
-
throw new Error(`Auth0Domain: No Auth0 domain defined for the "${id}" Auth`);
|
|
214
|
-
}
|
|
215
|
-
if (!auth0.clientId) {
|
|
216
|
-
throw new Error(`Auth0ClientId: No Auth0 clientId defined for the "${id}" Auth`);
|
|
217
|
-
}
|
|
218
|
-
const provider = new OpenIdConnectProvider(this, "Auth0Provider", {
|
|
219
|
-
url: auth0.domain.startsWith("https://")
|
|
220
|
-
? auth0.domain
|
|
221
|
-
: `https://${auth0.domain}`,
|
|
222
|
-
clientIds: [auth0.clientId],
|
|
223
|
-
});
|
|
224
|
-
openIdConnectProviderArns.push(provider.openIdConnectProviderArn);
|
|
225
|
-
}
|
|
226
|
-
////////////////////
|
|
227
|
-
// Handle Social Identity Providers
|
|
228
|
-
////////////////////
|
|
229
|
-
if (amazon) {
|
|
230
|
-
if (!amazon.appId) {
|
|
231
|
-
throw new Error(`AmazonAppId: No Amazon appId defined for the "${id}" Auth`);
|
|
232
|
-
}
|
|
233
|
-
supportedLoginProviders["www.amazon.com"] = amazon.appId;
|
|
234
|
-
}
|
|
235
|
-
if (facebook) {
|
|
236
|
-
if (!facebook.appId) {
|
|
237
|
-
throw new Error(`FacebookAppId: No Facebook appId defined for the "${id}" Auth`);
|
|
238
|
-
}
|
|
239
|
-
supportedLoginProviders["graph.facebook.com"] = facebook.appId;
|
|
240
|
-
}
|
|
241
|
-
if (google) {
|
|
242
|
-
if (!google.clientId) {
|
|
243
|
-
throw new Error(`GoogleClientId: No Google appId defined for the "${id}" Auth`);
|
|
244
|
-
}
|
|
245
|
-
supportedLoginProviders["accounts.google.com"] = google.clientId;
|
|
246
|
-
}
|
|
247
|
-
if (twitter) {
|
|
248
|
-
if (!twitter.consumerKey) {
|
|
249
|
-
throw new Error(`TwitterConsumerKey: No Twitter consumer key defined for the "${id}" Auth`);
|
|
250
|
-
}
|
|
251
|
-
if (!twitter.consumerSecret) {
|
|
252
|
-
throw new Error(`TwitterConsumerSecret: No Twitter consumer secret defined for the "${id}" Auth`);
|
|
253
|
-
}
|
|
254
|
-
supportedLoginProviders["api.twitter.com"] = `${twitter.consumerKey};${twitter.consumerSecret}`;
|
|
255
|
-
}
|
|
256
|
-
if (apple) {
|
|
257
|
-
if (!apple.servicesId) {
|
|
258
|
-
throw new Error(`AppleServicesId: No Apple servicesId defined for the "${id}" Auth`);
|
|
259
|
-
}
|
|
260
|
-
supportedLoginProviders["appleid.apple.com"] = apple.servicesId;
|
|
261
|
-
}
|
|
262
|
-
}
|
|
263
|
-
// Create Cognito Identity Pool
|
|
264
|
-
const identityPoolProps = typeof identityPoolFederation === "object"
|
|
265
|
-
? identityPoolFederation.cdk?.cfnIdentityPool || {}
|
|
266
|
-
: {};
|
|
267
|
-
this.cdk.cfnIdentityPool = new CfnIdentityPool(this, "IdentityPool", {
|
|
268
|
-
identityPoolName: app.logicalPrefixedName(id),
|
|
269
|
-
allowUnauthenticatedIdentities: true,
|
|
270
|
-
cognitoIdentityProviders,
|
|
271
|
-
supportedLoginProviders,
|
|
272
|
-
openIdConnectProviderArns,
|
|
273
|
-
...identityPoolProps,
|
|
274
|
-
});
|
|
275
|
-
this.cdk.authRole = this.createAuthRole(this.cdk.cfnIdentityPool);
|
|
276
|
-
this.cdk.unauthRole = this.createUnauthRole(this.cdk.cfnIdentityPool);
|
|
277
|
-
// Attach roles to Identity Pool
|
|
278
|
-
this.cdk.cfnIdentityPoolRoleAttachment = new CfnIdentityPoolRoleAttachment(this, "IdentityPoolRoleAttachment", {
|
|
279
|
-
identityPoolId: this.cdk.cfnIdentityPool.ref,
|
|
280
|
-
roles: {
|
|
281
|
-
authenticated: this.cdk.authRole.roleArn,
|
|
282
|
-
unauthenticated: this.cdk.unauthRole.roleArn,
|
|
283
|
-
},
|
|
284
|
-
});
|
|
285
|
-
}
|
|
286
|
-
addTriggers() {
|
|
287
|
-
const { triggers, defaults } = this.props;
|
|
288
|
-
if (!triggers || Object.keys(triggers).length === 0) {
|
|
289
|
-
return;
|
|
290
|
-
}
|
|
291
|
-
// Validate cognito user pool is not imported
|
|
292
|
-
// ie. imported IUserPool does not have the "addTrigger" function
|
|
293
|
-
if (!this.cdk.userPool.addTrigger) {
|
|
294
|
-
throw new Error(`Cannot add triggers when the "userPool" is imported.`);
|
|
295
|
-
}
|
|
296
|
-
Object.entries(triggers).forEach(([triggerKey, triggerValue]) => this.addTrigger(this, triggerKey, triggerValue, defaults?.function));
|
|
297
|
-
}
|
|
298
|
-
addTrigger(scope, triggerKey, triggerValue, functionProps) {
|
|
299
|
-
// Validate cognito user pool is defined
|
|
300
|
-
if (!this.cdk.userPool) {
|
|
301
|
-
throw new Error(`Triggers cannot be added. No Cognito UserPool defined for the Cognito construct.`);
|
|
302
|
-
}
|
|
303
|
-
// Create Function
|
|
304
|
-
const lambda = Fn.fromDefinition(scope, triggerKey, triggerValue, functionProps, `The "defaults.function" cannot be applied if an instance of a Function construct is passed in. Make sure to define all the triggers using FunctionProps, so the Cognito construct can apply the "defaults.function" to them.`);
|
|
305
|
-
// Create trigger
|
|
306
|
-
const operation = CognitoUserPoolTriggerOperationMapping[triggerKey];
|
|
307
|
-
this.cdk.userPool.addTrigger(operation, lambda);
|
|
308
|
-
// Store function
|
|
309
|
-
this.functions[triggerKey] = lambda;
|
|
310
|
-
return lambda;
|
|
311
|
-
}
|
|
312
|
-
createAuthRole(identityPool) {
|
|
313
|
-
const identityName = this.cognitoIdentityName();
|
|
314
|
-
const role = new Role(this, "IdentityPoolAuthRole", {
|
|
315
|
-
assumedBy: new FederatedPrincipal(identityName, {
|
|
316
|
-
StringEquals: {
|
|
317
|
-
[`${identityName}:aud`]: identityPool.ref,
|
|
318
|
-
},
|
|
319
|
-
"ForAnyValue:StringLike": {
|
|
320
|
-
[`${identityName}:amr`]: "authenticated",
|
|
321
|
-
},
|
|
322
|
-
}, "sts:AssumeRoleWithWebIdentity"),
|
|
323
|
-
});
|
|
324
|
-
role.addToPolicy(new PolicyStatement({
|
|
325
|
-
effect: Effect.ALLOW,
|
|
326
|
-
actions: [
|
|
327
|
-
"mobileanalytics:PutEvents",
|
|
328
|
-
"cognito-sync:*",
|
|
329
|
-
"cognito-identity:*",
|
|
330
|
-
],
|
|
331
|
-
resources: ["*"],
|
|
332
|
-
}));
|
|
333
|
-
return role;
|
|
334
|
-
}
|
|
335
|
-
createUnauthRole(identityPool) {
|
|
336
|
-
const identityName = this.cognitoIdentityName();
|
|
337
|
-
const role = new Role(this, "IdentityPoolUnauthRole", {
|
|
338
|
-
assumedBy: new FederatedPrincipal(identityName, {
|
|
339
|
-
StringEquals: {
|
|
340
|
-
[`${identityName}:aud`]: identityPool.ref,
|
|
341
|
-
},
|
|
342
|
-
"ForAnyValue:StringLike": {
|
|
343
|
-
[`${identityName}:amr`]: "unauthenticated",
|
|
344
|
-
},
|
|
345
|
-
}, "sts:AssumeRoleWithWebIdentity"),
|
|
346
|
-
});
|
|
347
|
-
role.addToPolicy(new PolicyStatement({
|
|
348
|
-
effect: Effect.ALLOW,
|
|
349
|
-
actions: ["mobileanalytics:PutEvents", "cognito-sync:*"],
|
|
350
|
-
resources: ["*"],
|
|
351
|
-
}));
|
|
352
|
-
return role;
|
|
353
|
-
}
|
|
354
|
-
buildSignInAliases(login) {
|
|
355
|
-
if (!login) {
|
|
356
|
-
return;
|
|
357
|
-
}
|
|
358
|
-
return {
|
|
359
|
-
email: login.includes("email"),
|
|
360
|
-
phone: login.includes("phone"),
|
|
361
|
-
username: login.includes("username"),
|
|
362
|
-
preferredUsername: login.includes("preferredUsername"),
|
|
363
|
-
};
|
|
364
|
-
}
|
|
365
|
-
cognitoIdentityName() {
|
|
366
|
-
return Stack.of(this).region.startsWith("us-gov-")
|
|
367
|
-
? "cognito-identity-us-gov.amazonaws.com"
|
|
368
|
-
: "cognito-identity.amazonaws.com";
|
|
369
|
-
}
|
|
370
|
-
}
|
package/constructs/Config.d.ts
DELETED
package/constructs/Config.js
DELETED
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
import { Construct } from "constructs";
|
|
2
|
-
import { Stack as CDKStack } from "aws-cdk-lib/core";
|
|
3
|
-
import { FunctionBindingProps } from "./util/functionBinding.js";
|
|
4
|
-
export interface SSTConstructMetadata<T extends string = string, D extends Record<string, any> = Record<string, any>, L extends Record<string, any> = Record<string, any>> {
|
|
5
|
-
type: T;
|
|
6
|
-
data: D;
|
|
7
|
-
local?: L;
|
|
8
|
-
}
|
|
9
|
-
export interface SSTConstruct extends Construct {
|
|
10
|
-
id: string;
|
|
11
|
-
getConstructMetadata(): SSTConstructMetadata;
|
|
12
|
-
getFunctionBinding(): FunctionBindingProps | undefined;
|
|
13
|
-
}
|
|
14
|
-
export declare function getFunctionRef(fn?: any): {
|
|
15
|
-
node: string;
|
|
16
|
-
stack: string;
|
|
17
|
-
} | undefined;
|
|
18
|
-
export declare function isConstruct(construct: any): boolean;
|
|
19
|
-
export declare function isStackConstruct(construct: any): construct is CDKStack;
|
|
20
|
-
export declare function isSSTConstruct(construct: any): construct is SSTConstruct;
|
|
21
|
-
export declare function isSSTDebugStack(construct: any): construct is CDKStack;
|
|
22
|
-
export declare function isCDKConstructOf(construct: any, moduleName: string): construct is Construct;
|
|
23
|
-
export declare function isCDKConstruct(construct: any): construct is Construct;
|
package/constructs/Construct.js
DELETED
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
import { Function as Fn } from "aws-cdk-lib/aws-lambda";
|
|
2
|
-
import { Stack } from "./Stack.js";
|
|
3
|
-
const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
|
|
4
|
-
export function getFunctionRef(fn) {
|
|
5
|
-
if (!fn)
|
|
6
|
-
return undefined;
|
|
7
|
-
if (!(fn instanceof Fn))
|
|
8
|
-
return undefined;
|
|
9
|
-
return {
|
|
10
|
-
node: fn.node.addr,
|
|
11
|
-
stack: Stack.of(fn).stackName,
|
|
12
|
-
};
|
|
13
|
-
}
|
|
14
|
-
export function isConstruct(construct) {
|
|
15
|
-
return isSSTConstruct(construct) || isCDKConstruct(construct);
|
|
16
|
-
}
|
|
17
|
-
export function isStackConstruct(construct) {
|
|
18
|
-
return isCDKConstructOf(construct, "aws-cdk-lib.Stack");
|
|
19
|
-
}
|
|
20
|
-
export function isSSTConstruct(construct) {
|
|
21
|
-
return typeof construct === "object" && "getConstructMetadata" in construct;
|
|
22
|
-
}
|
|
23
|
-
export function isSSTDebugStack(construct) {
|
|
24
|
-
return (isStackConstruct(construct) && construct.constructor.name === "DebugStack");
|
|
25
|
-
}
|
|
26
|
-
export function isCDKConstructOf(construct, moduleName) {
|
|
27
|
-
// We need to check if construct is an CDK construct. To do that:
|
|
28
|
-
// - we cannot use the `construct instanceof` check because ie. the PolicyStatement
|
|
29
|
-
// instance in the user's app might come from a different npm package version
|
|
30
|
-
// - we cannot use the `construct.constructor.name` check because the constructor
|
|
31
|
-
// name can be prefixed with a number ie. PolicyStatement2
|
|
32
|
-
//
|
|
33
|
-
// Therefore we are going to get the constructor's fqn. The constructor for a CDK
|
|
34
|
-
// construct looks like:
|
|
35
|
-
// [class Bucket2 extends BucketBase] {
|
|
36
|
-
// [Symbol(jsii.rtti)]: { fqn: '@aws-cdk/aws-s3.Bucket', version: '1.91.0' }
|
|
37
|
-
// }
|
|
38
|
-
// We will check against `fqn`.
|
|
39
|
-
const fqn = construct?.constructor?.[JSII_RTTI_SYMBOL_1]?.fqn;
|
|
40
|
-
return typeof fqn === "string" && fqn === moduleName;
|
|
41
|
-
}
|
|
42
|
-
export function isCDKConstruct(construct) {
|
|
43
|
-
const fqn = construct?.constructor?.[JSII_RTTI_SYMBOL_1]?.fqn;
|
|
44
|
-
return (typeof fqn === "string" &&
|
|
45
|
-
(fqn.startsWith("@aws-cdk/") || fqn.startsWith("aws-cdk-lib")));
|
|
46
|
-
}
|