local-serverless-stack 1.0.0 → 1.1.0
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/CHANGELOG.md +125 -3
- package/README.md +92 -38
- package/bin/cli.js +218 -28
- package/bin/i18n.js +57 -3
- package/dist/client/index.d.ts +1 -1
- package/dist/client/index.d.ts.map +1 -1
- package/dist/client/namespaces/services.d.ts +46 -0
- package/dist/client/namespaces/services.d.ts.map +1 -1
- package/dist/client/namespaces/services.js +1 -0
- package/dist/client/namespaces/services.js.map +1 -1
- package/dist/mcp/tools.d.ts.map +1 -1
- package/dist/mcp/tools.js +17 -0
- package/dist/mcp/tools.js.map +1 -1
- package/dist/server/engine/backends/self-backend.d.ts +26 -1
- package/dist/server/engine/backends/self-backend.d.ts.map +1 -1
- package/dist/server/engine/backends/self-backend.js +104 -11
- package/dist/server/engine/backends/self-backend.js.map +1 -1
- package/dist/server/engine/emulators/dynamodb/expressions/parser.d.ts.map +1 -1
- package/dist/server/engine/emulators/dynamodb/expressions/parser.js +12 -1
- package/dist/server/engine/emulators/dynamodb/expressions/parser.js.map +1 -1
- package/dist/server/engine/emulators/dynamodb/expressions/reserved-words.d.ts +3 -0
- package/dist/server/engine/emulators/dynamodb/expressions/reserved-words.d.ts.map +1 -0
- package/dist/server/engine/emulators/dynamodb/expressions/reserved-words.js +78 -0
- package/dist/server/engine/emulators/dynamodb/expressions/reserved-words.js.map +1 -0
- package/dist/server/engine/emulators/dynamodb/index.d.ts +11 -0
- package/dist/server/engine/emulators/dynamodb/index.d.ts.map +1 -1
- package/dist/server/engine/emulators/dynamodb/index.js +101 -7
- package/dist/server/engine/emulators/dynamodb/index.js.map +1 -1
- package/dist/server/engine/emulators/dynamodb/query.d.ts +1 -0
- package/dist/server/engine/emulators/dynamodb/query.d.ts.map +1 -1
- package/dist/server/engine/emulators/dynamodb/query.js +34 -6
- package/dist/server/engine/emulators/dynamodb/query.js.map +1 -1
- package/dist/server/engine/emulators/s3/index.d.ts +10 -0
- package/dist/server/engine/emulators/s3/index.d.ts.map +1 -1
- package/dist/server/engine/emulators/s3/index.js +369 -25
- package/dist/server/engine/emulators/s3/index.js.map +1 -1
- package/dist/server/engine/emulators/sqs/index.d.ts +2 -0
- package/dist/server/engine/emulators/sqs/index.d.ts.map +1 -1
- package/dist/server/engine/emulators/sqs/index.js +70 -7
- package/dist/server/engine/emulators/sqs/index.js.map +1 -1
- package/dist/server/engine/emulators/sqs/queue.d.ts +2 -1
- package/dist/server/engine/emulators/sqs/queue.d.ts.map +1 -1
- package/dist/server/engine/emulators/sqs/queue.js +68 -35
- package/dist/server/engine/emulators/sqs/queue.js.map +1 -1
- package/dist/server/engine/emulators/ssm/index.d.ts +31 -0
- package/dist/server/engine/emulators/ssm/index.d.ts.map +1 -0
- package/dist/server/engine/emulators/ssm/index.js +670 -0
- package/dist/server/engine/emulators/ssm/index.js.map +1 -0
- package/dist/server/engine/http/errors.d.ts +1 -0
- package/dist/server/engine/http/errors.d.ts.map +1 -1
- package/dist/server/engine/http/errors.js +13 -5
- package/dist/server/engine/http/errors.js.map +1 -1
- package/dist/server/engine/http/is-aws-request.d.ts.map +1 -1
- package/dist/server/engine/http/is-aws-request.js +13 -3
- package/dist/server/engine/http/is-aws-request.js.map +1 -1
- package/dist/server/engine/http/protocols/aws-json.d.ts +1 -0
- package/dist/server/engine/http/protocols/aws-json.d.ts.map +1 -1
- package/dist/server/engine/http/protocols/aws-json.js +13 -0
- package/dist/server/engine/http/protocols/aws-json.js.map +1 -1
- package/dist/server/engine/http/reset.d.ts +4 -0
- package/dist/server/engine/http/reset.d.ts.map +1 -0
- package/dist/server/engine/http/reset.js +17 -0
- package/dist/server/engine/http/reset.js.map +1 -0
- package/dist/server/engine/http/router.d.ts +1 -0
- package/dist/server/engine/http/router.d.ts.map +1 -1
- package/dist/server/engine/http/router.js +185 -34
- package/dist/server/engine/http/router.js.map +1 -1
- package/dist/server/engine/types.d.ts +2 -1
- package/dist/server/engine/types.d.ts.map +1 -1
- package/dist/server/routes/apis.d.ts.map +1 -1
- package/dist/server/routes/apis.js +6 -0
- package/dist/server/routes/apis.js.map +1 -1
- package/dist/server/routes/config.d.ts.map +1 -1
- package/dist/server/routes/config.js +25 -1
- package/dist/server/routes/config.js.map +1 -1
- package/dist/server/routes/lambdas.d.ts.map +1 -1
- package/dist/server/routes/lambdas.js +12 -0
- package/dist/server/routes/lambdas.js.map +1 -1
- package/dist/server/routes/services.d.ts.map +1 -1
- package/dist/server/routes/services.js +66 -5
- package/dist/server/routes/services.js.map +1 -1
- package/dist/server/runtime/runtime-worker.js +40 -3
- package/dist/server/runtime/runtime-worker.js.map +1 -1
- package/dist/server/services/api-gateway-events.d.ts +14 -0
- package/dist/server/services/api-gateway-events.d.ts.map +1 -1
- package/dist/server/services/api-gateway-events.js +114 -8
- package/dist/server/services/api-gateway-events.js.map +1 -1
- package/dist/server/services/artifact-staleness.d.ts +20 -0
- package/dist/server/services/artifact-staleness.d.ts.map +1 -0
- package/dist/server/services/artifact-staleness.js +115 -0
- package/dist/server/services/artifact-staleness.js.map +1 -0
- package/dist/server/services/authorizer-service.d.ts +34 -5
- package/dist/server/services/authorizer-service.d.ts.map +1 -1
- package/dist/server/services/authorizer-service.js +0 -0
- package/dist/server/services/authorizer-service.js.map +1 -1
- package/dist/server/services/cache-manager.d.ts +5 -0
- package/dist/server/services/cache-manager.d.ts.map +1 -1
- package/dist/server/services/cache-manager.js.map +1 -1
- package/dist/server/services/cfn-intrinsics.d.ts +63 -0
- package/dist/server/services/cfn-intrinsics.d.ts.map +1 -0
- package/dist/server/services/cfn-intrinsics.js +403 -0
- package/dist/server/services/cfn-intrinsics.js.map +1 -0
- package/dist/server/services/cfn-physical-values.d.ts +51 -0
- package/dist/server/services/cfn-physical-values.d.ts.map +1 -0
- package/dist/server/services/cfn-physical-values.js +186 -0
- package/dist/server/services/cfn-physical-values.js.map +1 -0
- package/dist/server/services/cloudformation-parser.d.ts +26 -3
- package/dist/server/services/cloudformation-parser.d.ts.map +1 -1
- package/dist/server/services/cloudformation-parser.js +79 -7
- package/dist/server/services/cloudformation-parser.js.map +1 -1
- package/dist/server/services/config-manager.d.ts +49 -2
- package/dist/server/services/config-manager.d.ts.map +1 -1
- package/dist/server/services/config-manager.js +206 -24
- package/dist/server/services/config-manager.js.map +1 -1
- package/dist/server/services/gateway-manager.d.ts.map +1 -1
- package/dist/server/services/gateway-manager.js +52 -20
- package/dist/server/services/gateway-manager.js.map +1 -1
- package/dist/server/services/lambda-runtime-manager.d.ts +2 -0
- package/dist/server/services/lambda-runtime-manager.d.ts.map +1 -1
- package/dist/server/services/lambda-runtime-manager.js +49 -15
- package/dist/server/services/lambda-runtime-manager.js.map +1 -1
- package/dist/server/services/raw-api-assembler.d.ts +1 -1
- package/dist/server/services/raw-api-assembler.d.ts.map +1 -1
- package/dist/server/services/raw-api-assembler.js +18 -8
- package/dist/server/services/raw-api-assembler.js.map +1 -1
- package/dist/server/services/resource-provisioner.d.ts +31 -1
- package/dist/server/services/resource-provisioner.d.ts.map +1 -1
- package/dist/server/services/resource-provisioner.js +257 -25
- package/dist/server/services/resource-provisioner.js.map +1 -1
- package/dist/server/services/s3-explorer.js +1 -1
- package/dist/server/services/seed-manager.d.ts.map +1 -1
- package/dist/server/services/seed-manager.js +11 -6
- package/dist/server/services/seed-manager.js.map +1 -1
- package/dist/server/services/serverless-state-parser.d.ts +45 -2
- package/dist/server/services/serverless-state-parser.d.ts.map +1 -1
- package/dist/server/services/serverless-state-parser.js +217 -29
- package/dist/server/services/serverless-state-parser.js.map +1 -1
- package/dist/server/services/service-graph.d.ts +76 -0
- package/dist/server/services/service-graph.d.ts.map +1 -0
- package/dist/server/services/service-graph.js +914 -0
- package/dist/server/services/service-graph.js.map +1 -0
- package/dist/server/services/service-registrar.d.ts +17 -1
- package/dist/server/services/service-registrar.d.ts.map +1 -1
- package/dist/server/services/service-registrar.js +190 -66
- package/dist/server/services/service-registrar.js.map +1 -1
- package/dist/server/services/service-scanner.d.ts +7 -2
- package/dist/server/services/service-scanner.d.ts.map +1 -1
- package/dist/server/services/service-scanner.js +53 -7
- package/dist/server/services/service-scanner.js.map +1 -1
- package/dist/server/services/source-watcher.d.ts +1 -0
- package/dist/server/services/source-watcher.d.ts.map +1 -1
- package/dist/server/services/source-watcher.js +19 -1
- package/dist/server/services/source-watcher.js.map +1 -1
- package/dist/server/services/worker-runtime.d.ts +82 -0
- package/dist/server/services/worker-runtime.d.ts.map +1 -0
- package/dist/server/services/worker-runtime.js +303 -0
- package/dist/server/services/worker-runtime.js.map +1 -0
- package/dist/ui/assets/ApisPage-BkW-QZ0X.js +1 -0
- package/dist/ui/assets/BucketDetailPage-CJwTQJh7.js +1 -0
- package/dist/ui/assets/BucketsPage-B1xPVhZC.js +1 -0
- package/dist/ui/assets/DynamoPage-DvbpwZDc.js +1 -0
- package/dist/ui/assets/DynamoTablePage-xn3Lq3so.js +3 -0
- package/dist/ui/assets/LambdaDetailPage-BhUyO77H.js +4 -0
- package/dist/ui/assets/LambdasPage-CUF_4rOH.js +1 -0
- package/dist/ui/assets/OnboardingPage-U49THUzu.js +1 -0
- package/dist/ui/assets/OpenSearchCollectionPage-BJTVNCq4.js +1 -0
- package/dist/ui/assets/OpenSearchPage-4s-egkB9.js +1 -0
- package/dist/ui/assets/OverviewPage-DJeJQktG.js +1 -0
- package/dist/ui/assets/{OverviewPage-C1pBJ8aP.css → OverviewPage-DjQETmb_.css} +1 -1
- package/dist/ui/assets/QueueDetailPage-DWsy5Yt8.js +1 -0
- package/dist/ui/assets/QueuesPage-BZJSqman.js +1 -0
- package/dist/ui/assets/SecretsPage-YC9ua54G.js +1 -0
- package/dist/ui/assets/ServiceDetailPage-Cum5frP4.js +2 -0
- package/dist/ui/assets/ServicesPage-IpaPDuqx.js +2 -0
- package/dist/ui/assets/SettingsPage-BiCRU8O6.js +1 -0
- package/dist/ui/assets/index-BDlrAJhi.css +1 -0
- package/dist/ui/assets/index-BouKSS43.js +38 -0
- package/dist/ui/assets/resourceIcons-DZs28nbs.js +1 -0
- package/dist/ui/index.html +5 -2
- package/package.json +1 -1
- package/dist/ui/assets/ApisPage-BOuimwWz.js +0 -1
- package/dist/ui/assets/BucketDetailPage-vLYwhoQt.js +0 -1
- package/dist/ui/assets/BucketsPage-Cu5lU1Hp.js +0 -1
- package/dist/ui/assets/DynamoPage-y3TTEPUL.js +0 -1
- package/dist/ui/assets/DynamoTablePage-BnmSRZjc.js +0 -3
- package/dist/ui/assets/LambdaDetailPage-B5q_d27t.js +0 -4
- package/dist/ui/assets/LambdasPage-CJpRoEDx.js +0 -1
- package/dist/ui/assets/OnboardingPage-D02dymQi.js +0 -1
- package/dist/ui/assets/OpenSearchCollectionPage-B_wWTlfL.js +0 -1
- package/dist/ui/assets/OpenSearchPage-BLEgfF_g.js +0 -1
- package/dist/ui/assets/OverviewPage-EdJWiAt6.js +0 -1
- package/dist/ui/assets/QueueDetailPage-ByEYHvHe.js +0 -1
- package/dist/ui/assets/QueuesPage-CvwYHSll.js +0 -1
- package/dist/ui/assets/SecretsPage-DASw8Ntf.js +0 -1
- package/dist/ui/assets/ServiceDetailPage-BMsUDg6L.js +0 -2
- package/dist/ui/assets/ServicesPage-2JuiIiRr.js +0 -2
- package/dist/ui/assets/SettingsPage-DStO4bgN.js +0 -1
- package/dist/ui/assets/index-BIEznsi4.js +0 -37
- package/dist/ui/assets/index-BRMvNP3Y.css +0 -1
- package/dist/ui/assets/resourceIcons-baecADXA.js +0 -1
|
@@ -0,0 +1,186 @@
|
|
|
1
|
+
// Physical values for CloudFormation resource references — what `Ref` and
|
|
2
|
+
// `Fn::GetAtt` on a resource return in AWS, computed for the local stack.
|
|
3
|
+
//
|
|
4
|
+
// The static intrinsic pass (cfn-intrinsics.ts) deliberately leaves a
|
|
5
|
+
// Ref/GetAtt to a RESOURCE in place: before provisioning there is no queue URL,
|
|
6
|
+
// no stream label, no secret suffix. A function's environment, though, is
|
|
7
|
+
// exactly where templates put those references (`TABLE_NAME: !Ref OrdersTable`,
|
|
8
|
+
// `QUEUE_URL: !Ref OrdersQueue`, `STREAM_ARN: !GetAtt OrdersTable.StreamArn`),
|
|
9
|
+
// and before this module the runtime got the logical id — `TABLE_NAME=OrdersTable`
|
|
10
|
+
// — or a JSON blob for anything fancier. The handler then talked to a table
|
|
11
|
+
// that does not exist.
|
|
12
|
+
//
|
|
13
|
+
// Values follow AWS's documented return values per type. The few that only
|
|
14
|
+
// exist once the resource does (queue URL, stream ARN, secret ARN, collection
|
|
15
|
+
// id/endpoint) come from `RuntimeAttributes`, which the provisioner looks up
|
|
16
|
+
// after its pass (ResourceProvisioner.lookupRuntimeAttributes).
|
|
17
|
+
import { ACCOUNT_ID, PARTITION, NO_VALUE, IntrinsicResolver, createIntrinsicContext, intrinsicName, } from './cfn-intrinsics.js';
|
|
18
|
+
export function emptyRuntimeAttributes() {
|
|
19
|
+
return { queueUrls: new Map(), streamArns: new Map(), secretArns: new Map(), collections: new Map() };
|
|
20
|
+
}
|
|
21
|
+
// The event bus a rule lives on, for its ARN: a same-template bus logical id,
|
|
22
|
+
// the tail of a bus ARN, or a literal name. The default bus has no segment.
|
|
23
|
+
function ruleBusSegment(rule, byLogicalId) {
|
|
24
|
+
const ref = rule.eventBusRef;
|
|
25
|
+
if (!ref || ref === 'default')
|
|
26
|
+
return '';
|
|
27
|
+
const bus = byLogicalId.get(ref);
|
|
28
|
+
if (bus?.type === 'eventbus')
|
|
29
|
+
return `${bus.name}/`;
|
|
30
|
+
const name = ref.startsWith('arn:') ? ref.slice(ref.lastIndexOf('/') + 1) : ref;
|
|
31
|
+
return name === 'default' ? '' : `${name}/`;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* The value `Ref` (attribute undefined) or `Fn::GetAtt` returns for a parsed
|
|
35
|
+
* resource, or undefined when LSS cannot know it — an unsupported attribute,
|
|
36
|
+
* or a runtime attribute the engine did not report.
|
|
37
|
+
*/
|
|
38
|
+
export function physicalValue(resource, attribute, ctx, byLogicalId = new Map()) {
|
|
39
|
+
const region = ctx.region;
|
|
40
|
+
const account = ctx.accountId ?? ACCOUNT_ID;
|
|
41
|
+
const partition = ctx.partition ?? PARTITION;
|
|
42
|
+
const runtime = ctx.runtime ?? emptyRuntimeAttributes();
|
|
43
|
+
const attr = attribute ?? 'Ref';
|
|
44
|
+
switch (resource.type) {
|
|
45
|
+
case 'lambda': {
|
|
46
|
+
const arn = `arn:${partition}:lambda:${region}:${account}:function:${resource.name}`;
|
|
47
|
+
return { Ref: resource.name, Arn: arn }[attr];
|
|
48
|
+
}
|
|
49
|
+
case 'dynamodb': {
|
|
50
|
+
const arn = `arn:${partition}:dynamodb:${region}:${account}:table/${resource.name}`;
|
|
51
|
+
if (attr === 'StreamArn')
|
|
52
|
+
return runtime.streamArns.get(resource.name);
|
|
53
|
+
return { Ref: resource.name, Arn: arn }[attr];
|
|
54
|
+
}
|
|
55
|
+
case 'sqs': {
|
|
56
|
+
// Ref on a queue is its URL — the single most surprising return value in
|
|
57
|
+
// CloudFormation, and the one handlers most often get wrong when faked.
|
|
58
|
+
if (attr === 'Ref' || attr === 'QueueUrl')
|
|
59
|
+
return runtime.queueUrls.get(resource.name);
|
|
60
|
+
const arn = `arn:${partition}:sqs:${region}:${account}:${resource.name}`;
|
|
61
|
+
return { Arn: arn, QueueName: resource.name }[attr];
|
|
62
|
+
}
|
|
63
|
+
case 'sns': {
|
|
64
|
+
const arn = `arn:${partition}:sns:${region}:${account}:${resource.name}`;
|
|
65
|
+
return { Ref: arn, TopicArn: arn, TopicName: resource.name }[attr];
|
|
66
|
+
}
|
|
67
|
+
case 's3':
|
|
68
|
+
return {
|
|
69
|
+
Ref: resource.name,
|
|
70
|
+
Arn: `arn:${partition}:s3:::${resource.name}`,
|
|
71
|
+
DomainName: `${resource.name}.s3.amazonaws.com`,
|
|
72
|
+
RegionalDomainName: `${resource.name}.s3.${region}.amazonaws.com`,
|
|
73
|
+
}[attr];
|
|
74
|
+
case 'secret':
|
|
75
|
+
// Ref and GetAtt Id are the ARN, whose six-character suffix is minted at
|
|
76
|
+
// creation — only the engine knows it.
|
|
77
|
+
return attr === 'Ref' || attr === 'Id' ? runtime.secretArns.get(resource.name) : undefined;
|
|
78
|
+
case 'eventbus':
|
|
79
|
+
return {
|
|
80
|
+
Ref: resource.name,
|
|
81
|
+
Name: resource.name,
|
|
82
|
+
Arn: `arn:${partition}:events:${region}:${account}:event-bus/${resource.name}`,
|
|
83
|
+
}[attr];
|
|
84
|
+
case 'event-rule':
|
|
85
|
+
return {
|
|
86
|
+
Ref: resource.name,
|
|
87
|
+
Arn: `arn:${partition}:events:${region}:${account}:rule/${ruleBusSegment(resource, byLogicalId)}${resource.name}`,
|
|
88
|
+
}[attr];
|
|
89
|
+
case 'ssm-parameter':
|
|
90
|
+
return {
|
|
91
|
+
Ref: resource.name,
|
|
92
|
+
Type: resource.parameterType,
|
|
93
|
+
Value: resource.value,
|
|
94
|
+
}[attr];
|
|
95
|
+
case 'opensearch': {
|
|
96
|
+
const collection = runtime.collections.get(resource.name) ?? {};
|
|
97
|
+
return {
|
|
98
|
+
Ref: collection.id,
|
|
99
|
+
Id: collection.id,
|
|
100
|
+
Arn: collection.arn,
|
|
101
|
+
CollectionEndpoint: collection.endpoint,
|
|
102
|
+
}[attr];
|
|
103
|
+
}
|
|
104
|
+
default:
|
|
105
|
+
return undefined;
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
export function createPhysicalResolver(resources, ctx) {
|
|
109
|
+
const byLogicalId = new Map();
|
|
110
|
+
for (const r of resources) {
|
|
111
|
+
if ('logicalId' in r && r.logicalId)
|
|
112
|
+
byLogicalId.set(r.logicalId, r);
|
|
113
|
+
}
|
|
114
|
+
return (logicalId, attribute) => {
|
|
115
|
+
const resource = byLogicalId.get(logicalId);
|
|
116
|
+
return resource ? physicalValue(resource, attribute, ctx, byLogicalId) : undefined;
|
|
117
|
+
};
|
|
118
|
+
}
|
|
119
|
+
// The value an unresolvable env entry falls back to: the logical id for a Ref
|
|
120
|
+
// (what LSS always used to produce), `Id.Attr` for a GetAtt, JSON otherwise.
|
|
121
|
+
function fallbackString(value) {
|
|
122
|
+
const fn = intrinsicName(value);
|
|
123
|
+
const args = fn ? value[fn] : undefined;
|
|
124
|
+
if (fn === 'Ref' && typeof args === 'string')
|
|
125
|
+
return args;
|
|
126
|
+
if (fn === 'Fn::GetAtt')
|
|
127
|
+
return Array.isArray(args) ? args.map(String).join('.') : String(args);
|
|
128
|
+
return JSON.stringify(value);
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* Turns a function's raw Environment.Variables into the strings the runtime
|
|
132
|
+
* injects: intrinsics resolved (statically, then to physical values), numbers
|
|
133
|
+
* and booleans stringified, `AWS::NoValue` dropped. A value that still cannot
|
|
134
|
+
* be resolved gets a recognizable fallback AND a warning naming it — never a
|
|
135
|
+
* silent JSON blob in an env var.
|
|
136
|
+
*/
|
|
137
|
+
export class EnvironmentResolver {
|
|
138
|
+
resolver;
|
|
139
|
+
warnings;
|
|
140
|
+
constructor(options) {
|
|
141
|
+
this.warnings = options.warnings;
|
|
142
|
+
const ctx = createIntrinsicContext(options.template, options, options.warnings);
|
|
143
|
+
ctx.resolveResource = createPhysicalResolver(options.resources, {
|
|
144
|
+
region: options.region ?? 'us-east-1',
|
|
145
|
+
accountId: options.accountId,
|
|
146
|
+
partition: options.partition,
|
|
147
|
+
runtime: options.runtime,
|
|
148
|
+
});
|
|
149
|
+
ctx.exports = options.exports;
|
|
150
|
+
this.resolver = new IntrinsicResolver(ctx);
|
|
151
|
+
}
|
|
152
|
+
// One value → its concrete string form, or undefined while anything in it is
|
|
153
|
+
// still unresolved (no fallback, no warning — for the stack export map).
|
|
154
|
+
resolveValue(raw) {
|
|
155
|
+
const value = this.resolver.resolve(raw);
|
|
156
|
+
return typeof value === 'string' || typeof value === 'number' || typeof value === 'boolean'
|
|
157
|
+
? String(value)
|
|
158
|
+
: undefined;
|
|
159
|
+
}
|
|
160
|
+
resolve(env) {
|
|
161
|
+
const result = {};
|
|
162
|
+
for (const [key, raw] of Object.entries(env)) {
|
|
163
|
+
const value = this.resolver.resolve(raw);
|
|
164
|
+
if (value === undefined || value === null || value === NO_VALUE)
|
|
165
|
+
continue;
|
|
166
|
+
if (typeof value === 'string' || typeof value === 'number' || typeof value === 'boolean') {
|
|
167
|
+
result[key] = String(value);
|
|
168
|
+
}
|
|
169
|
+
else if (Array.isArray(value) && value.every(v => typeof v === 'string' || typeof v === 'number')) {
|
|
170
|
+
// A list (Fn::Split, Fn::GetAZs, a list parameter): CloudFormation would
|
|
171
|
+
// reject it outright; the comma-joined form is what such a value is
|
|
172
|
+
// almost always meant to be read as.
|
|
173
|
+
result[key] = value.join(',');
|
|
174
|
+
}
|
|
175
|
+
else {
|
|
176
|
+
const fallback = fallbackString(value);
|
|
177
|
+
result[key] = fallback;
|
|
178
|
+
const message = `Environment variable ${key}: ${JSON.stringify(raw)} could not be resolved to a physical value — set to "${fallback}".`;
|
|
179
|
+
if (!this.warnings.includes(message))
|
|
180
|
+
this.warnings.push(message);
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
return result;
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
//# sourceMappingURL=cfn-physical-values.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cfn-physical-values.js","sourceRoot":"","sources":["../../../src/server/services/cfn-physical-values.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { GenerateSecretStringSpec } from './secret-value.js';
|
|
2
|
+
import { type TemplateResolveOptions } from './cfn-intrinsics.js';
|
|
2
3
|
interface CloudFormationTemplate {
|
|
3
4
|
Resources: Record<string, CloudFormationResource>;
|
|
4
5
|
[key: string]: unknown;
|
|
@@ -14,7 +15,7 @@ export interface LambdaResource {
|
|
|
14
15
|
name: string;
|
|
15
16
|
handler: string;
|
|
16
17
|
runtime: string;
|
|
17
|
-
environment: Record<string,
|
|
18
|
+
environment: Record<string, unknown>;
|
|
18
19
|
memorySize: number;
|
|
19
20
|
timeout: number;
|
|
20
21
|
}
|
|
@@ -114,6 +115,21 @@ export interface SecretsManagerResource {
|
|
|
114
115
|
Value: string;
|
|
115
116
|
}>;
|
|
116
117
|
}
|
|
118
|
+
export interface SsmParameterResource {
|
|
119
|
+
type: 'ssm-parameter';
|
|
120
|
+
logicalId: string;
|
|
121
|
+
name: string;
|
|
122
|
+
parameterType: string;
|
|
123
|
+
value?: string;
|
|
124
|
+
description?: string;
|
|
125
|
+
allowedPattern?: string;
|
|
126
|
+
tier?: string;
|
|
127
|
+
dataType?: string;
|
|
128
|
+
tags: Array<{
|
|
129
|
+
Key: string;
|
|
130
|
+
Value: string;
|
|
131
|
+
}>;
|
|
132
|
+
}
|
|
117
133
|
export interface EventBusResource {
|
|
118
134
|
type: 'eventbus';
|
|
119
135
|
logicalId: string;
|
|
@@ -210,7 +226,7 @@ export interface LambdaPermissionResource {
|
|
|
210
226
|
principal?: string;
|
|
211
227
|
sourceArn: unknown;
|
|
212
228
|
}
|
|
213
|
-
export type Resource = LambdaResource | DynamoDBResource | SQSResource | SNSResource | S3Resource | SecretsManagerResource | EventBusResource | EventRuleResource | OpenSearchCollectionResource | EventSourceMapping | ApiResource | ApiIntegrationResource | ApiRouteResource | ApiAuthorizerResource | LambdaPermissionResource;
|
|
229
|
+
export type Resource = LambdaResource | DynamoDBResource | SQSResource | SNSResource | S3Resource | SecretsManagerResource | SsmParameterResource | EventBusResource | EventRuleResource | OpenSearchCollectionResource | EventSourceMapping | ApiResource | ApiIntegrationResource | ApiRouteResource | ApiAuthorizerResource | LambdaPermissionResource;
|
|
214
230
|
export interface ArnResolutionContext {
|
|
215
231
|
region: string;
|
|
216
232
|
accountId: string;
|
|
@@ -224,8 +240,14 @@ export interface ResolvedArn {
|
|
|
224
240
|
value: string;
|
|
225
241
|
resolved: boolean;
|
|
226
242
|
}
|
|
243
|
+
export type TemplateParseContext = TemplateResolveOptions;
|
|
244
|
+
export interface TemplateParseResult {
|
|
245
|
+
resources: Resource[];
|
|
246
|
+
template: CloudFormationTemplate;
|
|
247
|
+
}
|
|
227
248
|
export declare class CloudFormationParser {
|
|
228
|
-
parse(template: CloudFormationTemplate, warnings?: string[]): Resource[];
|
|
249
|
+
parse(template: CloudFormationTemplate, warnings?: string[], context?: TemplateParseContext): Resource[];
|
|
250
|
+
parseTemplate(template: CloudFormationTemplate, warnings?: string[], context?: TemplateParseContext): TemplateParseResult;
|
|
229
251
|
private parseResource;
|
|
230
252
|
private parseLambda;
|
|
231
253
|
private parseDynamoDB;
|
|
@@ -235,6 +257,7 @@ export declare class CloudFormationParser {
|
|
|
235
257
|
private parseS3;
|
|
236
258
|
private parseCorsRules;
|
|
237
259
|
private parseSecret;
|
|
260
|
+
private parseSsmParameter;
|
|
238
261
|
private parseOpenSearchCollection;
|
|
239
262
|
private collectionNameFromLogicalId;
|
|
240
263
|
private parseEventBus;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cloudformation-parser.d.ts","sourceRoot":"","sources":["../../../src/server/services/cloudformation-parser.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"cloudformation-parser.d.ts","sourceRoot":"","sources":["../../../src/server/services/cloudformation-parser.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,19 +1,62 @@
|
|
|
1
1
|
import crypto from 'crypto';
|
|
2
|
+
import { resolveTemplate } from './cfn-intrinsics.js';
|
|
3
|
+
// Types parseResource drops with a warning of their own (naming the resource
|
|
4
|
+
// and why); the skipped-types summary leaves them out so each gap is reported
|
|
5
|
+
// exactly once.
|
|
6
|
+
const EXPLICITLY_WARNED_TYPES = new Set([
|
|
7
|
+
'AWS::Events::Archive',
|
|
8
|
+
'AWS::OpenSearchServerless::SecurityPolicy',
|
|
9
|
+
'AWS::OpenSearchServerless::AccessPolicy',
|
|
10
|
+
'AWS::OpenSearchServerless::VpcEndpoint',
|
|
11
|
+
]);
|
|
2
12
|
export class CloudFormationParser {
|
|
3
13
|
// `warnings` collects non-fatal template findings (e.g. resource types LSS
|
|
4
14
|
// deliberately skips) so callers can surface them to the registering client.
|
|
5
|
-
parse(template, warnings) {
|
|
15
|
+
parse(template, warnings, context) {
|
|
16
|
+
return this.parseTemplate(template, warnings, context).resources;
|
|
17
|
+
}
|
|
18
|
+
parseTemplate(template, warnings, context = {}) {
|
|
6
19
|
const resources = [];
|
|
7
20
|
if (!template.Resources) {
|
|
8
|
-
return resources;
|
|
21
|
+
return { resources, template };
|
|
22
|
+
}
|
|
23
|
+
// Static intrinsic pass FIRST: Parameters, pseudo parameters, Mappings,
|
|
24
|
+
// Conditions and the string functions are resolved, conditioned-out
|
|
25
|
+
// resources removed. What survives as an object is a Ref/GetAtt to a
|
|
26
|
+
// resource, which the readers below key off by logical id.
|
|
27
|
+
const resolution = resolveTemplate(template, context, warnings);
|
|
28
|
+
const resolved = resolution.template;
|
|
29
|
+
if (resolution.droppedByCondition.length > 0) {
|
|
30
|
+
warnings?.push(`Dropped ${resolution.droppedByCondition.length} resource(s) whose Condition is false: ${resolution.droppedByCondition.join(', ')}.`);
|
|
9
31
|
}
|
|
10
|
-
|
|
32
|
+
const skipped = new Map();
|
|
33
|
+
for (const [key, resource] of Object.entries(resolved.Resources)) {
|
|
11
34
|
const parsed = this.parseResource(key, resource, warnings);
|
|
12
35
|
if (parsed) {
|
|
13
36
|
resources.push(parsed);
|
|
14
37
|
}
|
|
38
|
+
else if (key !== 'ServerlessDeploymentBucket' && !EXPLICITLY_WARNED_TYPES.has(String(resource.Type))) {
|
|
39
|
+
// The framework's own deployment bucket is skipped on purpose (see
|
|
40
|
+
// parseResource) — it is not a gap worth reporting — and the types
|
|
41
|
+
// parseResource already warned about by name are not counted twice.
|
|
42
|
+
const type = String(resource.Type ?? '(no Type)');
|
|
43
|
+
skipped.set(type, (skipped.get(type) ?? 0) + 1);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
// ONE line for everything not modelled, instead of either silence or a
|
|
47
|
+
// warning per resource: a real stack carries dozens of IAM roles and log
|
|
48
|
+
// groups, and the point is to see at a glance whether something that
|
|
49
|
+
// matters (a table, a queue) is among them.
|
|
50
|
+
if (skipped.size > 0) {
|
|
51
|
+
const total = [...skipped.values()].reduce((a, b) => a + b, 0);
|
|
52
|
+
const list = [...skipped.entries()]
|
|
53
|
+
.sort((a, b) => b[1] - a[1] || a[0].localeCompare(b[0]))
|
|
54
|
+
.map(([type, count]) => `${type} ×${count}`)
|
|
55
|
+
.join(', ');
|
|
56
|
+
warnings?.push(`Skipped ${total} of ${Object.keys(resolved.Resources).length} resource(s) whose type LSS does not provision: ${list}. ` +
|
|
57
|
+
'(HTTP routes and authorizers declared as function events are served from serverless-state.json regardless.)');
|
|
15
58
|
}
|
|
16
|
-
return resources;
|
|
59
|
+
return { resources, template: resolved };
|
|
17
60
|
}
|
|
18
61
|
parseResource(key, resource, warnings) {
|
|
19
62
|
switch (resource.Type) {
|
|
@@ -34,6 +77,8 @@ export class CloudFormationParser {
|
|
|
34
77
|
return this.parseS3(key, resource);
|
|
35
78
|
case 'AWS::SecretsManager::Secret':
|
|
36
79
|
return this.parseSecret(key, resource);
|
|
80
|
+
case 'AWS::SSM::Parameter':
|
|
81
|
+
return this.parseSsmParameter(key, resource);
|
|
37
82
|
case 'AWS::Lambda::EventSourceMapping':
|
|
38
83
|
return this.parseEventSource(key, resource);
|
|
39
84
|
case 'AWS::Events::EventBus':
|
|
@@ -41,9 +86,9 @@ export class CloudFormationParser {
|
|
|
41
86
|
case 'AWS::Events::Rule':
|
|
42
87
|
return this.parseEventRule(key, resource);
|
|
43
88
|
case 'AWS::Events::Archive':
|
|
44
|
-
//
|
|
45
|
-
//
|
|
46
|
-
warnings?.push(`AWS::Events::Archive "${key}" is not provisioned locally —
|
|
89
|
+
// The engine does not implement archives, and pretending to create one
|
|
90
|
+
// would only fake success: nothing would ever be listed or replayable.
|
|
91
|
+
warnings?.push(`AWS::Events::Archive "${key}" is not provisioned locally — the engine does not implement event archives (nothing to list or replay).`);
|
|
47
92
|
return null;
|
|
48
93
|
case 'AWS::OpenSearchServerless::Collection':
|
|
49
94
|
return this.parseOpenSearchCollection(key, resource);
|
|
@@ -259,6 +304,33 @@ export class CloudFormationParser {
|
|
|
259
304
|
}
|
|
260
305
|
return parsed;
|
|
261
306
|
}
|
|
307
|
+
parseSsmParameter(key, resource) {
|
|
308
|
+
const props = (resource.Properties || {});
|
|
309
|
+
const tags = props.Tags && typeof props.Tags === 'object' && !Array.isArray(props.Tags)
|
|
310
|
+
? Object.entries(props.Tags).map(([Key, Value]) => ({ Key, Value: String(Value) }))
|
|
311
|
+
: [];
|
|
312
|
+
const parsed = {
|
|
313
|
+
type: 'ssm-parameter',
|
|
314
|
+
logicalId: key,
|
|
315
|
+
// Name is optional in CFN (AWS generates one) — fall back to the logical
|
|
316
|
+
// id so the parameter is still addressable locally.
|
|
317
|
+
name: props.Name || key,
|
|
318
|
+
parameterType: props.Type || 'String',
|
|
319
|
+
tags,
|
|
320
|
+
};
|
|
321
|
+
const value = props.Value;
|
|
322
|
+
if (typeof value === 'string' || typeof value === 'number' || typeof value === 'boolean')
|
|
323
|
+
parsed.value = String(value);
|
|
324
|
+
if (props.Description !== undefined)
|
|
325
|
+
parsed.description = props.Description;
|
|
326
|
+
if (props.AllowedPattern !== undefined)
|
|
327
|
+
parsed.allowedPattern = props.AllowedPattern;
|
|
328
|
+
if (props.Tier !== undefined)
|
|
329
|
+
parsed.tier = props.Tier;
|
|
330
|
+
if (props.DataType !== undefined)
|
|
331
|
+
parsed.dataType = props.DataType;
|
|
332
|
+
return parsed;
|
|
333
|
+
}
|
|
262
334
|
parseOpenSearchCollection(key, resource) {
|
|
263
335
|
const props = (resource.Properties || {});
|
|
264
336
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cloudformation-parser.js","sourceRoot":"","sources":["../../../src/server/services/cloudformation-parser.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cloudformation-parser.js","sourceRoot":"","sources":["../../../src/server/services/cloudformation-parser.ts"],"names":[],"mappings":"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"}
|