@takumi-stack/core 1.0.0 → 1.0.1
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/common/coordinator.d.ts +18 -0
- package/.dist/common/index.d.ts +6 -0
- package/.dist/common/modifier.d.ts +4 -0
- package/.dist/common/naming/get-deploy-config.d.ts +5 -0
- package/.dist/common/naming/get-domain.d.ts +8 -0
- package/.dist/common/naming/get-function-entry.d.ts +3 -0
- package/.dist/common/naming/get-logical-name.d.ts +2 -0
- package/.dist/common/naming/get-resource-name.d.ts +26 -0
- package/.dist/common/naming/get-service-name.d.ts +9 -0
- package/.dist/common/naming/index.d.ts +8 -0
- package/.dist/common/naming/string-parser.d.ts +4 -0
- package/.dist/common/service.d.ts +21 -0
- package/.dist/common/synth/account-mapping.d.ts +2 -0
- package/.dist/common/synth/assume-role.d.ts +17 -0
- package/.dist/common/synth/get-global-props.d.ts +4 -0
- package/.dist/common/synth/get-service-props.d.ts +3 -0
- package/.dist/common/synth/index.d.ts +8 -0
- package/.dist/common/synth/pre-script.d.ts +21 -0
- package/.dist/common/synth/props-types.d.ts +41 -0
- package/.dist/common/synth/synth-error.d.ts +7 -0
- package/.dist/index.d.ts +4 -0
- package/.dist/package.json +43 -0
- package/.dist/prefab/analytics/events/handlers/ingestion-transform/handler.d.ts +3 -0
- package/.dist/prefab/analytics/events/index.d.ts +28 -0
- package/.dist/prefab/analytics/events/index.d.ts.map +1 -0
- package/.dist/prefab/analytics/events/index.js +163 -0
- package/.dist/prefab/analytics/events/index.js.map +1 -0
- package/.dist/prefab/analytics/index.d.ts +2 -0
- package/.dist/prefab/auth/cognito-pool/index.d.ts +57 -0
- package/.dist/prefab/auth/cognito-pool/index.d.ts.map +1 -0
- package/.dist/prefab/auth/cognito-pool/index.js.map +1 -0
- package/.dist/prefab/auth/index.d.ts +2 -0
- package/.dist/prefab/cdn/cdn-api/index.d.ts +34 -0
- package/.dist/prefab/cdn/cdn-api/index.d.ts.map +1 -0
- package/.dist/prefab/cdn/cdn-api/index.js +153 -0
- package/.dist/prefab/cdn/cdn-api/index.js.map +1 -0
- package/.dist/prefab/cdn/cdn-asset/index.d.ts +24 -0
- package/.dist/prefab/cdn/cdn-asset/index.d.ts.map +1 -0
- package/.dist/prefab/cdn/cdn-asset/index.js +96 -0
- package/.dist/prefab/cdn/cdn-asset/index.js.map +1 -0
- package/.dist/prefab/cdn/cdn-spa/index.d.ts +24 -0
- package/.dist/prefab/cdn/cdn-spa/index.d.ts.map +1 -0
- package/.dist/prefab/cdn/cdn-spa/index.js +138 -0
- package/.dist/prefab/cdn/cdn-spa/index.js.map +1 -0
- package/.dist/prefab/cdn/cdn-ssr/index.d.ts +33 -0
- package/.dist/prefab/cdn/cdn-ssr/index.d.ts.map +1 -0
- package/.dist/prefab/cdn/cdn-ssr/index.js +271 -0
- package/.dist/prefab/cdn/cdn-ssr/index.js.map +1 -0
- package/.dist/prefab/cdn/index.d.ts +5 -0
- package/.dist/prefab/compute/fargate/cluster.d.ts +13 -0
- package/.dist/prefab/compute/fargate/cluster.d.ts.map +1 -0
- package/.dist/prefab/compute/fargate/cluster.js.map +1 -0
- package/.dist/prefab/compute/fargate/index.d.ts +3 -0
- package/.dist/prefab/compute/fargate/service.d.ts +45 -0
- package/.dist/prefab/compute/fargate/service.d.ts.map +1 -0
- package/.dist/prefab/compute/fargate/service.js.map +1 -0
- package/.dist/prefab/compute/function/api-function/api-aggregate.d.ts +31 -0
- package/.dist/prefab/compute/function/api-function/api-aggregate.d.ts.map +1 -0
- package/.dist/prefab/compute/function/api-function/api-aggregate.js +53 -0
- package/.dist/prefab/compute/function/api-function/api-aggregate.js.map +1 -0
- package/.dist/prefab/compute/function/api-function/api-function.d.ts +22 -0
- package/.dist/prefab/compute/function/api-function/api-function.d.ts.map +1 -0
- package/.dist/prefab/compute/function/api-function/api-function.js +44 -0
- package/.dist/prefab/compute/function/api-function/api-function.js.map +1 -0
- package/.dist/prefab/compute/function/api-function/index.d.ts +3 -0
- package/.dist/prefab/compute/function/base-function/index.d.ts +33 -0
- package/.dist/prefab/compute/function/base-function/index.d.ts.map +1 -0
- package/.dist/prefab/compute/function/base-function/index.js +70 -0
- package/.dist/prefab/compute/function/base-function/index.js.map +1 -0
- package/.dist/prefab/compute/function/cognito-function/cognito-aggregate.d.ts +15 -0
- package/.dist/prefab/compute/function/cognito-function/cognito-aggregate.d.ts.map +1 -0
- package/.dist/prefab/compute/function/cognito-function/cognito-aggregate.js.map +1 -0
- package/.dist/prefab/compute/function/cognito-function/cognito-function.d.ts +17 -0
- package/.dist/prefab/compute/function/cognito-function/cognito-function.d.ts.map +1 -0
- package/.dist/prefab/compute/function/cognito-function/cognito-function.js.map +1 -0
- package/.dist/prefab/compute/function/cognito-function/index.d.ts +3 -0
- package/.dist/prefab/compute/function/cron-function/cron-aggregate.d.ts +14 -0
- package/.dist/prefab/compute/function/cron-function/cron-aggregate.d.ts.map +1 -0
- package/.dist/prefab/compute/function/cron-function/cron-aggregate.js.map +1 -0
- package/.dist/prefab/compute/function/cron-function/cron-function.d.ts +15 -0
- package/.dist/prefab/compute/function/cron-function/cron-function.d.ts.map +1 -0
- package/.dist/prefab/compute/function/cron-function/cron-function.js +24 -0
- package/.dist/prefab/compute/function/cron-function/cron-function.js.map +1 -0
- package/.dist/prefab/compute/function/cron-function/index.d.ts +3 -0
- package/.dist/prefab/compute/function/event-function/EventAggregateParams.d.ts +9 -0
- package/.dist/prefab/compute/function/event-function/EventAggregateParams.d.ts.map +1 -0
- package/.dist/prefab/compute/function/event-function/EventAggregateParams.js +3 -0
- package/.dist/prefab/compute/function/event-function/EventAggregateParams.js.map +1 -0
- package/.dist/prefab/compute/function/event-function/event-aggregate.d.ts +16 -0
- package/.dist/prefab/compute/function/event-function/event-aggregate.d.ts.map +1 -0
- package/.dist/prefab/compute/function/event-function/event-aggregate.js.map +1 -0
- package/.dist/prefab/compute/function/event-function/event-function.d.ts +14 -0
- package/.dist/prefab/compute/function/event-function/event-function.d.ts.map +1 -0
- package/.dist/prefab/compute/function/event-function/event-function.js.map +1 -0
- package/.dist/prefab/compute/function/event-function/index.d.ts +3 -0
- package/.dist/prefab/compute/function/index.d.ts +8 -0
- package/.dist/prefab/compute/function/queue-function/index.d.ts +22 -0
- package/.dist/prefab/compute/function/queue-function/index.d.ts.map +1 -0
- package/.dist/prefab/compute/function/queue-function/index.js +46 -0
- package/.dist/prefab/compute/function/queue-function/index.js.map +1 -0
- package/.dist/prefab/compute/function/topic-function/index.d.ts +20 -0
- package/.dist/prefab/compute/function/topic-function/index.d.ts.map +1 -0
- package/.dist/prefab/compute/function/topic-function/index.js +23 -0
- package/.dist/prefab/compute/function/topic-function/index.js.map +1 -0
- package/.dist/prefab/compute/index.d.ts +3 -0
- package/.dist/prefab/database/dynamo/index.d.ts +13 -0
- package/.dist/prefab/database/dynamo/index.d.ts.map +1 -0
- package/.dist/prefab/database/dynamo/index.js.map +1 -0
- package/.dist/prefab/database/index.d.ts +4 -0
- package/.dist/prefab/database/rds/handlers/start-cluster/handler.d.ts +2 -0
- package/.dist/prefab/database/rds/handlers/stop-cluster/handler.d.ts +2 -0
- package/.dist/prefab/database/rds/index.d.ts +51 -0
- package/.dist/prefab/database/rds/index.d.ts.map +1 -0
- package/.dist/prefab/database/rds/index.js +223 -0
- package/.dist/prefab/database/rds/index.js.map +1 -0
- package/.dist/prefab/database/timestream/index.d.ts +3 -0
- package/.dist/prefab/database/timestream/timestream-database.d.ts +11 -0
- package/.dist/prefab/database/timestream/timestream-database.d.ts.map +1 -0
- package/.dist/prefab/database/timestream/timestream-database.js.map +1 -0
- package/.dist/prefab/database/timestream/timestream-table.d.ts +21 -0
- package/.dist/prefab/database/timestream/timestream-table.d.ts.map +1 -0
- package/.dist/prefab/database/timestream/timestream-table.js.map +1 -0
- package/.dist/prefab/gateway/alb-public/index.d.ts +41 -0
- package/.dist/prefab/gateway/alb-public/index.d.ts.map +1 -0
- package/.dist/prefab/gateway/alb-public/index.js.map +1 -0
- package/.dist/prefab/gateway/api-gateway/api-http.d.ts +27 -0
- package/.dist/prefab/gateway/api-gateway/api-http.d.ts.map +1 -0
- package/.dist/prefab/gateway/api-gateway/api-http.js.map +1 -0
- package/.dist/prefab/gateway/api-gateway/api-rest.d.ts +23 -0
- package/.dist/prefab/gateway/api-gateway/api-rest.d.ts.map +1 -0
- package/.dist/prefab/gateway/api-gateway/api-rest.js.map +1 -0
- package/.dist/prefab/gateway/api-gateway/index.d.ts +3 -0
- package/.dist/prefab/gateway/app-sync/index.d.ts +31 -0
- package/.dist/prefab/gateway/app-sync/index.d.ts.map +1 -0
- package/.dist/prefab/gateway/app-sync/index.js.map +1 -0
- package/.dist/prefab/gateway/app-sync/resolver-aggregate.d.ts +33 -0
- package/.dist/prefab/gateway/app-sync/resolver-aggregate.d.ts.map +1 -0
- package/.dist/prefab/gateway/app-sync/resolver-aggregate.js.map +1 -0
- package/.dist/prefab/gateway/app-sync/types.d.ts +29 -0
- package/.dist/prefab/gateway/app-sync/types.d.ts.map +1 -0
- package/.dist/prefab/gateway/index.d.ts +4 -0
- package/.dist/prefab/index.d.ts +11 -0
- package/.dist/prefab/integration/event-bus/index.d.ts +18 -0
- package/.dist/prefab/integration/event-bus/index.d.ts.map +1 -0
- package/.dist/prefab/integration/event-bus/index.js.map +1 -0
- package/.dist/prefab/integration/index.d.ts +4 -0
- package/.dist/prefab/integration/queue/index.d.ts +29 -0
- package/.dist/prefab/integration/queue/index.d.ts.map +1 -0
- package/.dist/prefab/integration/queue/index.js.map +1 -0
- package/.dist/prefab/integration/topic/index.d.ts +19 -0
- package/.dist/prefab/integration/topic/index.d.ts.map +1 -0
- package/.dist/prefab/integration/topic/index.js.map +1 -0
- package/.dist/prefab/networking/dns-domain-ref/index.d.ts +14 -0
- package/.dist/prefab/networking/dns-domain-ref/index.d.ts.map +1 -0
- package/.dist/prefab/networking/dns-domain-ref/index.js.map +1 -0
- package/.dist/prefab/networking/dns-subdomain-certificate/index.d.ts +11 -0
- package/.dist/prefab/networking/dns-subdomain-certificate/index.d.ts.map +1 -0
- package/.dist/prefab/networking/dns-subdomain-certificate/index.js.map +1 -0
- package/.dist/prefab/networking/dns-subdomain-hosted-zone/index.d.ts +10 -0
- package/.dist/prefab/networking/dns-subdomain-hosted-zone/index.d.ts.map +1 -0
- package/.dist/prefab/networking/dns-subdomain-hosted-zone/index.js.map +1 -0
- package/.dist/prefab/networking/index.d.ts +6 -0
- package/.dist/prefab/networking/vpc/index.d.ts +18 -0
- package/.dist/prefab/networking/vpc/index.d.ts.map +1 -0
- package/.dist/prefab/networking/vpc/index.js.map +1 -0
- package/.dist/prefab/networking/waf/index.d.ts +12 -0
- package/.dist/prefab/networking/waf/index.d.ts.map +1 -0
- package/.dist/prefab/networking/waf/index.js.map +1 -0
- package/.dist/prefab/storage/bucket/asset-bucket.d.ts +10 -0
- package/.dist/prefab/storage/bucket/asset-bucket.d.ts.map +1 -0
- package/.dist/prefab/storage/bucket/index.d.ts +3 -0
- package/.dist/prefab/storage/bucket/private-bucket.d.ts +32 -0
- package/.dist/prefab/storage/bucket/private-bucket.d.ts.map +1 -0
- package/.dist/prefab/storage/bucket/private-bucket.js.map +1 -0
- package/.dist/prefab/storage/index.d.ts +2 -0
- package/.dist/prefab/utils/config/frontend-env-builder.d.ts +12 -0
- package/.dist/prefab/utils/config/frontend-env-builder.d.ts.map +1 -0
- package/.dist/prefab/utils/config/frontend-env-builder.js.map +1 -0
- package/.dist/prefab/utils/config/index.d.ts +4 -0
- package/.dist/prefab/utils/config/parameter-secret.d.ts +19 -0
- package/.dist/prefab/utils/config/parameter-secret.d.ts.map +1 -0
- package/.dist/prefab/utils/config/parameter-secret.js.map +1 -0
- package/.dist/prefab/utils/config/runtime-secret.d.ts.map +1 -0
- package/.dist/prefab/utils/config/runtime-secret.js.map +1 -0
- package/.dist/prefab/utils/deploy-pipeline/catalog/integrations/index.d.ts +2 -0
- package/.dist/prefab/utils/deploy-pipeline/entities/index.d.ts +29 -0
- package/.dist/prefab/utils/deploy-pipeline/index.d.ts +13 -0
- package/.dist/prefab/utils/deploy-pipeline/index.d.ts.map +1 -0
- package/.dist/prefab/utils/deploy-pipeline/index.js.map +1 -0
- package/.dist/prefab/utils/deploy-pipeline/platform/get-pipeline-detail.d.ts +6 -0
- package/.dist/prefab/utils/deploy-pipeline/platform/get-slack-payload.d.ts +3 -0
- package/.dist/prefab/utils/duration.d.ts +2 -0
- package/.dist/prefab/utils/index.d.ts +5 -0
- package/.dist/prefab/utils/ses/index.d.ts +20 -0
- package/.dist/prefab/utils/ses/index.d.ts.map +1 -0
- package/.dist/prefab/utils/ses/index.js.map +1 -0
- package/.dist/script/config-command/bootstrap.d.ts +3 -0
- package/.dist/script/config-command/bootstrap.js +65 -0
- package/.dist/script/config-command/bootstrap.js.map +1 -0
- package/.dist/script/config-command/deploy-spa.d.ts +3 -0
- package/.dist/script/config-command/deploy-spa.d.ts.map +1 -0
- package/.dist/script/config-command/deploy-spa.js +82 -0
- package/.dist/script/config-command/deploy-spa.js.map +1 -0
- package/.dist/script/config-command/deploy.d.ts +3 -0
- package/.dist/script/config-command/deploy.js +26 -0
- package/.dist/script/config-command/deploy.js.map +1 -0
- package/.dist/script/config-command/destroy.d.ts +3 -0
- package/.dist/script/config-command/destroy.js +26 -0
- package/.dist/script/config-command/destroy.js.map +1 -0
- package/.dist/script/config-command/env-ssr.d.ts +3 -0
- package/.dist/script/config-command/env-ssr.js +49 -0
- package/.dist/script/config-command/env-ssr.js.map +1 -0
- package/.dist/script/config-command/invalidation-ssr.d.ts +3 -0
- package/.dist/script/config-command/invalidation-ssr.js +53 -0
- package/.dist/script/config-command/invalidation-ssr.js.map +1 -0
- package/.dist/script/config-command/rds-migration.d.ts +5 -0
- package/.dist/script/config-command/rds-migration.js.map +1 -0
- package/.dist/script/config-command/rds-sync.d.ts +3 -0
- package/.dist/script/config-command/rds-sync.js.map +1 -0
- package/.dist/script/config-command/ssm-connect.d.ts +3 -0
- package/.dist/script/config-command/ssm-connect.js.map +1 -0
- package/.dist/script/config-command/start-spa.d.ts +3 -0
- package/.dist/script/config-command/start-spa.js +53 -0
- package/.dist/script/config-command/start-spa.js.map +1 -0
- package/.dist/script/config-command/start-ssr.d.ts +3 -0
- package/.dist/script/config-command/start-ssr.js +53 -0
- package/.dist/script/config-command/start-ssr.js.map +1 -0
- package/.dist/script/config-command/synth.d.ts +3 -0
- package/.dist/script/config-command/synth.js +26 -0
- package/.dist/script/config-command/synth.js.map +1 -0
- package/.dist/script/index.d.ts +7 -0
- package/.dist/script/index.d.ts.map +1 -0
- package/.dist/script/output-command/create-user.d.ts +9 -0
- package/.dist/script/output-command/create-user.d.ts.map +1 -0
- package/.dist/script/output-command/create-user.js.map +1 -0
- package/.dist/script/output-command/gen-postman-env.d.ts +9 -0
- package/.dist/script/output-command/gen-postman-env.d.ts.map +1 -0
- package/.dist/script/output-command/gen-postman-env.js +55 -0
- package/.dist/script/output-command/gen-postman-env.js.map +1 -0
- package/.dist/tsconfig.tsbuildinfo +1 -0
- package/.prettierignore +10 -0
- package/.prettierrc.json +12 -0
- package/.turbo/turbo-build.log +5 -0
- package/.turbo/turbo-release.log +7 -0
- package/CHANGELOG.md +8 -0
- package/common/coordinator.ts +103 -0
- package/common/index.ts +5 -0
- package/common/modifier.ts +11 -0
- package/common/naming/get-deploy-config.ts +5 -0
- package/common/naming/get-domain.ts +14 -0
- package/common/naming/get-function-entry.ts +11 -0
- package/common/naming/get-logical-name.ts +3 -0
- package/common/naming/get-resource-name.ts +77 -0
- package/common/naming/get-service-name.ts +13 -0
- package/common/naming/index.ts +7 -0
- package/common/naming/string-parser.ts +17 -0
- package/common/service.ts +48 -0
- package/common/synth/account-mapping.ts +16 -0
- package/common/synth/assume-role.ts +39 -0
- package/common/synth/get-global-props.ts +46 -0
- package/common/synth/get-service-props.ts +16 -0
- package/common/synth/index.ts +7 -0
- package/common/synth/pre-script.ts +103 -0
- package/common/synth/props-types.ts +79 -0
- package/common/synth/synth-error.ts +13 -0
- package/index.ts +3 -0
- package/package.json +4 -5
- package/prefab/analytics/events/handlers/ingestion-transform/handler.ts +35 -0
- package/prefab/analytics/events/index.ts +192 -0
- package/prefab/analytics/index.ts +1 -0
- package/prefab/auth/cognito-pool/index.ts +263 -0
- package/prefab/auth/index.ts +1 -0
- package/prefab/cdn/cdn-api/index.ts +169 -0
- package/prefab/cdn/cdn-asset/index.ts +89 -0
- package/prefab/cdn/cdn-spa/index.ts +136 -0
- package/prefab/cdn/cdn-ssr/index.ts +288 -0
- package/prefab/cdn/index.ts +4 -0
- package/prefab/compute/fargate/cluster.ts +24 -0
- package/prefab/compute/fargate/index.ts +2 -0
- package/prefab/compute/fargate/service.ts +130 -0
- package/prefab/compute/function/api-function/api-aggregate.ts +73 -0
- package/prefab/compute/function/api-function/api-function.ts +63 -0
- package/prefab/compute/function/api-function/index.ts +2 -0
- package/prefab/compute/function/base-function/index.ts +102 -0
- package/prefab/compute/function/cognito-function/cognito-aggregate.ts +29 -0
- package/prefab/compute/function/cognito-function/cognito-function.ts +36 -0
- package/prefab/compute/function/cognito-function/index.ts +2 -0
- package/prefab/compute/function/cron-function/cron-aggregate.ts +28 -0
- package/prefab/compute/function/cron-function/cron-function.ts +32 -0
- package/prefab/compute/function/cron-function/index.ts +2 -0
- package/prefab/compute/function/event-function/EventAggregateParams.ts +9 -0
- package/prefab/compute/function/event-function/event-aggregate.ts +33 -0
- package/prefab/compute/function/event-function/event-function.ts +42 -0
- package/prefab/compute/function/event-function/index.ts +2 -0
- package/prefab/compute/function/index.ts +7 -0
- package/prefab/compute/function/queue-function/index.ts +67 -0
- package/prefab/compute/function/topic-function/index.ts +36 -0
- package/prefab/compute/index.ts +2 -0
- package/prefab/database/dynamo/index.ts +113 -0
- package/prefab/database/index.ts +3 -0
- package/prefab/database/rds/handlers/start-cluster/handler.ts +7 -0
- package/prefab/database/rds/handlers/stop-cluster/handler.ts +7 -0
- package/prefab/database/rds/index.ts +248 -0
- package/prefab/database/timestream/index.ts +2 -0
- package/prefab/database/timestream/timestream-database.ts +24 -0
- package/prefab/database/timestream/timestream-table.ts +76 -0
- package/prefab/gateway/alb-public/index.ts +124 -0
- package/prefab/gateway/api-gateway/api-http.ts +71 -0
- package/prefab/gateway/api-gateway/api-rest.ts +93 -0
- package/prefab/gateway/api-gateway/index.ts +2 -0
- package/prefab/gateway/app-sync/index.ts +117 -0
- package/prefab/gateway/app-sync/resolver-aggregate.ts +138 -0
- package/prefab/gateway/app-sync/types.ts +29 -0
- package/prefab/gateway/index.ts +3 -0
- package/prefab/index.ts +10 -0
- package/prefab/integration/event-bus/index.ts +52 -0
- package/prefab/integration/index.ts +3 -0
- package/prefab/integration/queue/index.ts +94 -0
- package/prefab/integration/topic/index.ts +57 -0
- package/prefab/networking/dns-domain-ref/index.ts +32 -0
- package/prefab/networking/dns-subdomain-certificate/index.ts +30 -0
- package/prefab/networking/dns-subdomain-hosted-zone/index.ts +30 -0
- package/prefab/networking/index.ts +5 -0
- package/prefab/networking/vpc/index.ts +39 -0
- package/prefab/networking/waf/index.ts +49 -0
- package/prefab/storage/bucket/asset-bucket.ts +24 -0
- package/prefab/storage/bucket/index.ts +2 -0
- package/prefab/storage/bucket/private-bucket.ts +74 -0
- package/prefab/storage/index.ts +1 -0
- package/prefab/utils/config/frontend-env-builder.ts +30 -0
- package/prefab/utils/config/index.ts +3 -0
- package/prefab/utils/config/parameter-secret.ts +52 -0
- package/prefab/utils/config/runtime-secret.ts +48 -0
- package/prefab/utils/deploy-pipeline/catalog/integrations/index.ts +1 -0
- package/prefab/utils/deploy-pipeline/catalog/integrations/slack.ts +23 -0
- package/prefab/utils/deploy-pipeline/entities/index.ts +23 -0
- package/prefab/utils/deploy-pipeline/handlers/send-to-slack/handler.ts +32 -0
- package/prefab/utils/deploy-pipeline/index.ts +172 -0
- package/prefab/utils/deploy-pipeline/platform/get-pipeline-detail.ts +31 -0
- package/prefab/utils/deploy-pipeline/platform/get-slack-payload.ts +38 -0
- package/prefab/utils/deploy-pipeline/platform/send-to-slack.ts +16 -0
- package/prefab/utils/duration.ts +1 -0
- package/prefab/utils/index.ts +4 -0
- package/prefab/utils/ses/index.ts +134 -0
- package/readme.md +78 -0
- package/script/config-command/bootstrap.ts +108 -0
- package/script/config-command/deploy-spa.ts +126 -0
- package/script/config-command/deploy.ts +50 -0
- package/script/config-command/destroy.ts +49 -0
- package/script/config-command/env-ssr.ts +85 -0
- package/script/config-command/invalidation-ssr.ts +88 -0
- package/script/config-command/rds-migration.ts +177 -0
- package/script/config-command/rds-sync.ts +108 -0
- package/script/config-command/ssm-connect.ts +129 -0
- package/script/config-command/start-spa.ts +93 -0
- package/script/config-command/start-ssr.ts +91 -0
- package/script/config-command/synth.ts +50 -0
- package/script/index.ts +86 -0
- package/script/output-command/create-user.ts +89 -0
- package/script/output-command/gen-postman-env.ts +75 -0
- package/tsconfig.json +26 -0
- package/common/coordinator.d.ts +0 -28
- package/common/index.d.ts +0 -6
- package/common/modifier.d.ts +0 -5
- package/common/naming/get-deploy-config.d.ts +0 -9
- package/common/naming/get-domain.d.ts +0 -9
- package/common/naming/get-function-entry.d.ts +0 -4
- package/common/naming/get-logical-name.d.ts +0 -2
- package/common/naming/get-resource-name.d.ts +0 -47
- package/common/naming/get-service-name.d.ts +0 -10
- package/common/naming/index.d.ts +0 -8
- package/common/naming/string-parser.d.ts +0 -4
- package/common/service.d.ts +0 -29
- package/common/synth/account-mapping.d.ts +0 -2
- package/common/synth/assume-role.d.ts +0 -18
- package/common/synth/get-global-props.d.ts +0 -16
- package/common/synth/get-service-props.d.ts +0 -11
- package/common/synth/index.d.ts +0 -8
- package/common/synth/pre-script.d.ts +0 -32
- package/common/synth/props-types.d.ts +0 -60
- package/common/synth/synth-error.d.ts +0 -8
- package/index.d.ts +0 -4
- package/prefab/analytics/events/handlers/ingestion-transform/handler.d.ts +0 -4
- package/prefab/analytics/events/index.d.ts +0 -31
- package/prefab/analytics/events/index.d.ts.map +0 -1
- package/prefab/analytics/events/index.js +0 -163
- package/prefab/analytics/events/index.js.map +0 -1
- package/prefab/analytics/index.d.ts +0 -2
- package/prefab/auth/cognito-pool/index.d.ts +0 -65
- package/prefab/auth/cognito-pool/index.d.ts.map +0 -1
- package/prefab/auth/cognito-pool/index.js.map +0 -1
- package/prefab/auth/index.d.ts +0 -2
- package/prefab/cdn/cdn-api/index.d.ts +0 -38
- package/prefab/cdn/cdn-api/index.d.ts.map +0 -1
- package/prefab/cdn/cdn-api/index.js +0 -153
- package/prefab/cdn/cdn-api/index.js.map +0 -1
- package/prefab/cdn/cdn-asset/index.d.ts +0 -27
- package/prefab/cdn/cdn-asset/index.d.ts.map +0 -1
- package/prefab/cdn/cdn-asset/index.js +0 -96
- package/prefab/cdn/cdn-asset/index.js.map +0 -1
- package/prefab/cdn/cdn-spa/index.d.ts +0 -27
- package/prefab/cdn/cdn-spa/index.d.ts.map +0 -1
- package/prefab/cdn/cdn-spa/index.js +0 -138
- package/prefab/cdn/cdn-spa/index.js.map +0 -1
- package/prefab/cdn/cdn-ssr/index.d.ts +0 -36
- package/prefab/cdn/cdn-ssr/index.d.ts.map +0 -1
- package/prefab/cdn/cdn-ssr/index.js +0 -271
- package/prefab/cdn/cdn-ssr/index.js.map +0 -1
- package/prefab/cdn/index.d.ts +0 -5
- package/prefab/compute/fargate/cluster.d.ts +0 -16
- package/prefab/compute/fargate/cluster.d.ts.map +0 -1
- package/prefab/compute/fargate/cluster.js.map +0 -1
- package/prefab/compute/fargate/index.d.ts +0 -3
- package/prefab/compute/fargate/service.d.ts +0 -49
- package/prefab/compute/fargate/service.d.ts.map +0 -1
- package/prefab/compute/fargate/service.js.map +0 -1
- package/prefab/compute/function/api-function/api-aggregate.d.ts +0 -32
- package/prefab/compute/function/api-function/api-aggregate.d.ts.map +0 -1
- package/prefab/compute/function/api-function/api-aggregate.js +0 -54
- package/prefab/compute/function/api-function/api-aggregate.js.map +0 -1
- package/prefab/compute/function/api-function/api-function.d.ts +0 -22
- package/prefab/compute/function/api-function/api-function.d.ts.map +0 -1
- package/prefab/compute/function/api-function/api-function.js +0 -45
- package/prefab/compute/function/api-function/api-function.js.map +0 -1
- package/prefab/compute/function/api-function/index.d.ts +0 -3
- package/prefab/compute/function/base-function/index.d.ts +0 -33
- package/prefab/compute/function/base-function/index.d.ts.map +0 -1
- package/prefab/compute/function/base-function/index.js +0 -70
- package/prefab/compute/function/base-function/index.js.map +0 -1
- package/prefab/compute/function/cognito-function/cognito-aggregate.d.ts +0 -18
- package/prefab/compute/function/cognito-function/cognito-aggregate.d.ts.map +0 -1
- package/prefab/compute/function/cognito-function/cognito-aggregate.js.map +0 -1
- package/prefab/compute/function/cognito-function/cognito-function.d.ts +0 -19
- package/prefab/compute/function/cognito-function/cognito-function.d.ts.map +0 -1
- package/prefab/compute/function/cognito-function/cognito-function.js.map +0 -1
- package/prefab/compute/function/cognito-function/index.d.ts +0 -3
- package/prefab/compute/function/cron-function/cron-aggregate.d.ts +0 -17
- package/prefab/compute/function/cron-function/cron-aggregate.d.ts.map +0 -1
- package/prefab/compute/function/cron-function/cron-aggregate.js.map +0 -1
- package/prefab/compute/function/cron-function/cron-function.d.ts +0 -17
- package/prefab/compute/function/cron-function/cron-function.d.ts.map +0 -1
- package/prefab/compute/function/cron-function/cron-function.js +0 -24
- package/prefab/compute/function/cron-function/cron-function.js.map +0 -1
- package/prefab/compute/function/cron-function/index.d.ts +0 -3
- package/prefab/compute/function/event-function/event-aggregate.d.ts +0 -20
- package/prefab/compute/function/event-function/event-aggregate.d.ts.map +0 -1
- package/prefab/compute/function/event-function/event-aggregate.js.map +0 -1
- package/prefab/compute/function/event-function/event-function.d.ts +0 -14
- package/prefab/compute/function/event-function/event-function.d.ts.map +0 -1
- package/prefab/compute/function/event-function/event-function.js.map +0 -1
- package/prefab/compute/function/event-function/index.d.ts +0 -3
- package/prefab/compute/function/index.d.ts +0 -8
- package/prefab/compute/function/queue-function/index.d.ts +0 -25
- package/prefab/compute/function/queue-function/index.d.ts.map +0 -1
- package/prefab/compute/function/queue-function/index.js +0 -46
- package/prefab/compute/function/queue-function/index.js.map +0 -1
- package/prefab/compute/function/topic-function/index.d.ts +0 -23
- package/prefab/compute/function/topic-function/index.d.ts.map +0 -1
- package/prefab/compute/function/topic-function/index.js +0 -23
- package/prefab/compute/function/topic-function/index.js.map +0 -1
- package/prefab/compute/index.d.ts +0 -3
- package/prefab/database/dynamo/index.d.ts +0 -14
- package/prefab/database/dynamo/index.d.ts.map +0 -1
- package/prefab/database/dynamo/index.js.map +0 -1
- package/prefab/database/index.d.ts +0 -4
- package/prefab/database/rds/handlers/start-cluster/handler.d.ts +0 -2
- package/prefab/database/rds/handlers/stop-cluster/handler.d.ts +0 -2
- package/prefab/database/rds/index.d.ts +0 -54
- package/prefab/database/rds/index.d.ts.map +0 -1
- package/prefab/database/rds/index.js +0 -223
- package/prefab/database/rds/index.js.map +0 -1
- package/prefab/database/timestream/index.d.ts +0 -3
- package/prefab/database/timestream/timestream-database.d.ts +0 -13
- package/prefab/database/timestream/timestream-database.d.ts.map +0 -1
- package/prefab/database/timestream/timestream-database.js.map +0 -1
- package/prefab/database/timestream/timestream-table.d.ts +0 -23
- package/prefab/database/timestream/timestream-table.d.ts.map +0 -1
- package/prefab/database/timestream/timestream-table.js.map +0 -1
- package/prefab/gateway/alb-public/index.d.ts +0 -44
- package/prefab/gateway/alb-public/index.d.ts.map +0 -1
- package/prefab/gateway/alb-public/index.js.map +0 -1
- package/prefab/gateway/api-gateway/api-http.d.ts +0 -27
- package/prefab/gateway/api-gateway/api-http.d.ts.map +0 -1
- package/prefab/gateway/api-gateway/api-http.js.map +0 -1
- package/prefab/gateway/api-gateway/api-rest.d.ts +0 -26
- package/prefab/gateway/api-gateway/api-rest.d.ts.map +0 -1
- package/prefab/gateway/api-gateway/api-rest.js.map +0 -1
- package/prefab/gateway/api-gateway/index.d.ts +0 -3
- package/prefab/gateway/app-sync/index.d.ts +0 -36
- package/prefab/gateway/app-sync/index.d.ts.map +0 -1
- package/prefab/gateway/app-sync/index.js.map +0 -1
- package/prefab/gateway/app-sync/resolver-aggregate.d.ts +0 -33
- package/prefab/gateway/app-sync/resolver-aggregate.d.ts.map +0 -1
- package/prefab/gateway/app-sync/resolver-aggregate.js.map +0 -1
- package/prefab/gateway/app-sync/types.d.ts +0 -29
- package/prefab/gateway/app-sync/types.d.ts.map +0 -1
- package/prefab/gateway/index.d.ts +0 -4
- package/prefab/index.d.ts +0 -11
- package/prefab/integration/event-bus/index.d.ts +0 -20
- package/prefab/integration/event-bus/index.d.ts.map +0 -1
- package/prefab/integration/event-bus/index.js.map +0 -1
- package/prefab/integration/index.d.ts +0 -4
- package/prefab/integration/queue/index.d.ts +0 -29
- package/prefab/integration/queue/index.d.ts.map +0 -1
- package/prefab/integration/queue/index.js.map +0 -1
- package/prefab/integration/topic/index.d.ts +0 -21
- package/prefab/integration/topic/index.d.ts.map +0 -1
- package/prefab/integration/topic/index.js.map +0 -1
- package/prefab/networking/dns-domain-ref/index.d.ts +0 -16
- package/prefab/networking/dns-domain-ref/index.d.ts.map +0 -1
- package/prefab/networking/dns-domain-ref/index.js.map +0 -1
- package/prefab/networking/dns-subdomain-certificate/index.d.ts +0 -13
- package/prefab/networking/dns-subdomain-certificate/index.d.ts.map +0 -1
- package/prefab/networking/dns-subdomain-certificate/index.js.map +0 -1
- package/prefab/networking/dns-subdomain-hosted-zone/index.d.ts +0 -12
- package/prefab/networking/dns-subdomain-hosted-zone/index.d.ts.map +0 -1
- package/prefab/networking/dns-subdomain-hosted-zone/index.js.map +0 -1
- package/prefab/networking/index.d.ts +0 -6
- package/prefab/networking/vpc/index.d.ts +0 -20
- package/prefab/networking/vpc/index.d.ts.map +0 -1
- package/prefab/networking/vpc/index.js.map +0 -1
- package/prefab/networking/waf/index.d.ts +0 -14
- package/prefab/networking/waf/index.d.ts.map +0 -1
- package/prefab/networking/waf/index.js.map +0 -1
- package/prefab/storage/bucket/asset-bucket.d.ts +0 -12
- package/prefab/storage/bucket/asset-bucket.d.ts.map +0 -1
- package/prefab/storage/bucket/index.d.ts +0 -3
- package/prefab/storage/bucket/private-bucket.d.ts +0 -26
- package/prefab/storage/bucket/private-bucket.d.ts.map +0 -1
- package/prefab/storage/bucket/private-bucket.js.map +0 -1
- package/prefab/storage/index.d.ts +0 -2
- package/prefab/utils/config/frontend-env-builder.d.ts +0 -14
- package/prefab/utils/config/frontend-env-builder.d.ts.map +0 -1
- package/prefab/utils/config/frontend-env-builder.js.map +0 -1
- package/prefab/utils/config/index.d.ts +0 -4
- package/prefab/utils/config/parameter-secret.d.ts +0 -21
- package/prefab/utils/config/parameter-secret.d.ts.map +0 -1
- package/prefab/utils/config/parameter-secret.js.map +0 -1
- package/prefab/utils/config/runtime-secret.d.ts.map +0 -1
- package/prefab/utils/config/runtime-secret.js.map +0 -1
- package/prefab/utils/deploy-pipeline/catalog/integrations/index.d.ts +0 -2
- package/prefab/utils/deploy-pipeline/entities/index.d.ts +0 -29
- package/prefab/utils/deploy-pipeline/index.d.ts +0 -15
- package/prefab/utils/deploy-pipeline/index.d.ts.map +0 -1
- package/prefab/utils/deploy-pipeline/index.js.map +0 -1
- package/prefab/utils/deploy-pipeline/platform/get-pipeline-detail.d.ts +0 -6
- package/prefab/utils/deploy-pipeline/platform/get-slack-payload.d.ts +0 -4
- package/prefab/utils/duration.d.ts +0 -2
- package/prefab/utils/index.d.ts +0 -5
- package/prefab/utils/ses/index.d.ts +0 -22
- package/prefab/utils/ses/index.d.ts.map +0 -1
- package/prefab/utils/ses/index.js.map +0 -1
- package/script/config-command/bootstrap.d.ts +0 -4
- package/script/config-command/bootstrap.js +0 -66
- package/script/config-command/bootstrap.js.map +0 -1
- package/script/config-command/deploy-spa.d.ts +0 -4
- package/script/config-command/deploy-spa.d.ts.map +0 -1
- package/script/config-command/deploy-spa.js +0 -84
- package/script/config-command/deploy-spa.js.map +0 -1
- package/script/config-command/deploy.d.ts +0 -4
- package/script/config-command/deploy.js +0 -26
- package/script/config-command/deploy.js.map +0 -1
- package/script/config-command/destroy.d.ts +0 -4
- package/script/config-command/destroy.js +0 -26
- package/script/config-command/destroy.js.map +0 -1
- package/script/config-command/env-ssr.d.ts +0 -4
- package/script/config-command/env-ssr.js +0 -51
- package/script/config-command/env-ssr.js.map +0 -1
- package/script/config-command/invalidation-ssr.d.ts +0 -4
- package/script/config-command/invalidation-ssr.js +0 -55
- package/script/config-command/invalidation-ssr.js.map +0 -1
- package/script/config-command/rds-migration.d.ts +0 -7
- package/script/config-command/rds-migration.js.map +0 -1
- package/script/config-command/rds-sync.d.ts +0 -4
- package/script/config-command/rds-sync.js.map +0 -1
- package/script/config-command/ssm-connect.d.ts +0 -4
- package/script/config-command/ssm-connect.js.map +0 -1
- package/script/config-command/start-spa.d.ts +0 -4
- package/script/config-command/start-spa.js +0 -55
- package/script/config-command/start-spa.js.map +0 -1
- package/script/config-command/start-ssr.d.ts +0 -4
- package/script/config-command/start-ssr.js +0 -55
- package/script/config-command/start-ssr.js.map +0 -1
- package/script/config-command/synth.d.ts +0 -4
- package/script/config-command/synth.js +0 -26
- package/script/config-command/synth.js.map +0 -1
- package/script/index.d.ts +0 -25
- package/script/index.d.ts.map +0 -1
- package/script/output-command/create-user.d.ts +0 -9
- package/script/output-command/create-user.d.ts.map +0 -1
- package/script/output-command/create-user.js.map +0 -1
- package/script/output-command/gen-postman-env.d.ts +0 -28
- package/script/output-command/gen-postman-env.d.ts.map +0 -1
- package/script/output-command/gen-postman-env.js +0 -56
- package/script/output-command/gen-postman-env.js.map +0 -1
- package/tsconfig.tsbuildinfo +0 -1
- /package/{common → .dist/common}/coordinator.d.ts.map +0 -0
- /package/{common → .dist/common}/coordinator.js +0 -0
- /package/{common → .dist/common}/coordinator.js.map +0 -0
- /package/{common → .dist/common}/index.d.ts.map +0 -0
- /package/{common → .dist/common}/index.js +0 -0
- /package/{common → .dist/common}/index.js.map +0 -0
- /package/{common → .dist/common}/modifier.d.ts.map +0 -0
- /package/{common → .dist/common}/modifier.js +0 -0
- /package/{common → .dist/common}/modifier.js.map +0 -0
- /package/{common → .dist/common}/naming/get-deploy-config.d.ts.map +0 -0
- /package/{common → .dist/common}/naming/get-deploy-config.js +0 -0
- /package/{common → .dist/common}/naming/get-deploy-config.js.map +0 -0
- /package/{common → .dist/common}/naming/get-domain.d.ts.map +0 -0
- /package/{common → .dist/common}/naming/get-domain.js +0 -0
- /package/{common → .dist/common}/naming/get-domain.js.map +0 -0
- /package/{common → .dist/common}/naming/get-function-entry.d.ts.map +0 -0
- /package/{common → .dist/common}/naming/get-function-entry.js +0 -0
- /package/{common → .dist/common}/naming/get-function-entry.js.map +0 -0
- /package/{common → .dist/common}/naming/get-logical-name.d.ts.map +0 -0
- /package/{common → .dist/common}/naming/get-logical-name.js +0 -0
- /package/{common → .dist/common}/naming/get-logical-name.js.map +0 -0
- /package/{common → .dist/common}/naming/get-resource-name.d.ts.map +0 -0
- /package/{common → .dist/common}/naming/get-resource-name.js +0 -0
- /package/{common → .dist/common}/naming/get-resource-name.js.map +0 -0
- /package/{common → .dist/common}/naming/get-service-name.d.ts.map +0 -0
- /package/{common → .dist/common}/naming/get-service-name.js +0 -0
- /package/{common → .dist/common}/naming/get-service-name.js.map +0 -0
- /package/{common → .dist/common}/naming/index.d.ts.map +0 -0
- /package/{common → .dist/common}/naming/index.js +0 -0
- /package/{common → .dist/common}/naming/index.js.map +0 -0
- /package/{common → .dist/common}/naming/string-parser.d.ts.map +0 -0
- /package/{common → .dist/common}/naming/string-parser.js +0 -0
- /package/{common → .dist/common}/naming/string-parser.js.map +0 -0
- /package/{common → .dist/common}/service.d.ts.map +0 -0
- /package/{common → .dist/common}/service.js +0 -0
- /package/{common → .dist/common}/service.js.map +0 -0
- /package/{common → .dist/common}/synth/account-mapping.d.ts.map +0 -0
- /package/{common → .dist/common}/synth/account-mapping.js +0 -0
- /package/{common → .dist/common}/synth/account-mapping.js.map +0 -0
- /package/{common → .dist/common}/synth/assume-role.d.ts.map +0 -0
- /package/{common → .dist/common}/synth/assume-role.js +0 -0
- /package/{common → .dist/common}/synth/assume-role.js.map +0 -0
- /package/{common → .dist/common}/synth/get-global-props.d.ts.map +0 -0
- /package/{common → .dist/common}/synth/get-global-props.js +0 -0
- /package/{common → .dist/common}/synth/get-global-props.js.map +0 -0
- /package/{common → .dist/common}/synth/get-service-props.d.ts.map +0 -0
- /package/{common → .dist/common}/synth/get-service-props.js +0 -0
- /package/{common → .dist/common}/synth/get-service-props.js.map +0 -0
- /package/{common → .dist/common}/synth/index.d.ts.map +0 -0
- /package/{common → .dist/common}/synth/index.js +0 -0
- /package/{common → .dist/common}/synth/index.js.map +0 -0
- /package/{common → .dist/common}/synth/pre-script.d.ts.map +0 -0
- /package/{common → .dist/common}/synth/pre-script.js +0 -0
- /package/{common → .dist/common}/synth/pre-script.js.map +0 -0
- /package/{common → .dist/common}/synth/props-types.d.ts.map +0 -0
- /package/{common → .dist/common}/synth/props-types.js +0 -0
- /package/{common → .dist/common}/synth/props-types.js.map +0 -0
- /package/{common → .dist/common}/synth/synth-error.d.ts.map +0 -0
- /package/{common → .dist/common}/synth/synth-error.js +0 -0
- /package/{common → .dist/common}/synth/synth-error.js.map +0 -0
- /package/{index.d.ts.map → .dist/index.d.ts.map} +0 -0
- /package/{index.js → .dist/index.js} +0 -0
- /package/{index.js.map → .dist/index.js.map} +0 -0
- /package/{prefab → .dist/prefab}/analytics/events/handlers/ingestion-transform/handler.d.ts.map +0 -0
- /package/{prefab → .dist/prefab}/analytics/events/handlers/ingestion-transform/handler.js +0 -0
- /package/{prefab → .dist/prefab}/analytics/events/handlers/ingestion-transform/handler.js.map +0 -0
- /package/{prefab → .dist/prefab}/analytics/index.d.ts.map +0 -0
- /package/{prefab → .dist/prefab}/analytics/index.js +0 -0
- /package/{prefab → .dist/prefab}/analytics/index.js.map +0 -0
- /package/{prefab → .dist/prefab}/auth/cognito-pool/index.js +0 -0
- /package/{prefab → .dist/prefab}/auth/index.d.ts.map +0 -0
- /package/{prefab → .dist/prefab}/auth/index.js +0 -0
- /package/{prefab → .dist/prefab}/auth/index.js.map +0 -0
- /package/{prefab → .dist/prefab}/cdn/index.d.ts.map +0 -0
- /package/{prefab → .dist/prefab}/cdn/index.js +0 -0
- /package/{prefab → .dist/prefab}/cdn/index.js.map +0 -0
- /package/{prefab → .dist/prefab}/compute/fargate/cluster.js +0 -0
- /package/{prefab → .dist/prefab}/compute/fargate/index.d.ts.map +0 -0
- /package/{prefab → .dist/prefab}/compute/fargate/index.js +0 -0
- /package/{prefab → .dist/prefab}/compute/fargate/index.js.map +0 -0
- /package/{prefab → .dist/prefab}/compute/fargate/service.js +0 -0
- /package/{prefab → .dist/prefab}/compute/function/api-function/index.d.ts.map +0 -0
- /package/{prefab → .dist/prefab}/compute/function/api-function/index.js +0 -0
- /package/{prefab → .dist/prefab}/compute/function/api-function/index.js.map +0 -0
- /package/{prefab → .dist/prefab}/compute/function/cognito-function/cognito-aggregate.js +0 -0
- /package/{prefab → .dist/prefab}/compute/function/cognito-function/cognito-function.js +0 -0
- /package/{prefab → .dist/prefab}/compute/function/cognito-function/index.d.ts.map +0 -0
- /package/{prefab → .dist/prefab}/compute/function/cognito-function/index.js +0 -0
- /package/{prefab → .dist/prefab}/compute/function/cognito-function/index.js.map +0 -0
- /package/{prefab → .dist/prefab}/compute/function/cron-function/cron-aggregate.js +0 -0
- /package/{prefab → .dist/prefab}/compute/function/cron-function/index.d.ts.map +0 -0
- /package/{prefab → .dist/prefab}/compute/function/cron-function/index.js +0 -0
- /package/{prefab → .dist/prefab}/compute/function/cron-function/index.js.map +0 -0
- /package/{prefab → .dist/prefab}/compute/function/event-function/event-aggregate.js +0 -0
- /package/{prefab → .dist/prefab}/compute/function/event-function/event-function.js +0 -0
- /package/{prefab → .dist/prefab}/compute/function/event-function/index.d.ts.map +0 -0
- /package/{prefab → .dist/prefab}/compute/function/event-function/index.js +0 -0
- /package/{prefab → .dist/prefab}/compute/function/event-function/index.js.map +0 -0
- /package/{prefab → .dist/prefab}/compute/function/index.d.ts.map +0 -0
- /package/{prefab → .dist/prefab}/compute/function/index.js +0 -0
- /package/{prefab → .dist/prefab}/compute/function/index.js.map +0 -0
- /package/{prefab → .dist/prefab}/compute/index.d.ts.map +0 -0
- /package/{prefab → .dist/prefab}/compute/index.js +0 -0
- /package/{prefab → .dist/prefab}/compute/index.js.map +0 -0
- /package/{prefab → .dist/prefab}/database/dynamo/index.js +0 -0
- /package/{prefab → .dist/prefab}/database/index.d.ts.map +0 -0
- /package/{prefab → .dist/prefab}/database/index.js +0 -0
- /package/{prefab → .dist/prefab}/database/index.js.map +0 -0
- /package/{prefab → .dist/prefab}/database/rds/handlers/start-cluster/handler.d.ts.map +0 -0
- /package/{prefab → .dist/prefab}/database/rds/handlers/start-cluster/handler.js +0 -0
- /package/{prefab → .dist/prefab}/database/rds/handlers/start-cluster/handler.js.map +0 -0
- /package/{prefab → .dist/prefab}/database/rds/handlers/stop-cluster/handler.d.ts.map +0 -0
- /package/{prefab → .dist/prefab}/database/rds/handlers/stop-cluster/handler.js +0 -0
- /package/{prefab → .dist/prefab}/database/rds/handlers/stop-cluster/handler.js.map +0 -0
- /package/{prefab → .dist/prefab}/database/timestream/index.d.ts.map +0 -0
- /package/{prefab → .dist/prefab}/database/timestream/index.js +0 -0
- /package/{prefab → .dist/prefab}/database/timestream/index.js.map +0 -0
- /package/{prefab → .dist/prefab}/database/timestream/timestream-database.js +0 -0
- /package/{prefab → .dist/prefab}/database/timestream/timestream-table.js +0 -0
- /package/{prefab → .dist/prefab}/gateway/alb-public/index.js +0 -0
- /package/{prefab → .dist/prefab}/gateway/api-gateway/api-http.js +0 -0
- /package/{prefab → .dist/prefab}/gateway/api-gateway/api-rest.js +0 -0
- /package/{prefab → .dist/prefab}/gateway/api-gateway/index.d.ts.map +0 -0
- /package/{prefab → .dist/prefab}/gateway/api-gateway/index.js +0 -0
- /package/{prefab → .dist/prefab}/gateway/api-gateway/index.js.map +0 -0
- /package/{prefab → .dist/prefab}/gateway/app-sync/index.js +0 -0
- /package/{prefab → .dist/prefab}/gateway/app-sync/resolver-aggregate.js +0 -0
- /package/{prefab → .dist/prefab}/gateway/app-sync/types.js +0 -0
- /package/{prefab → .dist/prefab}/gateway/app-sync/types.js.map +0 -0
- /package/{prefab → .dist/prefab}/gateway/index.d.ts.map +0 -0
- /package/{prefab → .dist/prefab}/gateway/index.js +0 -0
- /package/{prefab → .dist/prefab}/gateway/index.js.map +0 -0
- /package/{prefab → .dist/prefab}/index.d.ts.map +0 -0
- /package/{prefab → .dist/prefab}/index.js +0 -0
- /package/{prefab → .dist/prefab}/index.js.map +0 -0
- /package/{prefab → .dist/prefab}/integration/event-bus/index.js +0 -0
- /package/{prefab → .dist/prefab}/integration/index.d.ts.map +0 -0
- /package/{prefab → .dist/prefab}/integration/index.js +0 -0
- /package/{prefab → .dist/prefab}/integration/index.js.map +0 -0
- /package/{prefab → .dist/prefab}/integration/queue/index.js +0 -0
- /package/{prefab → .dist/prefab}/integration/topic/index.js +0 -0
- /package/{prefab → .dist/prefab}/networking/dns-domain-ref/index.js +0 -0
- /package/{prefab → .dist/prefab}/networking/dns-subdomain-certificate/index.js +0 -0
- /package/{prefab → .dist/prefab}/networking/dns-subdomain-hosted-zone/index.js +0 -0
- /package/{prefab → .dist/prefab}/networking/index.d.ts.map +0 -0
- /package/{prefab → .dist/prefab}/networking/index.js +0 -0
- /package/{prefab → .dist/prefab}/networking/index.js.map +0 -0
- /package/{prefab → .dist/prefab}/networking/vpc/index.js +0 -0
- /package/{prefab → .dist/prefab}/networking/waf/index.js +0 -0
- /package/{prefab → .dist/prefab}/storage/bucket/asset-bucket.js +0 -0
- /package/{prefab → .dist/prefab}/storage/bucket/asset-bucket.js.map +0 -0
- /package/{prefab → .dist/prefab}/storage/bucket/index.d.ts.map +0 -0
- /package/{prefab → .dist/prefab}/storage/bucket/index.js +0 -0
- /package/{prefab → .dist/prefab}/storage/bucket/index.js.map +0 -0
- /package/{prefab → .dist/prefab}/storage/bucket/private-bucket.js +0 -0
- /package/{prefab → .dist/prefab}/storage/index.d.ts.map +0 -0
- /package/{prefab → .dist/prefab}/storage/index.js +0 -0
- /package/{prefab → .dist/prefab}/storage/index.js.map +0 -0
- /package/{prefab → .dist/prefab}/utils/config/frontend-env-builder.js +0 -0
- /package/{prefab → .dist/prefab}/utils/config/index.d.ts.map +0 -0
- /package/{prefab → .dist/prefab}/utils/config/index.js +0 -0
- /package/{prefab → .dist/prefab}/utils/config/index.js.map +0 -0
- /package/{prefab → .dist/prefab}/utils/config/parameter-secret.js +0 -0
- /package/{prefab → .dist/prefab}/utils/config/runtime-secret.d.ts +0 -0
- /package/{prefab → .dist/prefab}/utils/config/runtime-secret.js +0 -0
- /package/{prefab → .dist/prefab}/utils/deploy-pipeline/catalog/integrations/index.d.ts.map +0 -0
- /package/{prefab → .dist/prefab}/utils/deploy-pipeline/catalog/integrations/index.js +0 -0
- /package/{prefab → .dist/prefab}/utils/deploy-pipeline/catalog/integrations/index.js.map +0 -0
- /package/{prefab → .dist/prefab}/utils/deploy-pipeline/catalog/integrations/slack.d.ts +0 -0
- /package/{prefab → .dist/prefab}/utils/deploy-pipeline/catalog/integrations/slack.d.ts.map +0 -0
- /package/{prefab → .dist/prefab}/utils/deploy-pipeline/catalog/integrations/slack.js +0 -0
- /package/{prefab → .dist/prefab}/utils/deploy-pipeline/catalog/integrations/slack.js.map +0 -0
- /package/{prefab → .dist/prefab}/utils/deploy-pipeline/entities/index.d.ts.map +0 -0
- /package/{prefab → .dist/prefab}/utils/deploy-pipeline/entities/index.js +0 -0
- /package/{prefab → .dist/prefab}/utils/deploy-pipeline/entities/index.js.map +0 -0
- /package/{prefab → .dist/prefab}/utils/deploy-pipeline/handlers/send-to-slack/handler.d.ts +0 -0
- /package/{prefab → .dist/prefab}/utils/deploy-pipeline/handlers/send-to-slack/handler.d.ts.map +0 -0
- /package/{prefab → .dist/prefab}/utils/deploy-pipeline/handlers/send-to-slack/handler.js +0 -0
- /package/{prefab → .dist/prefab}/utils/deploy-pipeline/handlers/send-to-slack/handler.js.map +0 -0
- /package/{prefab → .dist/prefab}/utils/deploy-pipeline/index.js +0 -0
- /package/{prefab → .dist/prefab}/utils/deploy-pipeline/platform/get-pipeline-detail.d.ts.map +0 -0
- /package/{prefab → .dist/prefab}/utils/deploy-pipeline/platform/get-pipeline-detail.js +0 -0
- /package/{prefab → .dist/prefab}/utils/deploy-pipeline/platform/get-pipeline-detail.js.map +0 -0
- /package/{prefab → .dist/prefab}/utils/deploy-pipeline/platform/get-slack-payload.d.ts.map +0 -0
- /package/{prefab → .dist/prefab}/utils/deploy-pipeline/platform/get-slack-payload.js +0 -0
- /package/{prefab → .dist/prefab}/utils/deploy-pipeline/platform/get-slack-payload.js.map +0 -0
- /package/{prefab → .dist/prefab}/utils/deploy-pipeline/platform/send-to-slack.d.ts +0 -0
- /package/{prefab → .dist/prefab}/utils/deploy-pipeline/platform/send-to-slack.d.ts.map +0 -0
- /package/{prefab → .dist/prefab}/utils/deploy-pipeline/platform/send-to-slack.js +0 -0
- /package/{prefab → .dist/prefab}/utils/deploy-pipeline/platform/send-to-slack.js.map +0 -0
- /package/{prefab → .dist/prefab}/utils/duration.d.ts.map +0 -0
- /package/{prefab → .dist/prefab}/utils/duration.js +0 -0
- /package/{prefab → .dist/prefab}/utils/duration.js.map +0 -0
- /package/{prefab → .dist/prefab}/utils/index.d.ts.map +0 -0
- /package/{prefab → .dist/prefab}/utils/index.js +0 -0
- /package/{prefab → .dist/prefab}/utils/index.js.map +0 -0
- /package/{prefab → .dist/prefab}/utils/ses/index.js +0 -0
- /package/{script → .dist/script}/config-command/bootstrap.d.ts.map +0 -0
- /package/{script → .dist/script}/config-command/deploy.d.ts.map +0 -0
- /package/{script → .dist/script}/config-command/destroy.d.ts.map +0 -0
- /package/{script → .dist/script}/config-command/env-ssr.d.ts.map +0 -0
- /package/{script → .dist/script}/config-command/invalidation-ssr.d.ts.map +0 -0
- /package/{script → .dist/script}/config-command/rds-migration.d.ts.map +0 -0
- /package/{script → .dist/script}/config-command/rds-migration.js +0 -0
- /package/{script → .dist/script}/config-command/rds-sync.d.ts.map +0 -0
- /package/{script → .dist/script}/config-command/rds-sync.js +0 -0
- /package/{script → .dist/script}/config-command/ssm-connect.d.ts.map +0 -0
- /package/{script → .dist/script}/config-command/ssm-connect.js +0 -0
- /package/{script → .dist/script}/config-command/start-spa.d.ts.map +0 -0
- /package/{script → .dist/script}/config-command/start-ssr.d.ts.map +0 -0
- /package/{script → .dist/script}/config-command/synth.d.ts.map +0 -0
- /package/{script → .dist/script}/index.js +0 -0
- /package/{script → .dist/script}/index.js.map +0 -0
- /package/{script → .dist/script}/output-command/create-user.js +0 -0
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
export type BaseRegionName = 'us-east-1' | string;
|
|
2
|
+
|
|
3
|
+
export type BaseEnvName = 'dev' | 'test' | 'staging' | 'prod' | string;
|
|
4
|
+
|
|
5
|
+
export type BaseDeployTargetName = 'services' | string;
|
|
6
|
+
|
|
7
|
+
export interface DeployConfig {
|
|
8
|
+
region: BaseRegionName;
|
|
9
|
+
account: string;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
// Global Config
|
|
13
|
+
|
|
14
|
+
export type BaseGlobalConstConfig<ExtendedConst = {}> = {
|
|
15
|
+
projectName: string;
|
|
16
|
+
projectShortName: string;
|
|
17
|
+
repositoryName: string;
|
|
18
|
+
landingZones: string[];
|
|
19
|
+
pipelineNotificationSlackChannel?: string;
|
|
20
|
+
isDemoProject?: boolean;
|
|
21
|
+
bootstrappingServices?: string[];
|
|
22
|
+
isSingleProjectAccount?: boolean;
|
|
23
|
+
} & ExtendedConst;
|
|
24
|
+
|
|
25
|
+
export type BaseGlobalEnv<ExtendedEnv = {}> = {
|
|
26
|
+
roleName: string;
|
|
27
|
+
deployBranch: string;
|
|
28
|
+
hostedZoneName: string;
|
|
29
|
+
envDomainName: string;
|
|
30
|
+
emailSender: string;
|
|
31
|
+
} & ExtendedEnv;
|
|
32
|
+
|
|
33
|
+
export type BaseGlobalEnvConfig<AllowedEnv extends BaseEnvName = BaseEnvName, GlobalEnv extends BaseGlobalEnv = BaseGlobalEnv> = Record<
|
|
34
|
+
AllowedEnv,
|
|
35
|
+
GlobalEnv
|
|
36
|
+
>;
|
|
37
|
+
|
|
38
|
+
export type BaseGlobalDeployTarget<DeployTargetName extends BaseDeployTargetName = BaseDeployTargetName> = Record<DeployTargetName, DeployConfig>;
|
|
39
|
+
|
|
40
|
+
export type BaseGlobalDeployTargetConfig<
|
|
41
|
+
AllowedEnv extends BaseEnvName = BaseEnvName,
|
|
42
|
+
DeployTargetName extends BaseDeployTargetName = BaseDeployTargetName,
|
|
43
|
+
GlobalDeployTarget extends BaseGlobalDeployTarget<DeployTargetName> = BaseGlobalDeployTarget<DeployTargetName>,
|
|
44
|
+
> = Record<AllowedEnv, GlobalDeployTarget>;
|
|
45
|
+
|
|
46
|
+
// Service Config
|
|
47
|
+
|
|
48
|
+
export type BaseServiceDependencies<ServiceDependencies = {}> = {} & ServiceDependencies;
|
|
49
|
+
|
|
50
|
+
export type BaseServiceConstConfig<ExtendedConst = {}> = {} & ExtendedConst;
|
|
51
|
+
|
|
52
|
+
export type BaseServiceEnv<ExtendedEnv = {}> = {} & ExtendedEnv;
|
|
53
|
+
|
|
54
|
+
export type BaseServiceEnvConfig<AllowedEnv extends BaseEnvName = BaseEnvName, ServiceEnv extends BaseServiceEnv = BaseServiceEnv> = Record<
|
|
55
|
+
AllowedEnv,
|
|
56
|
+
ServiceEnv
|
|
57
|
+
>;
|
|
58
|
+
|
|
59
|
+
// Composition Props
|
|
60
|
+
|
|
61
|
+
export type BaseGlobalProps<
|
|
62
|
+
GlobalConstConfig extends BaseGlobalConstConfig = BaseGlobalConstConfig,
|
|
63
|
+
GlobalEnv extends BaseGlobalEnv = BaseGlobalEnv,
|
|
64
|
+
GlobalDeployTarget extends BaseGlobalDeployTarget = BaseGlobalDeployTarget,
|
|
65
|
+
> = {
|
|
66
|
+
envName: BaseEnvName;
|
|
67
|
+
regionName: BaseRegionName;
|
|
68
|
+
ephemeralEnvName?: string;
|
|
69
|
+
deployTarget: GlobalDeployTarget;
|
|
70
|
+
} & GlobalConstConfig &
|
|
71
|
+
GlobalEnv;
|
|
72
|
+
|
|
73
|
+
export type BaseServiceProps<
|
|
74
|
+
GlobalProps extends BaseGlobalProps = BaseGlobalProps,
|
|
75
|
+
ServiceDependencies extends BaseServiceDependencies = BaseServiceDependencies,
|
|
76
|
+
> = {
|
|
77
|
+
serviceName: string;
|
|
78
|
+
} & GlobalProps &
|
|
79
|
+
ServiceDependencies;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { BaseServiceProps } from './props-types';
|
|
2
|
+
|
|
3
|
+
export class SynthError extends Error {
|
|
4
|
+
constructor(
|
|
5
|
+
public override message: string,
|
|
6
|
+
public props?: BaseServiceProps
|
|
7
|
+
) {
|
|
8
|
+
super(message);
|
|
9
|
+
this.message = `[${props?.serviceName || 'UnknownService'}] ${message}`;
|
|
10
|
+
const actualProto = new.target.prototype;
|
|
11
|
+
Object.setPrototypeOf(this, actualProto);
|
|
12
|
+
}
|
|
13
|
+
}
|
package/index.ts
ADDED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@takumi-stack/core",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.1",
|
|
4
4
|
"author": "sinapsis.co",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"main": "./index.js",
|
|
@@ -16,7 +16,6 @@
|
|
|
16
16
|
"@aws-sdk/client-ssm": "^3.632.0",
|
|
17
17
|
"@aws-sdk/client-sts": "^3.632.0",
|
|
18
18
|
"@aws-sdk/lib-dynamodb": "^3.632.0",
|
|
19
|
-
"@takumi-stack/sdk": "^1.0.2",
|
|
20
19
|
"@types/node": "^22.3.0",
|
|
21
20
|
"aws-cdk-lib": "^2.152.0",
|
|
22
21
|
"aws-lambda": "^1.0.7",
|
|
@@ -27,7 +26,8 @@
|
|
|
27
26
|
"open-next": "^2.3.9",
|
|
28
27
|
"reflect-metadata": "^0.1.14",
|
|
29
28
|
"type-graphql": "^1.1.1",
|
|
30
|
-
"typeorm": "^0.3.20"
|
|
29
|
+
"typeorm": "^0.3.20",
|
|
30
|
+
"@takumi-stack/sdk": "1.0.3"
|
|
31
31
|
},
|
|
32
32
|
"devDependencies": {
|
|
33
33
|
"@trivago/prettier-plugin-sort-imports": "^4.3.0",
|
|
@@ -36,8 +36,7 @@
|
|
|
36
36
|
"cdk": "^2.152.0"
|
|
37
37
|
},
|
|
38
38
|
"scripts": {
|
|
39
|
-
"build": "tsc
|
|
40
|
-
"release": "cp package.json .dist/package.json && cd .dist && pnpm publish --access public && cd ..",
|
|
39
|
+
"build": "tsc",
|
|
41
40
|
"lint": "eslint . --max-warnings 0"
|
|
42
41
|
}
|
|
43
42
|
}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import * as awsLambda from 'aws-lambda';
|
|
2
|
+
|
|
3
|
+
const createDroppedRecord = (recordId: string): awsLambda.FirehoseTransformationResultRecord => {
|
|
4
|
+
return { recordId, result: 'Dropped', data: Buffer.from('').toString('base64') };
|
|
5
|
+
};
|
|
6
|
+
|
|
7
|
+
const processData = (payloadStr: string): Object => {
|
|
8
|
+
return JSON.parse(payloadStr);
|
|
9
|
+
};
|
|
10
|
+
|
|
11
|
+
const transformRecord = (record: awsLambda.FirehoseTransformationEventRecord): awsLambda.FirehoseTransformationResultRecord => {
|
|
12
|
+
try {
|
|
13
|
+
const payloadStr = Buffer.from(record.data, 'base64').toString();
|
|
14
|
+
const jsonRecord = processData(payloadStr);
|
|
15
|
+
if (!jsonRecord) {
|
|
16
|
+
console.error('Error creating json record');
|
|
17
|
+
return createDroppedRecord(record.recordId);
|
|
18
|
+
}
|
|
19
|
+
return {
|
|
20
|
+
recordId: record.recordId,
|
|
21
|
+
result: 'Ok',
|
|
22
|
+
data: Buffer.from(JSON.stringify(jsonRecord) + '\n').toString('base64'),
|
|
23
|
+
};
|
|
24
|
+
} catch (error) {
|
|
25
|
+
console.error('Error processing record ${record.recordId}: ', error);
|
|
26
|
+
return createDroppedRecord(record.recordId);
|
|
27
|
+
}
|
|
28
|
+
};
|
|
29
|
+
|
|
30
|
+
export const handler: awsLambda.FirehoseTransformationHandler = async (
|
|
31
|
+
event: awsLambda.FirehoseTransformationEvent
|
|
32
|
+
): Promise<awsLambda.FirehoseTransformationResult> => {
|
|
33
|
+
const records: awsLambda.FirehoseTransformationResultRecord[] = event.records.map((r) => transformRecord(r));
|
|
34
|
+
return { records };
|
|
35
|
+
};
|
|
@@ -0,0 +1,192 @@
|
|
|
1
|
+
import { CfnOutput, Duration, RemovalPolicy } from 'aws-cdk-lib';
|
|
2
|
+
import { CfnWorkGroup } from 'aws-cdk-lib/aws-athena';
|
|
3
|
+
import { Rule } from 'aws-cdk-lib/aws-events';
|
|
4
|
+
import { KinesisFirehoseStream } from 'aws-cdk-lib/aws-events-targets';
|
|
5
|
+
import { CfnCrawler, CfnCrawlerProps, CfnDatabase } from 'aws-cdk-lib/aws-glue';
|
|
6
|
+
import { Effect, PolicyStatement, Role, ServicePrincipal } from 'aws-cdk-lib/aws-iam';
|
|
7
|
+
import { CfnDeliveryStream } from 'aws-cdk-lib/aws-kinesisfirehose';
|
|
8
|
+
import { BlockPublicAccess, Bucket, BucketEncryption, StorageClass } from 'aws-cdk-lib/aws-s3';
|
|
9
|
+
import { Construct } from 'constructs';
|
|
10
|
+
|
|
11
|
+
import { ServiceStack, getBucketName, getDatabaseName, getDeployConfig, getLogicalName, getResourceName } from '../../../common';
|
|
12
|
+
import { BaseFunction } from '../../compute';
|
|
13
|
+
import { EventBusPrefab } from '../../integration';
|
|
14
|
+
|
|
15
|
+
export type EventsAnalyticsParams = {
|
|
16
|
+
eventBus: EventBusPrefab;
|
|
17
|
+
eventSource?: string;
|
|
18
|
+
paramsCrawlerProps?: Partial<CfnCrawlerProps>;
|
|
19
|
+
lifecycleDurations?: {
|
|
20
|
+
infrequentDays: number;
|
|
21
|
+
glacierDays: number;
|
|
22
|
+
};
|
|
23
|
+
bufferingHints?: {
|
|
24
|
+
intervalInSeconds: number;
|
|
25
|
+
sizeInMBs: number;
|
|
26
|
+
};
|
|
27
|
+
};
|
|
28
|
+
|
|
29
|
+
export class EventsAnalyticsPrefab extends Construct {
|
|
30
|
+
public readonly datalakeBucket: Bucket;
|
|
31
|
+
public readonly database: CfnDatabase;
|
|
32
|
+
public readonly crawler: CfnCrawler;
|
|
33
|
+
public readonly athenaOutputBucket: Bucket;
|
|
34
|
+
public readonly workGroup: CfnWorkGroup;
|
|
35
|
+
|
|
36
|
+
constructor(service: ServiceStack, params: EventsAnalyticsParams) {
|
|
37
|
+
super(service, getLogicalName(EventsAnalyticsPrefab.name));
|
|
38
|
+
|
|
39
|
+
this.datalakeBucket = new Bucket(service, 'DataLakeBucket', {
|
|
40
|
+
bucketName: getBucketName('datalake', service.props),
|
|
41
|
+
versioned: false,
|
|
42
|
+
publicReadAccess: false,
|
|
43
|
+
blockPublicAccess: BlockPublicAccess.BLOCK_ALL,
|
|
44
|
+
encryption: BucketEncryption.KMS_MANAGED,
|
|
45
|
+
removalPolicy: RemovalPolicy.DESTROY,
|
|
46
|
+
...(service.props.envName !== 'prod' ? { autoDeleteObjects: true } : {}),
|
|
47
|
+
lifecycleRules: [
|
|
48
|
+
{
|
|
49
|
+
transitions: [
|
|
50
|
+
{
|
|
51
|
+
storageClass: StorageClass.INFREQUENT_ACCESS,
|
|
52
|
+
transitionAfter: Duration.days(params.lifecycleDurations?.infrequentDays || 90),
|
|
53
|
+
},
|
|
54
|
+
{
|
|
55
|
+
storageClass: StorageClass.GLACIER,
|
|
56
|
+
transitionAfter: Duration.days(params.lifecycleDurations?.glacierDays || 360),
|
|
57
|
+
},
|
|
58
|
+
],
|
|
59
|
+
},
|
|
60
|
+
],
|
|
61
|
+
});
|
|
62
|
+
if (service.props.envName === 'prod') {
|
|
63
|
+
this.datalakeBucket.applyRemovalPolicy(RemovalPolicy.RETAIN);
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
const role = new Role(service, getLogicalName('DataLakeDeliveryStringRole'), {
|
|
67
|
+
assumedBy: new ServicePrincipal('firehose.amazonaws.com'),
|
|
68
|
+
});
|
|
69
|
+
|
|
70
|
+
const lambdaFunction = new BaseFunction(service, {
|
|
71
|
+
name: 'ingestion-transform',
|
|
72
|
+
baseFunctionFolder: __dirname,
|
|
73
|
+
...(service.props.isDemoProject ? {} : { compiled: true }),
|
|
74
|
+
}).lambdaFunction;
|
|
75
|
+
|
|
76
|
+
const deliveryStream = new CfnDeliveryStream(service, 'DataLakeDeliveryStream', {
|
|
77
|
+
deliveryStreamType: 'DirectPut',
|
|
78
|
+
extendedS3DestinationConfiguration: {
|
|
79
|
+
bucketArn: this.datalakeBucket.bucketArn,
|
|
80
|
+
roleArn: role.roleArn,
|
|
81
|
+
compressionFormat: 'UNCOMPRESSED',
|
|
82
|
+
prefix: 'year=!{timestamp:yyyy}/month=!{timestamp:MM}/day=!{timestamp:dd}/hour=!{timestamp:HH}/',
|
|
83
|
+
errorOutputPrefix: 'error/!{firehose:random-string}/!{firehose:error-output-type}/!{timestamp:yyyy/MM/dd}/',
|
|
84
|
+
bufferingHints: {
|
|
85
|
+
intervalInSeconds: params.bufferingHints?.intervalInSeconds || 300,
|
|
86
|
+
sizeInMBs: params.bufferingHints?.sizeInMBs || 5,
|
|
87
|
+
},
|
|
88
|
+
processingConfiguration: {
|
|
89
|
+
enabled: true,
|
|
90
|
+
processors: [
|
|
91
|
+
{
|
|
92
|
+
type: 'Lambda',
|
|
93
|
+
parameters: [{ parameterName: 'LambdaArn', parameterValue: lambdaFunction.functionArn }],
|
|
94
|
+
},
|
|
95
|
+
],
|
|
96
|
+
},
|
|
97
|
+
},
|
|
98
|
+
});
|
|
99
|
+
|
|
100
|
+
new Rule(service, 'EventProcessorRule', {
|
|
101
|
+
...(params.eventBus ? { eventBus: params.eventBus.bus } : {}),
|
|
102
|
+
eventPattern: { source: [params.eventSource || 'app'] },
|
|
103
|
+
targets: [new KinesisFirehoseStream(deliveryStream)],
|
|
104
|
+
});
|
|
105
|
+
|
|
106
|
+
this.datalakeBucket.grantReadWrite(role);
|
|
107
|
+
lambdaFunction.grantInvoke(role);
|
|
108
|
+
|
|
109
|
+
this.database = new CfnDatabase(service, 'Database', {
|
|
110
|
+
catalogId: getDeployConfig(service.props).env.account,
|
|
111
|
+
databaseInput: { name: getDatabaseName('datalake', service.props) },
|
|
112
|
+
});
|
|
113
|
+
|
|
114
|
+
const crawlerRole = new Role(service, 'CrawlerRole', { assumedBy: new ServicePrincipal('glue.amazonaws.com') });
|
|
115
|
+
|
|
116
|
+
crawlerRole.addToPrincipalPolicy(
|
|
117
|
+
new PolicyStatement({
|
|
118
|
+
effect: Effect.ALLOW,
|
|
119
|
+
actions: [
|
|
120
|
+
'glue:*',
|
|
121
|
+
's3:GetBucketLocation',
|
|
122
|
+
's3:ListBucket',
|
|
123
|
+
's3:ListAllMyBuckets',
|
|
124
|
+
'iam:ListRolePolicies',
|
|
125
|
+
'iam:GetRole',
|
|
126
|
+
'iam:GetRolePolicy',
|
|
127
|
+
'cloudwatch:PutMetricData',
|
|
128
|
+
'logs:PutLogEvents',
|
|
129
|
+
'logs:CreateLogGroup',
|
|
130
|
+
'logs:CreateLogStream',
|
|
131
|
+
],
|
|
132
|
+
resources: ['*'],
|
|
133
|
+
})
|
|
134
|
+
);
|
|
135
|
+
|
|
136
|
+
this.datalakeBucket.grantReadWrite(crawlerRole);
|
|
137
|
+
|
|
138
|
+
this.crawler = new CfnCrawler(this, 'DatalakeTableCrawler', {
|
|
139
|
+
name: getResourceName('crawler', service.props),
|
|
140
|
+
databaseName: this.database.ref.toString(),
|
|
141
|
+
role: crawlerRole.roleArn,
|
|
142
|
+
targets: { s3Targets: [{ path: this.datalakeBucket.bucketName }] },
|
|
143
|
+
configuration: JSON.stringify({
|
|
144
|
+
Version: 1.0,
|
|
145
|
+
Grouping: { TableGroupingPolicy: 'CombineCompatibleSchemas' },
|
|
146
|
+
CrawlerOutput: {
|
|
147
|
+
Tables: { AddOrUpdateBehavior: 'MergeNewColumns' },
|
|
148
|
+
Partitions: { AddOrUpdateBehavior: 'InheritFromTable' },
|
|
149
|
+
},
|
|
150
|
+
}),
|
|
151
|
+
schemaChangePolicy: {
|
|
152
|
+
deleteBehavior: 'DELETE_FROM_DATABASE',
|
|
153
|
+
updateBehavior: 'UPDATE_IN_DATABASE',
|
|
154
|
+
},
|
|
155
|
+
...params.paramsCrawlerProps,
|
|
156
|
+
});
|
|
157
|
+
|
|
158
|
+
new CfnOutput(service, 'CrawlerName', {
|
|
159
|
+
exportName: getResourceName('CrawlerName', service.props),
|
|
160
|
+
value: this.crawler.name as string,
|
|
161
|
+
});
|
|
162
|
+
new CfnOutput(service, 'DatabaseName', {
|
|
163
|
+
exportName: getResourceName('DatabaseName', service.props),
|
|
164
|
+
value: this.database.ref.toString(),
|
|
165
|
+
});
|
|
166
|
+
new CfnOutput(service, 'TableName', {
|
|
167
|
+
exportName: getResourceName('TableName', service.props),
|
|
168
|
+
value: getDatabaseName('datalake', service.props),
|
|
169
|
+
});
|
|
170
|
+
|
|
171
|
+
this.athenaOutputBucket = new Bucket(service, 'QueryOutputsBucket', {
|
|
172
|
+
bucketName: getBucketName('query-outputs', service.props),
|
|
173
|
+
versioned: false,
|
|
174
|
+
publicReadAccess: false,
|
|
175
|
+
blockPublicAccess: BlockPublicAccess.BLOCK_ALL,
|
|
176
|
+
encryption: BucketEncryption.KMS_MANAGED,
|
|
177
|
+
removalPolicy: RemovalPolicy.DESTROY,
|
|
178
|
+
autoDeleteObjects: true,
|
|
179
|
+
});
|
|
180
|
+
|
|
181
|
+
this.workGroup = new CfnWorkGroup(service, 'DataLakeWorkGroup', {
|
|
182
|
+
name: getResourceName('datalake', service.props),
|
|
183
|
+
recursiveDeleteOption: true,
|
|
184
|
+
workGroupConfiguration: {
|
|
185
|
+
resultConfiguration: {
|
|
186
|
+
outputLocation: this.athenaOutputBucket.s3UrlForObject(),
|
|
187
|
+
},
|
|
188
|
+
},
|
|
189
|
+
});
|
|
190
|
+
this.workGroup.applyRemovalPolicy(RemovalPolicy.DESTROY);
|
|
191
|
+
}
|
|
192
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './events';
|
|
@@ -0,0 +1,263 @@
|
|
|
1
|
+
import * as awsCognito from 'aws-cdk-lib/aws-cognito';
|
|
2
|
+
import { CfnOutput, Fn } from 'aws-cdk-lib';
|
|
3
|
+
import { Effect, PolicyStatement, ServicePrincipal } from 'aws-cdk-lib/aws-iam';
|
|
4
|
+
import { Key, KeySpec } from 'aws-cdk-lib/aws-kms';
|
|
5
|
+
import { ARecord, HostedZone, RecordTarget } from 'aws-cdk-lib/aws-route53';
|
|
6
|
+
import { UserPoolDomainTarget } from 'aws-cdk-lib/aws-route53-targets';
|
|
7
|
+
import { Construct } from 'constructs';
|
|
8
|
+
|
|
9
|
+
import { Modifier, ServiceStack, SynthError, getDomain, getLogicalName, getResourceName, getServiceName } from '../../../common';
|
|
10
|
+
|
|
11
|
+
export type AuthPoolParams = {
|
|
12
|
+
userPool?: Partial<awsCognito.UserPoolProps>;
|
|
13
|
+
userPoolClient?: Partial<awsCognito.UserPoolClientProps>;
|
|
14
|
+
userPoolDomain?: Partial<awsCognito.UserPoolDomainProps>;
|
|
15
|
+
emailConfiguration?: awsCognito.UserPoolSESOptions;
|
|
16
|
+
callbackUrl?: string;
|
|
17
|
+
enableCustomSender?: boolean;
|
|
18
|
+
socialLogin?: {
|
|
19
|
+
google?: Omit<awsCognito.UserPoolIdentityProviderGoogleProps, 'userPool'>;
|
|
20
|
+
facebook?: awsCognito.UserPoolIdentityProviderFacebookProps;
|
|
21
|
+
apple?: awsCognito.UserPoolIdentityProviderAppleProps;
|
|
22
|
+
};
|
|
23
|
+
};
|
|
24
|
+
|
|
25
|
+
export class CognitoAuthPoolPrefab extends Construct {
|
|
26
|
+
public readonly userPool: awsCognito.UserPool;
|
|
27
|
+
public readonly userPoolClient: awsCognito.UserPoolClient;
|
|
28
|
+
public readonly userPoolDomain: awsCognito.UserPoolDomain;
|
|
29
|
+
public readonly frontendRefs: Record<string, string>;
|
|
30
|
+
public readonly kmsKey: Key | undefined;
|
|
31
|
+
public readonly props;
|
|
32
|
+
// public readonly googleProvider: awsCognito.UserPoolIdentityProviderGoogle | undefined;
|
|
33
|
+
|
|
34
|
+
/**
|
|
35
|
+
* Creates a Cognito UserPool
|
|
36
|
+
*
|
|
37
|
+
* @param service - The instance of StackService where the prefab will be deployed
|
|
38
|
+
* @param params - Prefab params
|
|
39
|
+
* @returns CognitoAuthPoolPrefab instance
|
|
40
|
+
*/
|
|
41
|
+
constructor(service: ServiceStack, params: AuthPoolParams) {
|
|
42
|
+
super(service, getLogicalName(CognitoAuthPoolPrefab.name));
|
|
43
|
+
|
|
44
|
+
this.props = service.props;
|
|
45
|
+
|
|
46
|
+
//User Pool
|
|
47
|
+
|
|
48
|
+
if (params.enableCustomSender) {
|
|
49
|
+
this.kmsKey = new Key(this, getResourceName('kms', service.props), {
|
|
50
|
+
keySpec: KeySpec.SYMMETRIC_DEFAULT,
|
|
51
|
+
alias: getResourceName('kms-alias', service.props),
|
|
52
|
+
enableKeyRotation: false,
|
|
53
|
+
});
|
|
54
|
+
|
|
55
|
+
this.kmsKey.addToResourcePolicy(
|
|
56
|
+
new PolicyStatement({
|
|
57
|
+
actions: ['kms:Encrypt'],
|
|
58
|
+
effect: Effect.ALLOW,
|
|
59
|
+
principals: [new ServicePrincipal('cognito-idp.amazonaws.com')],
|
|
60
|
+
resources: ['*'],
|
|
61
|
+
})
|
|
62
|
+
);
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
const defaultUserPoolProps: awsCognito.UserPoolProps = {
|
|
66
|
+
userPoolName: getResourceName('', service.props),
|
|
67
|
+
accountRecovery: awsCognito.AccountRecovery.EMAIL_ONLY,
|
|
68
|
+
selfSignUpEnabled: true,
|
|
69
|
+
autoVerify: { email: true },
|
|
70
|
+
signInCaseSensitive: false,
|
|
71
|
+
passwordPolicy: { minLength: 8, requireDigits: true },
|
|
72
|
+
customSenderKmsKey: params.enableCustomSender ? this.kmsKey : undefined,
|
|
73
|
+
email: params.emailConfiguration && awsCognito.UserPoolEmail.withSES(params.emailConfiguration),
|
|
74
|
+
};
|
|
75
|
+
const userPool = new awsCognito.UserPool(this, 'UserPool', { ...defaultUserPoolProps, ...params.userPool });
|
|
76
|
+
|
|
77
|
+
// Social Login
|
|
78
|
+
if (params.socialLogin?.google) {
|
|
79
|
+
const googleProvider = new awsCognito.UserPoolIdentityProviderGoogle(this, 'GoogleProvider', {
|
|
80
|
+
userPool: userPool,
|
|
81
|
+
scopes: ['openid', 'email', 'profile'],
|
|
82
|
+
attributeMapping: {
|
|
83
|
+
email: awsCognito.ProviderAttribute.GOOGLE_EMAIL,
|
|
84
|
+
givenName: awsCognito.ProviderAttribute.GOOGLE_GIVEN_NAME,
|
|
85
|
+
familyName: awsCognito.ProviderAttribute.GOOGLE_FAMILY_NAME,
|
|
86
|
+
},
|
|
87
|
+
...params.socialLogin.google,
|
|
88
|
+
});
|
|
89
|
+
userPool.registerIdentityProvider(googleProvider);
|
|
90
|
+
}
|
|
91
|
+
if (params.socialLogin?.facebook) {
|
|
92
|
+
const facebookProvider = new awsCognito.UserPoolIdentityProviderFacebook(this, 'FacebookProvider', params.socialLogin.facebook);
|
|
93
|
+
userPool.registerIdentityProvider(facebookProvider);
|
|
94
|
+
}
|
|
95
|
+
if (params.socialLogin?.apple) {
|
|
96
|
+
const appleProvider = new awsCognito.UserPoolIdentityProviderApple(this, 'AppleProvider', params.socialLogin.apple);
|
|
97
|
+
userPool.registerIdentityProvider(appleProvider);
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
// UserPoolClient
|
|
101
|
+
const callbackUrl = params.callbackUrl || getDomain('app', service.props, true);
|
|
102
|
+
const defaultUserClientProps: Partial<awsCognito.UserPoolClientProps> = {
|
|
103
|
+
userPoolClientName: getResourceName('', service.props),
|
|
104
|
+
authFlows: {
|
|
105
|
+
custom: true,
|
|
106
|
+
userSrp: true,
|
|
107
|
+
userPassword: true,
|
|
108
|
+
adminUserPassword: false,
|
|
109
|
+
},
|
|
110
|
+
oAuth: {
|
|
111
|
+
flows: {
|
|
112
|
+
authorizationCodeGrant: true,
|
|
113
|
+
},
|
|
114
|
+
callbackUrls: [callbackUrl, ...(service.props.envName === 'dev' ? ['http://localhost:3000'] : [])],
|
|
115
|
+
logoutUrls: [`${callbackUrl}/sign-in`, ...(service.props.envName === 'dev' ? ['http://localhost:3000/sign-in'] : [])],
|
|
116
|
+
},
|
|
117
|
+
preventUserExistenceErrors: true,
|
|
118
|
+
generateSecret: false,
|
|
119
|
+
};
|
|
120
|
+
|
|
121
|
+
const userPoolClient = new awsCognito.UserPoolClient(this, 'UserPoolClient', {
|
|
122
|
+
userPool,
|
|
123
|
+
...defaultUserClientProps,
|
|
124
|
+
...params.userPoolClient,
|
|
125
|
+
});
|
|
126
|
+
|
|
127
|
+
// UserPoolDomain
|
|
128
|
+
const userPoolDomain = new awsCognito.UserPoolDomain(this, 'UserPoolDomain', {
|
|
129
|
+
userPool,
|
|
130
|
+
...(params.userPoolDomain ? params.userPoolDomain : { cognitoDomain: { domainPrefix: getDomain('auth', service.props).replace(/\./g, '-') } }),
|
|
131
|
+
});
|
|
132
|
+
|
|
133
|
+
if (params.userPoolDomain) {
|
|
134
|
+
const hostedZone = HostedZone.fromLookup(this, 'HostedZoneEnvDns', { domainName: getDomain('', service.props) });
|
|
135
|
+
const record = new ARecord(service, 'Record', {
|
|
136
|
+
zone: hostedZone,
|
|
137
|
+
target: RecordTarget.fromAlias(new UserPoolDomainTarget(userPoolDomain)),
|
|
138
|
+
recordName: params.userPoolDomain.customDomain?.domainName,
|
|
139
|
+
});
|
|
140
|
+
record.node.addDependency(userPoolDomain);
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
// Attributes and Outputs
|
|
144
|
+
const userPoolId = userPool.userPoolId;
|
|
145
|
+
const userPoolClientId = userPoolClient.userPoolClientId;
|
|
146
|
+
const userPoolDomainUrl = Fn.join('', ['https://', userPoolDomain.domainName, '.auth.us-east-1.amazoncognito.com']);
|
|
147
|
+
const userPoolRegion = service.props.regionName;
|
|
148
|
+
|
|
149
|
+
new CfnOutput(this, 'UserPoolId', { value: userPoolId });
|
|
150
|
+
new CfnOutput(this, 'UserPoolClientId', { value: userPoolClientId });
|
|
151
|
+
new CfnOutput(this, 'UserPoolDomainUrl', { value: userPoolDomainUrl });
|
|
152
|
+
new CfnOutput(this, 'UserPoolRegion', { value: userPoolRegion });
|
|
153
|
+
|
|
154
|
+
this.userPool = userPool;
|
|
155
|
+
this.userPoolClient = userPoolClient;
|
|
156
|
+
this.userPoolDomain = userPoolDomain;
|
|
157
|
+
this.frontendRefs = {
|
|
158
|
+
REACT_APP_COGNITO_USER_POOL_ID: userPoolId,
|
|
159
|
+
REACT_APP_COGNITO_WEB_CLIENT_ID: userPoolClientId,
|
|
160
|
+
REACT_APP_COGNITO_DOMAIN: userPoolDomainUrl,
|
|
161
|
+
REACT_APP_COGNITO_REGION: userPoolRegion,
|
|
162
|
+
};
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
// MODS
|
|
166
|
+
public useMod(mods: ((userPool: awsCognito.UserPool) => any)[]): Modifier {
|
|
167
|
+
return (lambda) => {
|
|
168
|
+
lambda.addEnvironment('USER_POOL_ID', this.userPool.userPoolId);
|
|
169
|
+
lambda.addEnvironment('USER_POOL_CLIENT_ID', this.userPoolClient.userPoolClientId);
|
|
170
|
+
mods.map((fn) => fn(this.userPool)(lambda));
|
|
171
|
+
};
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
public customSmsSenderMod(): Modifier {
|
|
175
|
+
return (lambda) => {
|
|
176
|
+
if (!this.kmsKey) throw new SynthError('enableCustomSender must be true to use customSmsSenderMod');
|
|
177
|
+
|
|
178
|
+
lambda.addEnvironment('KEY_ID', this.kmsKey.keyArn);
|
|
179
|
+
lambda.addEnvironment(
|
|
180
|
+
'KEY_ALIAS',
|
|
181
|
+
`arn:aws:kms:${this.props.regionName}:${this.props.deployTarget['services']!.account}:alias/${getServiceName('kms', this.props)}`
|
|
182
|
+
);
|
|
183
|
+
|
|
184
|
+
lambda.role?.addToPrincipalPolicy(
|
|
185
|
+
new PolicyStatement({
|
|
186
|
+
actions: [
|
|
187
|
+
'cognito-idp:AdminConfirmSignUp',
|
|
188
|
+
'cognito-idp:SignUp',
|
|
189
|
+
'cognito-idp:InitiateAuth',
|
|
190
|
+
'cognito-idp:ConfirmSignUp',
|
|
191
|
+
'cognito-idp:ForgotPassword',
|
|
192
|
+
'cognito-idp:ConfirmForgotPassword',
|
|
193
|
+
'cognito-idp:ResendConfirmationCode',
|
|
194
|
+
],
|
|
195
|
+
resources: ['*'],
|
|
196
|
+
})
|
|
197
|
+
);
|
|
198
|
+
lambda.role?.addToPrincipalPolicy(
|
|
199
|
+
new PolicyStatement({
|
|
200
|
+
actions: ['kms:Decrypt', 'kms:DescribeKey'],
|
|
201
|
+
resources: [this.kmsKey.keyArn],
|
|
202
|
+
})
|
|
203
|
+
);
|
|
204
|
+
};
|
|
205
|
+
}
|
|
206
|
+
|
|
207
|
+
public static modifier = {
|
|
208
|
+
updateUserAtt: (): Modifier => {
|
|
209
|
+
return (lambda) => {
|
|
210
|
+
lambda.role?.addToPrincipalPolicy(
|
|
211
|
+
new PolicyStatement({
|
|
212
|
+
actions: ['cognito-idp:AdminUpdateUserAttributes', 'cognito-idp:AdminDisableUser', 'cognito-idp:AdminEnableUser'],
|
|
213
|
+
resources: ['*'],
|
|
214
|
+
})
|
|
215
|
+
);
|
|
216
|
+
};
|
|
217
|
+
},
|
|
218
|
+
deleteUser: (): Modifier => {
|
|
219
|
+
return (lambda) => {
|
|
220
|
+
lambda.role?.addToPrincipalPolicy(
|
|
221
|
+
new PolicyStatement({
|
|
222
|
+
actions: ['cognito-idp:AdminDeleteUser'],
|
|
223
|
+
resources: ['*'],
|
|
224
|
+
})
|
|
225
|
+
);
|
|
226
|
+
};
|
|
227
|
+
},
|
|
228
|
+
preSignUp: (): Modifier => {
|
|
229
|
+
return (lambda) => {
|
|
230
|
+
lambda.role?.addToPrincipalPolicy(
|
|
231
|
+
new PolicyStatement({
|
|
232
|
+
actions: [
|
|
233
|
+
'cognito-idp:AdminLinkProviderForUser',
|
|
234
|
+
'cognito-idp:AdminGetUser',
|
|
235
|
+
'cognito-idp:AdminCreateUser',
|
|
236
|
+
'cognito-idp:AdminSetUserPassword',
|
|
237
|
+
'cognito-idp:AdminUpdateUserAttributes',
|
|
238
|
+
],
|
|
239
|
+
resources: ['*'],
|
|
240
|
+
})
|
|
241
|
+
);
|
|
242
|
+
};
|
|
243
|
+
},
|
|
244
|
+
authUser: (): Modifier => {
|
|
245
|
+
return (lambda) => {
|
|
246
|
+
lambda.role?.addToPrincipalPolicy(
|
|
247
|
+
new PolicyStatement({
|
|
248
|
+
actions: [
|
|
249
|
+
'cognito-idp:AdminConfirmSignUp',
|
|
250
|
+
'cognito-idp:SignUp',
|
|
251
|
+
'cognito-idp:InitiateAuth',
|
|
252
|
+
'cognito-idp:ConfirmSignUp',
|
|
253
|
+
'cognito-idp:ForgotPassword',
|
|
254
|
+
'cognito-idp:ConfirmForgotPassword',
|
|
255
|
+
'cognito-idp:ResendConfirmationCode',
|
|
256
|
+
],
|
|
257
|
+
resources: ['*'],
|
|
258
|
+
})
|
|
259
|
+
);
|
|
260
|
+
};
|
|
261
|
+
},
|
|
262
|
+
};
|
|
263
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './cognito-pool';
|