{"_id":"@bubltec/mycota-cdk","_rev":"13-fa40fac5e4394961a7df50e731ed8803","name":"@bubltec/mycota-cdk","dist-tags":{"dev":"0.1.0-dev.7","next":"0.1.1-next.18","latest":"1.0.1"},"versions":{"0.1.0-dev.0":{"name":"@bubltec/mycota-cdk","version":"0.1.0-dev.0","_id":"@bubltec/mycota-cdk@0.1.0-dev.0","maintainers":[{"name":"jjosef","email":"john.josef@gmail.com"}],"dist":{"shasum":"be55d78b0311f2a41dca1784195135b75e9bae11","tarball":"https://registry.npmjs.org/@bubltec/mycota-cdk/-/mycota-cdk-0.1.0-dev.0.tgz","fileCount":28,"integrity":"sha512-x3CWv3nCQOXq9qW1KZzue+DToGSZ2fxKq3ntI062OzLmHu8ffeul3LG36LsJ9Vsco1b9hXlzGC3lcF4GyxZgMg==","signatures":[{"sig":"MEUCIQDmTtozsQMtRDusItxnbIlW3FY5EZBmSpn6Llr4LHj4MAIgInpXlJWjcSkz4NK4pwn4sIMt5lRrfv3I6QMYBwD+89E=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":39337},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"scripts":{"test":"vitest run","build":"tsc -b && node scripts/build-lambda.mjs","pretest":"pnpm run build","typecheck":"tsc -b --noEmit"},"_npmUser":{"name":"jjosef","email":"john.josef@gmail.com"},"directories":{},"_nodeVersion":"26.5.0","dependencies":{"@bubltec/mycota-config":"0.1.0-dev.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.1.0","esbuild":"^0.24.2","constructs":"^10.4.0","typescript":"^5.8.0","@types/node":"^22.10.0","aws-cdk-lib":"^2.261.0","@types/aws-lambda":"^8.10.146"},"peerDependencies":{"constructs":"^10.4.0","aws-cdk-lib":"^2.261.0"},"_npmOperationalInternal":{"tmp":"tmp/mycota-cdk_0.1.0-dev.0_1785281467093_0.5001152686984518","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-dev.7":{"name":"@bubltec/mycota-cdk","version":"0.1.0-dev.7","_id":"@bubltec/mycota-cdk@0.1.0-dev.7","maintainers":[{"name":"jjosef","email":"john.josef@gmail.com"}],"dist":{"shasum":"d318a90bfbd9ff7740b6a069de59ea75b4c88d42","tarball":"https://registry.npmjs.org/@bubltec/mycota-cdk/-/mycota-cdk-0.1.0-dev.7.tgz","fileCount":28,"integrity":"sha512-S7rAe5ESLK1lCHuxubA4TBLkK+SRxDZZNRkzeyE/4I6f6bQtlgEACM6Il9U1URb59l2pZSxKJy/YZgMYR+knaA==","signatures":[{"sig":"MEYCIQD6H9pJu28uSWojhDRgbf/DTAE7vhdgrzgHXQP3xZiZ5AIhAIEJACXq+GP5we4OdR0MegH71w12gtbkeIjYFkr3KWt8","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":39203},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"scripts":{"lint":"oxlint -c ../../.oxlintrc.json src","test":"vitest run","build":"tsc -b && node scripts/build-lambda.mjs","pretest":"pnpm run build","typecheck":"tsc -b --noEmit"},"_npmUser":{"name":"jjosef","email":"john.josef@gmail.com"},"directories":{},"_nodeVersion":"22.23.1","dependencies":{"@bubltec/mycota-config":"0.1.0-dev.7"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.1.0","esbuild":"^0.24.2","constructs":"^10.4.0","typescript":"^5.8.0","@types/node":"^22.10.0","aws-cdk-lib":"^2.261.0","@types/aws-lambda":"^8.10.146"},"peerDependencies":{"constructs":"^10.4.0","aws-cdk-lib":"^2.261.0"},"_npmOperationalInternal":{"tmp":"tmp/mycota-cdk_0.1.0-dev.7_1785461978333_0.6550244610832701","host":"s3://npm-registry-packages-npm-production"}},"0.0.1-next.10":{"name":"@bubltec/mycota-cdk","version":"0.0.1-next.10","_id":"@bubltec/mycota-cdk@0.0.1-next.10","maintainers":[{"name":"jjosef","email":"john.josef@gmail.com"}],"dist":{"shasum":"c3b552393634c6a172cac4580e7616ec095c9028","tarball":"https://registry.npmjs.org/@bubltec/mycota-cdk/-/mycota-cdk-0.0.1-next.10.tgz","fileCount":28,"integrity":"sha512-MaJm5FYT+eoHIrR11k1qBdptTc0BbQAFnfVsTxOQuLBvPiIRhlPwKKYYhKRxZMFdPHfoD86NUPDvZ3FexDNmuQ==","signatures":[{"sig":"MEYCIQC48+G/WhiufnDn/pndTkn5eLJbP8TOeu4HcITkz6ArEwIhAPfa2RBTTeh6xUZ2ovbP6buFZ55QPfkiSY2QOS5RuBwV","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":39207},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"scripts":{"lint":"oxlint -c ../../.oxlintrc.json src","test":"vitest run","build":"tsc -b && node scripts/build-lambda.mjs","pretest":"pnpm run build","typecheck":"tsc -b --noEmit"},"_npmUser":{"name":"jjosef","email":"john.josef@gmail.com"},"directories":{},"_nodeVersion":"22.23.1","dependencies":{"@bubltec/mycota-config":"0.0.1-next.10"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.1.0","esbuild":"^0.24.2","constructs":"^10.4.0","typescript":"^5.8.0","@types/node":"^22.10.0","aws-cdk-lib":"^2.261.0","@types/aws-lambda":"^8.10.146"},"peerDependencies":{"constructs":"^10.4.0","aws-cdk-lib":"^2.261.0"},"_npmOperationalInternal":{"tmp":"tmp/mycota-cdk_0.0.1-next.10_1785465953644_0.8710281541987899","host":"s3://npm-registry-packages-npm-production"}},"0.0.1-next.12":{"name":"@bubltec/mycota-cdk","version":"0.0.1-next.12","_id":"@bubltec/mycota-cdk@0.0.1-next.12","maintainers":[{"name":"jjosef","email":"john.josef@gmail.com"}],"dist":{"shasum":"c132068de1898ed5ff11953520d5df727bc088cc","tarball":"https://registry.npmjs.org/@bubltec/mycota-cdk/-/mycota-cdk-0.0.1-next.12.tgz","fileCount":28,"integrity":"sha512-viQXumtAOsopKCS4fySku5Pvzjrl7WTzv0S0jHo8ph/1rqVRffD5wOVLgpCEJZ90SqRD6bsCHfO4YXnnPtnqsg==","signatures":[{"sig":"MEUCIQDpuNyJr8jBjIlSrWZ+r1Hfkmo5EpW3SXXMhsv7/+nuJAIgH3EDb2Pi84w7sq3kyjU4NT3/k2F/gZrycRJn03NRkt8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":39207},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"scripts":{"lint":"oxlint -c ../../.oxlintrc.json src","test":"vitest run","build":"tsc -b && node scripts/build-lambda.mjs","pretest":"pnpm run build","typecheck":"tsc -b --noEmit"},"_npmUser":{"name":"jjosef","email":"john.josef@gmail.com"},"directories":{},"_nodeVersion":"22.23.1","dependencies":{"@bubltec/mycota-config":"0.0.1-next.12"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.1.0","esbuild":"^0.24.2","constructs":"^10.4.0","typescript":"^5.8.0","@types/node":"^22.10.0","aws-cdk-lib":"^2.261.0","@types/aws-lambda":"^8.10.146"},"peerDependencies":{"constructs":"^10.4.0","aws-cdk-lib":"^2.261.0"},"_npmOperationalInternal":{"tmp":"tmp/mycota-cdk_0.0.1-next.12_1785466631133_0.6060999552184314","host":"s3://npm-registry-packages-npm-production"}},"0.1.0":{"name":"@bubltec/mycota-cdk","version":"0.1.0","_id":"@bubltec/mycota-cdk@0.1.0","maintainers":[{"name":"jjosef","email":"john.josef@gmail.com"}],"dist":{"shasum":"a4ccfacb914fe28df87a4dcd261a14d73b4cdfea","tarball":"https://registry.npmjs.org/@bubltec/mycota-cdk/-/mycota-cdk-0.1.0.tgz","fileCount":29,"integrity":"sha512-wqGjfDHEL3jc4QBOJm39EZl13dE1FKFV2AJxB2r0ijAWEItDAb9kn5BV9fbiGgN76Me7N4XTANGNeixPJaXY0g==","signatures":[{"sig":"MEUCIQC80gctLGdSeg9YJqrTUOsjO9IK4qyml0KELZWF1ZnxkgIgVT7HvEc8bMUuO0Jkja2A19fe5rHDAWpphPSDk32fwkE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":42660},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"scripts":{"lint":"oxlint -c ../../.oxlintrc.json src","test":"vitest run","build":"tsc -b && node scripts/build-lambda.mjs","pretest":"pnpm run build","typecheck":"tsc -b --noEmit"},"_npmUser":{"name":"jjosef","email":"john.josef@gmail.com"},"description":"CDK constructs for mycota's SSM-backed config story: grantSsmConfigRead and the EphemeralConfig ephemeral-stack construct.","directories":{},"_nodeVersion":"22.23.1","dependencies":{"@bubltec/mycota-config":"0.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.1.0","esbuild":"^0.24.2","constructs":"^10.4.0","typescript":"^5.8.0","@types/node":"^22.10.0","aws-cdk-lib":"^2.261.0","@types/aws-lambda":"^8.10.146"},"peerDependencies":{"constructs":"^10.4.0","aws-cdk-lib":"^2.261.0"},"_npmOperationalInternal":{"tmp":"tmp/mycota-cdk_0.1.0_1785470771386_0.539370487620858","host":"s3://npm-registry-packages-npm-production"}},"0.1.1-next.18":{"name":"@bubltec/mycota-cdk","version":"0.1.1-next.18","_id":"@bubltec/mycota-cdk@0.1.1-next.18","maintainers":[{"name":"jjosef","email":"john.josef@gmail.com"}],"dist":{"shasum":"23724108e394222979a6866af2a679f7df2fd8be","tarball":"https://registry.npmjs.org/@bubltec/mycota-cdk/-/mycota-cdk-0.1.1-next.18.tgz","fileCount":29,"integrity":"sha512-SGjRxbUSXByAkgsEay7efBjXpsttIfiVuc7dOc/VAjU/6tCy9fnffufKcYggPKKk1pkGlNFlgUhxaLHuu9JOnQ==","signatures":[{"sig":"MEUCIQC4WepmExOgaCeABXhX6Nybw82qVBImj+3RInVnBQmFcQIgSWAWteoZCUJm8BTr2sgoG5dWSGsX3is6b0QjVYLwSdg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":42676},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"scripts":{"lint":"oxlint -c ../../.oxlintrc.json src","test":"vitest run","build":"tsc -b && node scripts/build-lambda.mjs","pretest":"pnpm run build","typecheck":"tsc -b --noEmit"},"_npmUser":{"name":"jjosef","email":"john.josef@gmail.com"},"description":"CDK constructs for mycota's SSM-backed config story: grantSsmConfigRead and the EphemeralConfig ephemeral-stack construct.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"@bubltec/mycota-config":"0.1.1-next.18"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.1.0","esbuild":"^0.24.2","constructs":"^10.4.0","typescript":"^5.8.0","@types/node":"^22.10.0","aws-cdk-lib":"^2.261.0","@types/aws-lambda":"^8.10.146"},"peerDependencies":{"constructs":"^10.4.0","aws-cdk-lib":"^2.261.0"},"_npmOperationalInternal":{"tmp":"tmp/mycota-cdk_0.1.1-next.18_1787585149550_0.42232521005304946","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@bubltec/mycota-cdk","version":"0.2.0","_id":"@bubltec/mycota-cdk@0.2.0","maintainers":[{"name":"jjosef","email":"john.josef@gmail.com"}],"dist":{"shasum":"c8375c8f91abcdae926cc1d9d0898a4656407ab1","tarball":"https://registry.npmjs.org/@bubltec/mycota-cdk/-/mycota-cdk-0.2.0.tgz","fileCount":29,"integrity":"sha512-Kcg4KV5Lbzc/PDY1V970Mcin/qcufk2QUZTWgS64Ur5Vzu7JaBEk1uze2bkj9rcjlEz2+2UWw0wreF09MybLoA==","signatures":[{"sig":"MEQCIC23PoKeOq+js9fLYlMJhm14FUttQDmoBySz2jvQr0CqAiAdTHSY6n+K3yFrUliQMwenNrfgPIqOiVJsuYSXNn/57g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":42660},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"scripts":{"lint":"oxlint -c ../../.oxlintrc.json src","test":"vitest run","build":"tsc -b && node scripts/build-lambda.mjs","pretest":"pnpm run build","typecheck":"tsc -b --noEmit"},"_npmUser":{"name":"jjosef","email":"john.josef@gmail.com"},"description":"CDK constructs for mycota's SSM-backed config story: grantSsmConfigRead and the EphemeralConfig ephemeral-stack construct.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"@bubltec/mycota-config":"0.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.1.0","esbuild":"^0.24.2","constructs":"^10.4.0","typescript":"^5.8.0","@types/node":"^22.10.0","aws-cdk-lib":"^2.261.0","@types/aws-lambda":"^8.10.146"},"peerDependencies":{"constructs":"^10.4.0","aws-cdk-lib":"^2.261.0"},"_npmOperationalInternal":{"tmp":"tmp/mycota-cdk_0.2.0_1787602806009_0.10227794163353154","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@bubltec/mycota-cdk","version":"0.3.0","_id":"@bubltec/mycota-cdk@0.3.0","maintainers":[{"name":"jjosef","email":"john.josef@gmail.com"}],"dist":{"shasum":"89f033264bb90100a6f1de564363d6edbf608c5a","tarball":"https://registry.npmjs.org/@bubltec/mycota-cdk/-/mycota-cdk-0.3.0.tgz","fileCount":41,"integrity":"sha512-MYeGGq3xsmmOdZQ5NnaRoMLyWtZmThX0+K9zGVyR3gBHGYMpaE9nD2jP1sB8CHTco//9f5Jc8LIApUOi85BlsA==","signatures":[{"sig":"MEUCIFCto+6g4qGeKcYg3PjQiML+3X59rWwWpYFjsAuJFjjnAiEAo0pvPI2GzOi+COsGwl9DHeSYyA8fSk8M4BZxXa3b1LU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@bubltec%2fmycota-cdk@0.3.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":60801},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"scripts":{"lint":"oxlint -c ../../.oxlintrc.json src","test":"vitest run","build":"tsc -b && node scripts/build-lambda.mjs","pretest":"pnpm run build","typecheck":"tsc -b --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7005195c-1683-4186-a71e-7f8ad2f27643"}},"repository":{"url":"https://github.com/bubltec/mycota","type":"git","directory":"packages/cdk"},"description":"CDK constructs for mycota: grantSsmConfigRead, EphemeralConfig, MediaBucket, and JobQueue.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"@bubltec/mycota-config":"0.3.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.1.0","esbuild":"^0.24.2","constructs":"^10.4.0","typescript":"^5.8.0","@types/node":"^22.10.0","aws-cdk-lib":"^2.261.0","@types/aws-lambda":"^8.10.146"},"peerDependencies":{"constructs":"^10.4.0","aws-cdk-lib":"^2.261.0"},"_npmOperationalInternal":{"tmp":"tmp/mycota-cdk_0.3.0_1787613278737_0.24756518781463877","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"@bubltec/mycota-cdk","version":"0.4.0","_id":"@bubltec/mycota-cdk@0.4.0","maintainers":[{"name":"jjosef","email":"john.josef@gmail.com"}],"dist":{"shasum":"8c7ad6c56b38530f4eb90610c8f0b39e48e00ccb","tarball":"https://registry.npmjs.org/@bubltec/mycota-cdk/-/mycota-cdk-0.4.0.tgz","fileCount":45,"integrity":"sha512-g3wtXzVYAaHm0e0bj6C5MjJmIF692WZYo2t7ukI3g14SbBoW4b0B1d7Weda0glRv3jo6KiBSZIjp7I6kwDZyVQ==","signatures":[{"sig":"MEYCIQCfmQ270+IYjH5n9Pb4ZLQgLiPg4lyycda5hkQUZbDKwwIhAOGJS/aXL9A8VZ6HYQTjqUUscBqyxIhuksBq2n1g796v","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@bubltec%2fmycota-cdk@0.4.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":69676},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"scripts":{"lint":"oxlint -c ../../.oxlintrc.json src","test":"vitest run","build":"tsc -b && node scripts/build-lambda.mjs","pretest":"pnpm run build","typecheck":"tsc -b --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7005195c-1683-4186-a71e-7f8ad2f27643"}},"repository":{"url":"https://github.com/bubltec/mycota","type":"git","directory":"packages/cdk"},"description":"CDK constructs for mycota: grantSsmConfigRead, EphemeralConfig, MediaBucket, JobQueue, and PostgresInstance.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"@bubltec/mycota-config":"0.4.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.1.0","esbuild":"^0.24.2","constructs":"^10.4.0","typescript":"^5.8.0","@types/node":"^22.10.0","aws-cdk-lib":"^2.261.0","@types/aws-lambda":"^8.10.146"},"peerDependencies":{"constructs":"^10.4.0","aws-cdk-lib":"^2.261.0"},"_npmOperationalInternal":{"tmp":"tmp/mycota-cdk_0.4.0_1787616887632_0.5418619757029373","host":"s3://npm-registry-packages-npm-production"}},"0.5.0":{"name":"@bubltec/mycota-cdk","version":"0.5.0","_id":"@bubltec/mycota-cdk@0.5.0","maintainers":[{"name":"jjosef","email":"john.josef@gmail.com"}],"dist":{"shasum":"3ce9e0c7a0b696e55950f46226ff9a238bb747c7","tarball":"https://registry.npmjs.org/@bubltec/mycota-cdk/-/mycota-cdk-0.5.0.tgz","fileCount":45,"integrity":"sha512-AIhVGJucTdgOY5c9ccewf1FuX199AmeK8iK8x/ZNI9I1FuPpCVc9Sctch9/DAvvLRzSJUUtaKBYhyomSmbMJCA==","signatures":[{"sig":"MEYCIQC5z/Nd+oxSzKawPkwrWZZdzqyI0EDHNleRN9Ve3FbUvgIhAJJxutZyyQa4Y/NP27KTK1LMXwbvsg9VVVZfQLhwA/aZ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@bubltec%2fmycota-cdk@0.5.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":69676},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"scripts":{"lint":"oxlint -c ../../.oxlintrc.json src","test":"vitest run","build":"tsc -b && node scripts/build-lambda.mjs","pretest":"pnpm run build","typecheck":"tsc -b --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7005195c-1683-4186-a71e-7f8ad2f27643"}},"repository":{"url":"https://github.com/bubltec/mycota","type":"git","directory":"packages/cdk"},"description":"CDK constructs for mycota: grantSsmConfigRead, EphemeralConfig, MediaBucket, JobQueue, and PostgresInstance.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"@bubltec/mycota-config":"0.5.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.1.0","esbuild":"^0.24.2","constructs":"^10.4.0","typescript":"^5.8.0","@types/node":"^22.10.0","aws-cdk-lib":"^2.261.0","@types/aws-lambda":"^8.10.146"},"peerDependencies":{"constructs":"^10.4.0","aws-cdk-lib":"^2.261.0"},"_npmOperationalInternal":{"tmp":"tmp/mycota-cdk_0.5.0_1787687896877_0.6534140151838093","host":"s3://npm-registry-packages-npm-production"}},"0.6.0":{"name":"@bubltec/mycota-cdk","version":"0.6.0","_id":"@bubltec/mycota-cdk@0.6.0","maintainers":[{"name":"jjosef","email":"john.josef@gmail.com"}],"dist":{"shasum":"22b8a473e52092212bdf4be06277a8c0414ac1b8","tarball":"https://registry.npmjs.org/@bubltec/mycota-cdk/-/mycota-cdk-0.6.0.tgz","fileCount":61,"integrity":"sha512-yMjAVOnYWoieDBNY9qp0PT1eTk1JUlOo5soVXbedowOAYMheqRMfuTGTfmL4P9JpJRAUxW00G8RbUcuaQvXxkg==","signatures":[{"sig":"MEUCIG+4ycb18y2oxow1Na33zhWvCOXBpxeB1VcKP/V4j6XZAiEAyd4ajXsrMDtjNmJ90i6x0vJogb9WOVqBkwZZTsH57OA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@bubltec%2fmycota-cdk@0.6.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":90447},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"scripts":{"lint":"oxlint -c ../../.oxlintrc.json src","test":"vitest run","build":"tsc -b && node scripts/build-lambda.mjs","pretest":"pnpm run build","typecheck":"tsc -b --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7005195c-1683-4186-a71e-7f8ad2f27643"}},"repository":{"url":"https://github.com/bubltec/mycota","type":"git","directory":"packages/cdk"},"description":"CDK constructs for mycota: grantSsmConfigRead, EphemeralConfig, MediaBucket, JobQueue, PostgresInstance, SesDomain, and GithubActionsDeployRole.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"@bubltec/mycota-config":"0.6.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.1.0","esbuild":"^0.24.2","constructs":"^10.4.0","typescript":"^5.8.0","@types/node":"^22.10.0","aws-cdk-lib":"^2.261.0","@types/aws-lambda":"^8.10.146"},"peerDependencies":{"constructs":"^10.4.0","aws-cdk-lib":"^2.261.0"},"_npmOperationalInternal":{"tmp":"tmp/mycota-cdk_0.6.0_1788890244108_0.27833748301640804","host":"s3://npm-registry-packages-npm-production"}},"1.0.0":{"name":"@bubltec/mycota-cdk","version":"1.0.0","_id":"@bubltec/mycota-cdk@1.0.0","maintainers":[{"name":"jjosef","email":"john.josef@gmail.com"}],"dist":{"shasum":"d8e635e297e1b7cdfa82ea498c220b50ae91dd5d","tarball":"https://registry.npmjs.org/@bubltec/mycota-cdk/-/mycota-cdk-1.0.0.tgz","fileCount":61,"integrity":"sha512-AF+4XFtyhXrfRYLTV3o5EME8a5YwEcWKY1j7i+/IY+eF89ivm37g05h47c9nzVDq12Fiya9uQOl+SLikuEKhkg==","signatures":[{"sig":"MEUCIAZxKC8HujFhpLu/Kxz4xskQFV+Cs5HA/7P8rks/3DfYAiEA51SPlLeLqBbGV3EFvQ87rC9tRZ7+eytzsEhRLsLEEFk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQCXiUEjk1o1LGEOm6svJPp3Oo3OmGt9Nhupwd0jXYU3pAIgHYIawuNQqGG9NYyFfFLeiOhKJBxzM9PrxoAmSEeqFnw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@bubltec%2fmycota-cdk@1.0.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":90601},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"scripts":{"lint":"oxlint -c ../../.oxlintrc.json src","test":"vitest run --exclude '**/dist/**'","build":"tsc -b && node scripts/build-lambda.mjs","pretest":"pnpm run build","typecheck":"tsc -b --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7005195c-1683-4186-a71e-7f8ad2f27643"}},"repository":{"url":"https://github.com/bubltec/mycota","type":"git","directory":"packages/cdk"},"description":"CDK constructs for mycota: grantSsmConfigRead, EphemeralConfig, MediaBucket, JobQueue, PostgresInstance, SesDomain, and GithubActionsDeployRole.","directories":{},"_nodeVersion":"26.9.0","dependencies":{"@bubltec/mycota-config":"1.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"5.0.1","esbuild":"0.28.2","constructs":"10.8.1","typescript":"7.0.2","@types/node":"26.6.2","aws-cdk-lib":"2.270.0","@types/aws-lambda":"8.10.163"},"peerDependencies":{"constructs":"^10.4.0","aws-cdk-lib":"^2.261.0"},"_npmOperationalInternal":{"tmp":"tmp/mycota-cdk_1.0.0_1789939125359_0.4128163778371954","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"_id":"@bubltec/mycota-cdk@1.0.1","dist":{"shasum":"42e9b59c6b174981f31501ab409a7d6159e8edbb","tarball":"https://registry.npmjs.org/@bubltec/mycota-cdk/-/mycota-cdk-1.0.1.tgz","fileCount":61,"integrity":"sha512-iI24uY9A6gFQMQw+rVbWGCiY5oslxU57AkBHzj4HJLhjOJVQjIGjUQr4WaFYztKDaYwwaF6RCeCgFxWHcu7m/A==","signatures":[{"sig":"MEQCICLtsorex+SNg+G5L9aimIXYxYh69zNWq/XbBJzLcFiOAiAGfoU566yTQjQnwEnJblrmsZIg5c/eATj6/PmyEVOL5w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQCLOch8zmalEREb0R+A/tstUP49J5bnVxsI78nXuuS8AwIgfnPa6gncJA4Ui5bbvgB/ukMDtKo3x/6Siu6F67UhSWE="}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@bubltec%2fmycota-cdk@1.0.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":90601},"main":"./dist/index.js","name":"@bubltec/mycota-cdk","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"scripts":{"lint":"oxlint -c ../../.oxlintrc.json src","test":"vitest run --exclude '**/dist/**'","build":"tsc -b && node scripts/build-lambda.mjs","pretest":"pnpm run build","typecheck":"tsc -b --noEmit"},"version":"1.0.1","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7005195c-1683-4186-a71e-7f8ad2f27643"}},"repository":{"url":"https://github.com/bubltec/mycota","type":"git","directory":"packages/cdk"},"description":"CDK constructs for mycota: grantSsmConfigRead, EphemeralConfig, MediaBucket, JobQueue, PostgresInstance, SesDomain, and GithubActionsDeployRole.","directories":{},"maintainers":[{"name":"jjosef","email":"john.josef@gmail.com"}],"_nodeVersion":"26.9.0","dependencies":{"@bubltec/mycota-config":"1.0.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"5.0.1","esbuild":"0.28.2","constructs":"10.8.1","typescript":"7.0.2","@types/node":"26.6.2","aws-cdk-lib":"2.270.0","@types/aws-lambda":"8.10.163"},"peerDependencies":{"constructs":"^10.4.0","aws-cdk-lib":"^2.261.0"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/mycota-cdk_1.0.1_1789943263971_0.9984957948241333"}}},"time":{"created":"2026-07-28T23:31:06.819Z","modified":"2026-09-20T22:27:44.359Z","0.1.0-dev.0":"2026-07-28T23:31:07.267Z","0.1.0-dev.7":"2026-07-31T01:39:38.477Z","0.0.1-next.10":"2026-07-31T02:45:53.794Z","0.0.1-next.12":"2026-07-31T02:57:11.278Z","0.1.0":"2026-07-31T04:06:11.554Z","0.1.1-next.18":"2026-08-24T15:25:49.696Z","0.2.0":"2026-08-24T20:20:06.157Z","0.3.0":"2026-08-24T23:14:38.880Z","0.4.0":"2026-08-25T00:14:47.807Z","0.5.0":"2026-08-25T19:58:17.011Z","0.6.0":"2026-09-08T17:57:24.240Z","1.0.0":"2026-09-20T21:18:45.440Z","1.0.1":"2026-09-20T22:27:44.066Z"},"repository":{"url":"https://github.com/bubltec/mycota","type":"git","directory":"packages/cdk"},"description":"CDK constructs for mycota: grantSsmConfigRead, EphemeralConfig, MediaBucket, JobQueue, PostgresInstance, SesDomain, and GithubActionsDeployRole.","maintainers":[{"name":"jjosef","email":"john.josef@gmail.com"}],"readme":"# @bubltec/mycota-cdk\n\nCDK constructs for mycota: SSM config grants and ephemeral bootstrap, plus\na private `MediaBucket` (S3 + CloudFront OAC), a `JobQueue` (SQS + DLQ +\nEventBridge Scheduler group), a `PostgresInstance` (RDS Postgres 16), a\n`SesDomain` (verified sending identity), and a `GithubActionsDeployRole`\n(OIDC assume-role for `cdk deploy`).\n\n`aws-cdk-lib`/`constructs` are **peer dependencies**, not bundled — bring\nyour own pinned CDK version. Installing this package doesn't pull in a\nsecond copy of either (which would otherwise risk the \"two copies of\nconstructs\" jsii error).\n\n```bash\npnpm add @bubltec/mycota-cdk aws-cdk-lib constructs\n```\n\n## `grantSsmConfigRead(grantee, options)`\n\nGrants read access to `/{namespace}/{env}/*` (and `/{namespace}/shared/*`\nby default) on any `IGrantable` — the generalized version of a single\n`ssm.StringParameter...grantRead(handler)` call a project would otherwise\nhand-write per secret. Call it once on whatever role your Lambda/ECS task\nalready has; `@bubltec/mycota-config`'s `loadSsmConfig` running inside that\ncompute is what actually reads the values at runtime.\n\n```ts\nimport { grantSsmConfigRead } from '@bubltec/mycota-cdk';\n\ngrantSsmConfigRead(myLambda, { namespace: 'myapp', env: 'dev' });\n\n// Omit the /shared/* grant if this role genuinely never needs it:\ngrantSsmConfigRead(myLambda, { namespace: 'myapp', env: 'dev', includeShared: false });\n```\n\n| Option | Type | Default | |\n| --- | --- | --- | --- |\n| `namespace` | `string` | — | Top-level SSM prefix, e.g. `'myapp'`. |\n| `env` | `string` | — | Any string — `'dev'`, `'prod'`, `'pr-123'`. |\n| `includeShared` | `boolean` | `true` | Also grant `/{namespace}/shared/*`. |\n\n## `EphemeralConfig` construct\n\nBootstraps an ephemeral stack's SSM config on creation by cloning it from a\ntemplate environment, and tears it down when the stack is destroyed —\nclosing the ephemeral-stack loop at the infra layer, not just the runtime\nlayer (`cloneSsmNamespace`/`deleteSsmNamespace` still have to be called by\n*something*; this is that something, wired into CloudFormation's own\ncreate/delete lifecycle via a Lambda-backed custom resource).\n\n```ts\nimport { EphemeralConfig } from '@bubltec/mycota-cdk';\n\nnew EphemeralConfig(this, 'Config', {\n  namespace: 'myapp',\n  sourceEnv: 'dev',\n  targetEnv: 'pr-123',\n});\n```\n\n| Prop | Type | | |\n| --- | --- | --- | --- |\n| `namespace` | `string` | Top-level SSM prefix, e.g. `'myapp'`. |\n| `sourceEnv` | `string` | The environment to clone config *from* — e.g. `'dev'`. |\n| `targetEnv` | `string` | The ephemeral environment being bootstrapped — e.g. `'pr-123'`. |\n\n**Create** clones `sourceEnv` → `targetEnv`. **Delete** removes\n`targetEnv`'s parameters. **Update** is a deliberate no-op — re-cloning on\nevery stack update would silently overwrite config someone hand-tweaked\nfor this one ephemeral environment after it was created. Bootstrap once,\nclean up once.\n\nThe handler's own execution role only gets exactly what it needs: read on\n`sourceEnv`, read+write+delete on `targetEnv` — scoped per-instance, not a\nblanket grant across the whole namespace.\n\n## `MediaBucket` construct\n\nPrivate S3 bucket (BlockPublicAccess ALL) with an optional CloudFront\ndistribution using origin access control. Public `MediaStore` objects use\nthe distribution domain; private objects still go through signed S3 GETs.\nNever a public-read bucket.\n\n```ts\nimport { MediaBucket } from '@bubltec/mycota-cdk';\n\nconst media = new MediaBucket(this, 'Media', { namespace: 'myapp', env: 'dev' });\nmedia.grantReadWrite(myLambda);\n// media.publicBaseUrl → https://xxxx.cloudfront.net\n```\n\n## `JobQueue` construct\n\nSQS queue + DLQ + EventBridge Scheduler group + a role Scheduler assumes to\n`SendMessage`. Delayed work days out (campaign beats) uses Scheduler `at()`,\nnot SQS `DelaySeconds` (15 minute cap). Runtime counterpart:\n`@bubltec/mycota-jobs` `EventBridgeJobScheduler`.\n\n```ts\nimport { JobQueue } from '@bubltec/mycota-cdk';\n\nconst jobs = new JobQueue(this, 'Jobs', { namespace: 'myapp', env: 'dev' });\njobs.grantSchedule(myApi);\njobs.grantConsume(myWorker);\n```\n\n## `PostgresInstance` construct\n\nRDS Postgres 16 in private subnets. The consuming app supplies the `IVpc`.\npgvector is enabled by `@bubltec/mycota-postgres` `VECTOR_EXTENSION` at\nmigrate time, not by this construct. Local boot is Docker.\n\n```ts\nimport { PostgresInstance } from '@bubltec/mycota-cdk';\n\nconst db = new PostgresInstance(this, 'Db', { namespace: 'myapp', env: 'dev', vpc });\ndb.allowDefaultPortFrom(myApi);\ndb.grantSecretRead(myApi);\n```\n\n## `SesDomain` construct\n\nVerified SES sending domain with Easy DKIM and a custom MAIL FROM\n(`mail.<domain>` by default). The app supplies the `IPublicHostedZone` —\ntypically a product subdomain so bounce reputation stays off the parent\norg domain. CDK writes the DKIM CNAMEs and MAIL FROM MX/SPF into that zone.\n\n```ts\nimport { SesDomain } from '@bubltec/mycota-cdk';\n\nconst email = new SesDomain(this, 'Email', { hostedZone });\nemail.grantSendEmail(myApi);\n// email.domain → sloth.example.com\n// email.mailFromDomain → mail.sloth.example.com\n```\n\n## `GithubActionsDeployRole` construct\n\nIAM role GitHub Actions assumes via OIDC to run `cdk deploy`. Trusts both\nthe ref-based `sub` (`repo:owner/name:ref:refs/heads/main`) and the\nenvironment form (`repo:owner/name:environment:production`) — a job with\n`environment:` sends the latter, not the ref. The role may only assume the\nfour CDK bootstrap roles; it has no other AWS permissions.\n\nImports the account's existing `token.actions.githubusercontent.com`\nprovider rather than creating one (IAM allows only one per URL).\n\n```ts\nimport { GithubActionsDeployRole } from '@bubltec/mycota-cdk';\n\nconst ci = new GithubActionsDeployRole(this, 'Gha', {\n  repository: 'bubltec/political-sloth',\n  roleName: 'sloth-gha-deploy',\n});\n```\n\n## Testing this package locally\n\n`pnpm test` builds first (`pretest` runs `pnpm run build`, since the\nLambda asset has to exist on disk before CDK can synth a construct that\nreferences it via `Code.fromAsset`) — no manual build step needed before\nrunning tests.\n","readmeFilename":""}