@intentius/chant-lexicon-aws 0.18.12 → 0.18.13
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/composites/agentcore-agent.d.ts +74 -0
- package/dist/composites/agentcore-agent.d.ts.map +1 -0
- package/dist/composites/agentcore-trust-policy.d.ts +11 -0
- package/dist/composites/agentcore-trust-policy.d.ts.map +1 -0
- package/dist/composites/index.d.ts +4 -0
- package/dist/composites/index.d.ts.map +1 -1
- package/dist/composites/microvm-app.d.ts +116 -0
- package/dist/composites/microvm-app.d.ts.map +1 -0
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/integrity.json +22 -4
- package/dist/lint/audit-catalog.d.ts.map +1 -1
- package/dist/lint/post-synth/cf-refs.d.ts +14 -0
- package/dist/lint/post-synth/cf-refs.d.ts.map +1 -1
- package/dist/lint/post-synth/index.d.ts.map +1 -1
- package/dist/lint/post-synth/waw038.d.ts +12 -0
- package/dist/lint/post-synth/waw038.d.ts.map +1 -0
- package/dist/lint/post-synth/waw039.d.ts +11 -0
- package/dist/lint/post-synth/waw039.d.ts.map +1 -0
- package/dist/lint/post-synth/waw040.d.ts +13 -0
- package/dist/lint/post-synth/waw040.d.ts.map +1 -0
- package/dist/lint/post-synth/waw041.d.ts +10 -0
- package/dist/lint/post-synth/waw041.d.ts.map +1 -0
- package/dist/lint/post-synth/waw042.d.ts +12 -0
- package/dist/lint/post-synth/waw042.d.ts.map +1 -0
- package/dist/lint/post-synth/waw043.d.ts +11 -0
- package/dist/lint/post-synth/waw043.d.ts.map +1 -0
- package/dist/lint/post-synth/waw044.d.ts +18 -0
- package/dist/lint/post-synth/waw044.d.ts.map +1 -0
- package/dist/lint/post-synth/waw045.d.ts +11 -0
- package/dist/lint/post-synth/waw045.d.ts.map +1 -0
- package/dist/lint/post-synth/waw046.d.ts +12 -0
- package/dist/lint/post-synth/waw046.d.ts.map +1 -0
- package/dist/lint/post-synth/waw047.d.ts +11 -0
- package/dist/lint/post-synth/waw047.d.ts.map +1 -0
- package/dist/lint/post-synth/waw048.d.ts +11 -0
- package/dist/lint/post-synth/waw048.d.ts.map +1 -0
- package/dist/lint/post-synth/waw049.d.ts +21 -0
- package/dist/lint/post-synth/waw049.d.ts.map +1 -0
- package/dist/lint/post-synth/waw050.d.ts +11 -0
- package/dist/lint/post-synth/waw050.d.ts.map +1 -0
- package/dist/lint/post-synth/waw051.d.ts +11 -0
- package/dist/lint/post-synth/waw051.d.ts.map +1 -0
- package/dist/lint/post-synth/waw052.d.ts +12 -0
- package/dist/lint/post-synth/waw052.d.ts.map +1 -0
- package/dist/lint/post-synth/waw053.d.ts +10 -0
- package/dist/lint/post-synth/waw053.d.ts.map +1 -0
- package/dist/lint/post-synth/waw054.d.ts +11 -0
- package/dist/lint/post-synth/waw054.d.ts.map +1 -0
- package/dist/lint/post-synth/waw055.d.ts +11 -0
- package/dist/lint/post-synth/waw055.d.ts.map +1 -0
- package/dist/manifest.json +1 -1
- package/dist/op/activities/floci.d.ts +6 -0
- package/dist/op/activities/floci.d.ts.map +1 -1
- package/dist/plugin.d.ts.map +1 -1
- package/dist/rules/cf-refs.ts +23 -0
- package/dist/rules/waw038.ts +50 -0
- package/dist/rules/waw039.ts +51 -0
- package/dist/rules/waw040.ts +54 -0
- package/dist/rules/waw041.ts +48 -0
- package/dist/rules/waw042.ts +87 -0
- package/dist/rules/waw043.ts +57 -0
- package/dist/rules/waw044.ts +68 -0
- package/dist/rules/waw045.ts +58 -0
- package/dist/rules/waw046.ts +59 -0
- package/dist/rules/waw047.ts +50 -0
- package/dist/rules/waw048.ts +47 -0
- package/dist/rules/waw049.ts +100 -0
- package/dist/rules/waw050.ts +54 -0
- package/dist/rules/waw051.ts +49 -0
- package/dist/rules/waw052.ts +51 -0
- package/dist/rules/waw053.ts +53 -0
- package/dist/rules/waw054.ts +49 -0
- package/dist/rules/waw055.ts +49 -0
- package/dist/types/index.d.ts +11 -9
- package/package.json +2 -2
- package/src/composites/agentcore-agent.test.ts +188 -0
- package/src/composites/agentcore-agent.ts +195 -0
- package/src/composites/agentcore-trust-policy.ts +13 -0
- package/src/composites/index.ts +4 -0
- package/src/composites/microvm-app.test.ts +234 -0
- package/src/composites/microvm-app.ts +436 -0
- package/src/generated/index.d.ts +11 -9
- package/src/index.ts +2 -0
- package/src/lint/audit-catalog.ts +20 -0
- package/src/lint/post-synth/cf-refs.ts +23 -0
- package/src/lint/post-synth/index.ts +36 -0
- package/src/lint/post-synth/waw038.test.ts +78 -0
- package/src/lint/post-synth/waw038.ts +50 -0
- package/src/lint/post-synth/waw039.test.ts +72 -0
- package/src/lint/post-synth/waw039.ts +51 -0
- package/src/lint/post-synth/waw040.test.ts +71 -0
- package/src/lint/post-synth/waw040.ts +54 -0
- package/src/lint/post-synth/waw041.test.ts +72 -0
- package/src/lint/post-synth/waw041.ts +48 -0
- package/src/lint/post-synth/waw042.test.ts +138 -0
- package/src/lint/post-synth/waw042.ts +87 -0
- package/src/lint/post-synth/waw043.test.ts +84 -0
- package/src/lint/post-synth/waw043.ts +57 -0
- package/src/lint/post-synth/waw044.test.ts +112 -0
- package/src/lint/post-synth/waw044.ts +68 -0
- package/src/lint/post-synth/waw045.test.ts +101 -0
- package/src/lint/post-synth/waw045.ts +58 -0
- package/src/lint/post-synth/waw046.test.ts +112 -0
- package/src/lint/post-synth/waw046.ts +59 -0
- package/src/lint/post-synth/waw047.test.ts +64 -0
- package/src/lint/post-synth/waw047.ts +50 -0
- package/src/lint/post-synth/waw048.test.ts +77 -0
- package/src/lint/post-synth/waw048.ts +47 -0
- package/src/lint/post-synth/waw049.test.ts +139 -0
- package/src/lint/post-synth/waw049.ts +100 -0
- package/src/lint/post-synth/waw050.test.ts +75 -0
- package/src/lint/post-synth/waw050.ts +54 -0
- package/src/lint/post-synth/waw051.test.ts +78 -0
- package/src/lint/post-synth/waw051.ts +49 -0
- package/src/lint/post-synth/waw052.test.ts +54 -0
- package/src/lint/post-synth/waw052.ts +51 -0
- package/src/lint/post-synth/waw053.test.ts +59 -0
- package/src/lint/post-synth/waw053.ts +53 -0
- package/src/lint/post-synth/waw054.test.ts +49 -0
- package/src/lint/post-synth/waw054.ts +49 -0
- package/src/lint/post-synth/waw055.test.ts +43 -0
- package/src/lint/post-synth/waw055.ts +49 -0
- package/src/op/activities/floci.test.ts +26 -0
- package/src/op/activities/floci.ts +25 -9
- package/src/plugin.ts +3 -0
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import { Role, Role_Policy, Runtime, RuntimeEndpoint, Memory, BedrockAgentCoreGateway, GatewayTarget, WorkloadIdentity } from "../generated/index.js";
|
|
2
|
+
export interface AgentCoreAgentProps {
|
|
3
|
+
/**
|
|
4
|
+
* Base name for the agent's resources. `toRuntimeIdentifier(name)` derives
|
|
5
|
+
* the Runtime/RuntimeEndpoint/Memory names; Gateway/GatewayTarget/
|
|
6
|
+
* WorkloadIdentity use `name` as-is (hyphens are valid there).
|
|
7
|
+
*/
|
|
8
|
+
name: string;
|
|
9
|
+
/** ECR image URI the Runtime runs, e.g. `"123456789012.dkr.ecr.us-east-1.amazonaws.com/agent:latest"`. */
|
|
10
|
+
containerUri: string;
|
|
11
|
+
/** Runtime network mode. Default: "PUBLIC". */
|
|
12
|
+
networkMode?: "PUBLIC" | "VPC";
|
|
13
|
+
/** Subnets for the Runtime's ENIs. Required when `networkMode` is "VPC". */
|
|
14
|
+
vpcSubnetIds?: string[];
|
|
15
|
+
/** Security groups for the Runtime's ENIs. Required when `networkMode` is "VPC". */
|
|
16
|
+
vpcSecurityGroupIds?: string[];
|
|
17
|
+
/** Protocol the Runtime serves. Mirrors the generated `Runtime_ProtocolConfiguration` CFN enum. Default: "MCP". */
|
|
18
|
+
protocolConfiguration?: "A2A" | "AGUI" | "HTTP" | "MCP";
|
|
19
|
+
/** Environment variables passed to the Runtime container. */
|
|
20
|
+
environmentVariables?: Record<string, string>;
|
|
21
|
+
/** RuntimeEndpoint name — the alias a version-promotion capability would repoint (deferred, see #882). Default: "DEFAULT". */
|
|
22
|
+
endpointName?: string;
|
|
23
|
+
/** Memory event retention, in days. CFN bounds: 3-365. Default: 30. */
|
|
24
|
+
memoryEventExpiryDays?: number;
|
|
25
|
+
/** Gateway authorizer. Mirrors the generated `BedrockAgentCoreGateway_AuthorizerType` CFN enum. Default: "AWS_IAM". */
|
|
26
|
+
gatewayAuthorizerType?: "CUSTOM_JWT" | "AWS_IAM" | "NONE" | "AUTHENTICATE_ONLY";
|
|
27
|
+
/** Allow-listed OAuth2 return URLs for the standalone `WorkloadIdentity` resource. */
|
|
28
|
+
allowedResourceOauth2ReturnUrls?: string[];
|
|
29
|
+
/** Extra managed policy ARNs merged onto the auto-created Runtime/Memory execution role. */
|
|
30
|
+
ManagedPolicyArns?: string[];
|
|
31
|
+
/** Inline policies attached to the auto-created Runtime/Memory execution role. */
|
|
32
|
+
Policies?: InstanceType<typeof Role_Policy>[];
|
|
33
|
+
defaults?: {
|
|
34
|
+
role?: Partial<ConstructorParameters<typeof Role>[0]>;
|
|
35
|
+
gatewayRole?: Partial<ConstructorParameters<typeof Role>[0]>;
|
|
36
|
+
runtime?: Partial<ConstructorParameters<typeof Runtime>[0]>;
|
|
37
|
+
endpoint?: Partial<ConstructorParameters<typeof RuntimeEndpoint>[0]>;
|
|
38
|
+
memory?: Partial<ConstructorParameters<typeof Memory>[0]>;
|
|
39
|
+
gateway?: Partial<ConstructorParameters<typeof BedrockAgentCoreGateway>[0]>;
|
|
40
|
+
gatewayTarget?: Partial<ConstructorParameters<typeof GatewayTarget>[0]>;
|
|
41
|
+
workloadIdentity?: Partial<ConstructorParameters<typeof WorkloadIdentity>[0]>;
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
export type AgentCoreAgentResult = {
|
|
45
|
+
role: InstanceType<typeof Role>;
|
|
46
|
+
gatewayRole: InstanceType<typeof Role>;
|
|
47
|
+
runtime: InstanceType<typeof Runtime>;
|
|
48
|
+
endpoint: InstanceType<typeof RuntimeEndpoint>;
|
|
49
|
+
memory: InstanceType<typeof Memory>;
|
|
50
|
+
workloadIdentity: InstanceType<typeof WorkloadIdentity>;
|
|
51
|
+
gateway: InstanceType<typeof BedrockAgentCoreGateway>;
|
|
52
|
+
gatewayTarget: InstanceType<typeof GatewayTarget>;
|
|
53
|
+
};
|
|
54
|
+
/**
|
|
55
|
+
* A Bedrock AgentCore agent as one CloudFormation-serializable bundle — the
|
|
56
|
+
* composite/base path from #882: `Runtime` + `RuntimeEndpoint` + `Memory` +
|
|
57
|
+
* `Gateway`/`GatewayTarget` + `WorkloadIdentity` + IAM, deployable with
|
|
58
|
+
* `cfn-deploy` + `wait-for-stack` and no bespoke verb.
|
|
59
|
+
*
|
|
60
|
+
* `WorkloadIdentityDetails` on both `Runtime` and `BedrockAgentCoreGateway`
|
|
61
|
+
* is CFN `readOnly` — AWS provisions a workload identity per resource
|
|
62
|
+
* automatically, and neither accepts one as an input. The `WorkloadIdentity`
|
|
63
|
+
* resource this composite creates is therefore standalone (not cross-wired
|
|
64
|
+
* to `runtime`/`gateway`), included because #882 calls for it — it exists
|
|
65
|
+
* for workflows (e.g. a future credential-provider capability) that need an
|
|
66
|
+
* explicit workload identity of their own.
|
|
67
|
+
*
|
|
68
|
+
* The `agentcore-deploy` version-promotion capability that would repoint
|
|
69
|
+
* `endpoint`'s `TargetVersion`/`LiveVersion` is deferred (GA-gated, #882) —
|
|
70
|
+
* this composite only wires the CloudFormation shape it would eventually
|
|
71
|
+
* apply against.
|
|
72
|
+
*/
|
|
73
|
+
export declare const AgentCoreAgent: import("@intentius/chant").CompositeDefinition<AgentCoreAgentProps, AgentCoreAgentResult>;
|
|
74
|
+
//# sourceMappingURL=agentcore-agent.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agentcore-agent.d.ts","sourceRoot":"","sources":["../../src/composites/agentcore-agent.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agentcore-trust-policy.d.ts","sourceRoot":"","sources":["../../src/composites/agentcore-trust-policy.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,oBAAoB;;;;;;;;;CAShC,CAAC"}
|
|
@@ -32,4 +32,8 @@ export { Ec2InstanceRole } from "./ec2-instance-role.js";
|
|
|
32
32
|
export type { Ec2InstanceRoleProps } from "./ec2-instance-role.js";
|
|
33
33
|
export { MinimalVpc } from "./minimal-vpc.js";
|
|
34
34
|
export type { MinimalVpcProps } from "./minimal-vpc.js";
|
|
35
|
+
export { MicrovmApp } from "./microvm-app.js";
|
|
36
|
+
export type { MicrovmAppProps, MicrovmAppResult, MicrovmAppBuildConnectorProps } from "./microvm-app.js";
|
|
37
|
+
export { AgentCoreAgent } from "./agentcore-agent.js";
|
|
38
|
+
export type { AgentCoreAgentProps, AgentCoreAgentResult } from "./agentcore-agent.js";
|
|
35
39
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/composites/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACvG,YAAY,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAC7D,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,YAAY,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACtE,YAAY,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC/D,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,YAAY,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,YAAY,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AACnE,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,YAAY,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAC7D,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,YAAY,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,YAAY,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,YAAY,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,YAAY,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,YAAY,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,YAAY,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAC7D,OAAO,EAAE,WAAW,EAAE,WAAW,IAAI,WAAW,EAAE,MAAM,gBAAgB,CAAC;AACzE,YAAY,EAAE,gBAAgB,EAAE,gBAAgB,IAAI,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAC7F,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,YAAY,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AACvE,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC5D,YAAY,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AACtE,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,YAAY,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAChE,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,YAAY,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/composites/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACvG,YAAY,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAC7D,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,YAAY,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACtE,YAAY,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC/D,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,YAAY,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,YAAY,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AACnE,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,YAAY,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAC7D,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,YAAY,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,YAAY,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,YAAY,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,YAAY,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,YAAY,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,YAAY,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAC7D,OAAO,EAAE,WAAW,EAAE,WAAW,IAAI,WAAW,EAAE,MAAM,gBAAgB,CAAC;AACzE,YAAY,EAAE,gBAAgB,EAAE,gBAAgB,IAAI,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAC7F,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,YAAY,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AACvE,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC5D,YAAY,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AACtE,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,YAAY,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAChE,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,YAAY,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,YAAY,EAAE,eAAe,EAAE,gBAAgB,EAAE,6BAA6B,EAAE,MAAM,eAAe,CAAC;AACtG,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,YAAY,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC"}
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MicrovmApp — composite-first delivery of AWS Lambda MicroVM support (#879).
|
|
3
|
+
*
|
|
4
|
+
* Emits `AWS::Lambda::MicrovmImage` (a preview CFN resource type — see the
|
|
5
|
+
* issue's "Preview-API gate") plus the least-privilege build/execution IAM
|
|
6
|
+
* roles the upstream `ran-isenberg/lambda-microvm-cdk-python` construct
|
|
7
|
+
* creates, and — only when build-time VPC egress is requested — an
|
|
8
|
+
* `AWS::Lambda::NetworkConnector`, its deny-all-egress security group, and its
|
|
9
|
+
* ENI operator role.
|
|
10
|
+
*
|
|
11
|
+
* Base path only (#879 scope): `chant build` serializes this composite to a
|
|
12
|
+
* CloudFormation template; `cfn-deploy` + `wait-for-stack` deploy it and wait
|
|
13
|
+
* for the image snapshot to build, with no bespoke verb. The
|
|
14
|
+
* `microvm-image-build` capability (build-once / promote-by-ARN) is deferred
|
|
15
|
+
* — see the issue's "Settled decisions".
|
|
16
|
+
*
|
|
17
|
+
* The IAM shapes below mirror `lambda_microvm_cdk._impl.security` (build role
|
|
18
|
+
* scoped to the exact S3 code-artifact object + the image's own log group;
|
|
19
|
+
* execution role scoped to runtime logs only; connector operator role scoped
|
|
20
|
+
* to the AWS-documented `ec2:CreateNetworkInterface`/`CreateTags` grant), and
|
|
21
|
+
* the deny-all security group reproduces `aws-cdk-lib`'s own
|
|
22
|
+
* `MATCH_NO_TRAFFIC` placeholder rule (`aws-ec2/lib/security-group.ts`) —
|
|
23
|
+
* spot-checked against both upstream sources so the shapes match what the
|
|
24
|
+
* MicroVM service actually expects, not a guess.
|
|
25
|
+
*/
|
|
26
|
+
import { MicrovmImage, MicrovmImage_Hooks, NetworkConnector, Role, SecurityGroup } from "../generated/index.js";
|
|
27
|
+
/** Documented baseline memory tiers (MiB) — the CFN schema types it as an open int, but the service accepts only these five; vCPU auto-scales with the tier. */
|
|
28
|
+
declare const VALID_MEMORY_MIB: readonly [512, 1024, 2048, 4096, 8192];
|
|
29
|
+
type MicrovmMemoryMiB = (typeof VALID_MEMORY_MIB)[number];
|
|
30
|
+
export interface MicrovmAppBuildConnectorProps {
|
|
31
|
+
/** VPC the connector's ENIs attach to. */
|
|
32
|
+
vpcId: string;
|
|
33
|
+
/** 1-16 subnet ids, all in `vpcId` — where Lambda provisions the connector's ENIs. */
|
|
34
|
+
subnetIds: string[];
|
|
35
|
+
/** `"IPv4"` (default) or `"DualStack"`. */
|
|
36
|
+
networkProtocol?: "IPv4" | "DualStack";
|
|
37
|
+
}
|
|
38
|
+
export interface MicrovmAppProps {
|
|
39
|
+
/** Unique image name (`^[a-zA-Z0-9-_]+$`, ≤64 chars). Create-only — changing it forces replacement. */
|
|
40
|
+
name: string;
|
|
41
|
+
/** Human-readable description. CFN requires the property; `""` is valid. */
|
|
42
|
+
description?: string;
|
|
43
|
+
/**
|
|
44
|
+
* The `CodeArtifact.Uri` value CloudFormation wants — e.g. the `uri` a
|
|
45
|
+
* `publish-artifact` step produced (`"@Publish.uri"`, wired in by the
|
|
46
|
+
* driver). Kept distinct from {@link codeArtifactObjectArn}: this is the
|
|
47
|
+
* value the MicroVM service resolves the artifact from, while that one is
|
|
48
|
+
* the resource ARN the build role's IAM grant is scoped to — the two only
|
|
49
|
+
* coincide by convention, not by type.
|
|
50
|
+
*/
|
|
51
|
+
codeArtifactUri: string;
|
|
52
|
+
/**
|
|
53
|
+
* Exact S3 object ARN of the code artifact, for the build role's
|
|
54
|
+
* `s3:GetObject` grant. Scoped to the precise object (never `bucket/*`),
|
|
55
|
+
* matching the upstream construct's `artifact_object_arn`. Pass the
|
|
56
|
+
* caller-resolved ARN rather than have this composite parse one out of an
|
|
57
|
+
* arbitrary URI — the same "wired reference, already resolved by the
|
|
58
|
+
* driver" convention `cfn-deploy`'s `imageRef` uses.
|
|
59
|
+
*/
|
|
60
|
+
codeArtifactObjectArn: string;
|
|
61
|
+
/** AWS-managed base image alias (e.g. `"al2023-1"`) or a full base-image ARN. */
|
|
62
|
+
baseImage: string;
|
|
63
|
+
/**
|
|
64
|
+
* Base image version to pin. Default: `"0"` — the fallback the upstream
|
|
65
|
+
* construct itself uses when a synth-time boto3 lookup isn't available.
|
|
66
|
+
* Chant's synth is deterministic/offline, so this composite never performs
|
|
67
|
+
* a live lookup; pin this explicitly for a specific managed version.
|
|
68
|
+
*/
|
|
69
|
+
baseImageVersion?: string;
|
|
70
|
+
/** Baseline memory tier in MiB — one of the five documented tiers; vCPU auto-scales with it. Default: `2048`. */
|
|
71
|
+
memoryMiB?: MicrovmMemoryMiB;
|
|
72
|
+
/** Env vars baked into the image at build time (max 50) — snapshotted and shared by every VM booted from this image. Never put secrets here. */
|
|
73
|
+
environment?: Record<string, string>;
|
|
74
|
+
/** Opt into `"ALL"` additional OS capabilities — a documented privilege escalation. Default: none (least privilege). */
|
|
75
|
+
additionalOsCapabilities?: "ALL"[];
|
|
76
|
+
/** Disable CloudWatch build/runtime logging entirely. Default: `false` (logging enabled, pinned to `/aws/lambda/microvms/<name>`). */
|
|
77
|
+
disableLogging?: boolean;
|
|
78
|
+
/** Lifecycle hooks — all default to disabled (traffic flows immediately). */
|
|
79
|
+
hooks?: ConstructorParameters<typeof MicrovmImage_Hooks>[0];
|
|
80
|
+
/**
|
|
81
|
+
* Build-time egress: attach a `NetworkConnector` (+ its deny-all-egress
|
|
82
|
+
* security group + least-privilege ENI operator role) so the image build
|
|
83
|
+
* can reach a VPC (private mirrors, an internal registry). Omit for the
|
|
84
|
+
* default public-internet build egress. The connector's security-group
|
|
85
|
+
* rules ARE its egress policy — deny-all by default; open it via
|
|
86
|
+
* `defaults.connectorSecurityGroup`.
|
|
87
|
+
*/
|
|
88
|
+
buildConnector?: MicrovmAppBuildConnectorProps;
|
|
89
|
+
/** Extra egress connector ARNs to bake in alongside the one this composite creates (e.g. an AWS-managed `INTERNET_EGRESS` alias, or a pre-existing shared connector). Max 10 total. */
|
|
90
|
+
additionalEgressConnectors?: string[];
|
|
91
|
+
defaults?: {
|
|
92
|
+
buildRole?: Partial<ConstructorParameters<typeof Role>[0]>;
|
|
93
|
+
executionRole?: Partial<ConstructorParameters<typeof Role>[0]>;
|
|
94
|
+
connectorOperatorRole?: Partial<ConstructorParameters<typeof Role>[0]>;
|
|
95
|
+
connectorSecurityGroup?: Partial<ConstructorParameters<typeof SecurityGroup>[0]>;
|
|
96
|
+
connector?: Partial<ConstructorParameters<typeof NetworkConnector>[0]>;
|
|
97
|
+
image?: Partial<ConstructorParameters<typeof MicrovmImage>[0]>;
|
|
98
|
+
};
|
|
99
|
+
}
|
|
100
|
+
export type MicrovmAppResult = {
|
|
101
|
+
/** Least-privilege role the MicroVM service assumes to build the image — `s3:GetObject` on the exact code-artifact object, `logs:*` on the image's own log group. */
|
|
102
|
+
buildRole: InstanceType<typeof Role>;
|
|
103
|
+
/** Least-privilege role assumed by the running MicroVM — runtime-logs only; add workload permissions (e.g. Bedrock) on top. */
|
|
104
|
+
executionRole: InstanceType<typeof Role>;
|
|
105
|
+
/** The `AWS::Lambda::MicrovmImage` resource. */
|
|
106
|
+
image: InstanceType<typeof MicrovmImage>;
|
|
107
|
+
/** The build-egress connector's deny-all security group (only when `buildConnector` is set). */
|
|
108
|
+
connectorSecurityGroup?: InstanceType<typeof SecurityGroup>;
|
|
109
|
+
/** The connector's least-privilege ENI operator role (only when `buildConnector` is set). */
|
|
110
|
+
connectorOperatorRole?: InstanceType<typeof Role>;
|
|
111
|
+
/** The `AWS::Lambda::NetworkConnector` resource (only when `buildConnector` is set). */
|
|
112
|
+
connector?: InstanceType<typeof NetworkConnector>;
|
|
113
|
+
};
|
|
114
|
+
export declare const MicrovmApp: import("@intentius/chant").CompositeDefinition<MicrovmAppProps, MicrovmAppResult>;
|
|
115
|
+
export {};
|
|
116
|
+
//# sourceMappingURL=microvm-app.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"microvm-app.d.ts","sourceRoot":"","sources":["../../src/composites/microvm-app.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAGH,OAAO,EACL,YAAY,EAKZ,kBAAkB,EAGlB,gBAAgB,EAGhB,IAAI,EAEJ,aAAa,EAEd,MAAM,cAAc,CAAC;AAMtB,gKAAgK;AAChK,QAAA,MAAM,gBAAgB,wCAAyC,CAAC;AAChE,KAAK,gBAAgB,GAAG,CAAC,OAAO,gBAAgB,CAAC,CAAC,MAAM,CAAC,CAAC;AA8C1D,MAAM,WAAW,6BAA6B;IAC5C,0CAA0C;IAC1C,KAAK,EAAE,MAAM,CAAC;IACd,sFAAsF;IACtF,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,2CAA2C;IAC3C,eAAe,CAAC,EAAE,MAAM,GAAG,WAAW,CAAC;CACxC;AAED,MAAM,WAAW,eAAe;IAC9B,uGAAuG;IACvG,IAAI,EAAE,MAAM,CAAC;IACb,4EAA4E;IAC5E,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;;;;;OAOG;IACH,eAAe,EAAE,MAAM,CAAC;IACxB;;;;;;;OAOG;IACH,qBAAqB,EAAE,MAAM,CAAC;IAC9B,iFAAiF;IACjF,SAAS,EAAE,MAAM,CAAC;IAClB;;;;;OAKG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,iHAAiH;IACjH,SAAS,CAAC,EAAE,gBAAgB,CAAC;IAC7B,gJAAgJ;IAChJ,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACrC,wHAAwH;IACxH,wBAAwB,CAAC,EAAE,KAAK,EAAE,CAAC;IACnC,sIAAsI;IACtI,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,6EAA6E;IAC7E,KAAK,CAAC,EAAE,qBAAqB,CAAC,OAAO,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5D;;;;;;;OAOG;IACH,cAAc,CAAC,EAAE,6BAA6B,CAAC;IAC/C,uLAAuL;IACvL,0BAA0B,CAAC,EAAE,MAAM,EAAE,CAAC;IACtC,QAAQ,CAAC,EAAE;QACT,SAAS,CAAC,EAAE,OAAO,CAAC,qBAAqB,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3D,aAAa,CAAC,EAAE,OAAO,CAAC,qBAAqB,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/D,qBAAqB,CAAC,EAAE,OAAO,CAAC,qBAAqB,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACvE,sBAAsB,CAAC,EAAE,OAAO,CAAC,qBAAqB,CAAC,OAAO,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACjF,SAAS,CAAC,EAAE,OAAO,CAAC,qBAAqB,CAAC,OAAO,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACvE,KAAK,CAAC,EAAE,OAAO,CAAC,qBAAqB,CAAC,OAAO,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;KAChE,CAAC;CACH;AAED,MAAM,MAAM,gBAAgB,GAAG;IAC7B,qKAAqK;IACrK,SAAS,EAAE,YAAY,CAAC,OAAO,IAAI,CAAC,CAAC;IACrC,+HAA+H;IAC/H,aAAa,EAAE,YAAY,CAAC,OAAO,IAAI,CAAC,CAAC;IACzC,gDAAgD;IAChD,KAAK,EAAE,YAAY,CAAC,OAAO,YAAY,CAAC,CAAC;IACzC,gGAAgG;IAChG,sBAAsB,CAAC,EAAE,YAAY,CAAC,OAAO,aAAa,CAAC,CAAC;IAC5D,6FAA6F;IAC7F,qBAAqB,CAAC,EAAE,YAAY,CAAC,OAAO,IAAI,CAAC,CAAC;IAClD,wFAAwF;IACxF,SAAS,CAAC,EAAE,YAAY,CAAC,OAAO,gBAAgB,CAAC,CAAC;CACnD,CAAC;AAEF,eAAO,MAAM,UAAU,mFA2PP,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -19,8 +19,8 @@ export type { CFNSchema, SchemaProperty, SchemaDefinition } from "./spec/fetch.j
|
|
|
19
19
|
export { parseCFNSchema, cfnShortName, cfnServiceName } from "./spec/parse.js";
|
|
20
20
|
export type { SchemaParseResult, ParsedResource, ParsedProperty, ParsedAttribute, ParsedPropertyType, ParsedEnum, PropertyConstraints } from "./spec/parse.js";
|
|
21
21
|
export { S3Actions, LambdaActions, DynamoDBActions, SQSActions, SNSActions, IAMActions, ECRActions, LogsActions, ECSActions } from "./actions/index.js";
|
|
22
|
-
export { LambdaFunction, LambdaNode, LambdaPython, NodeLambda, PythonLambda, LambdaApi, LambdaScheduled, ScheduledLambda, LambdaSqs, LambdaEventBridge, LambdaDynamoDB, LambdaS3, LambdaSns, VpcDefault, FargateAlb, AlbShared, FargateService, RdsInstance, RdsPostgres, EfsWithAccessPoint, Ec2InstanceRole, MinimalVpc, } from "./composites/index.js";
|
|
23
|
-
export type { LambdaFunctionProps, LambdaApiProps, ScheduledLambdaProps, LambdaSqsProps, LambdaEventBridgeProps, LambdaDynamoDBProps, LambdaS3Props, LambdaSnsProps, VpcDefaultProps, FargateAlbProps, AlbSharedProps, FargateServiceProps, RdsInstanceProps, RdsPostgresProps, EfsWithAccessPointProps, Ec2InstanceRoleProps, MinimalVpcProps, } from "./composites/index.js";
|
|
22
|
+
export { LambdaFunction, LambdaNode, LambdaPython, NodeLambda, PythonLambda, LambdaApi, LambdaScheduled, ScheduledLambda, LambdaSqs, LambdaEventBridge, LambdaDynamoDB, LambdaS3, LambdaSns, VpcDefault, FargateAlb, AlbShared, FargateService, RdsInstance, RdsPostgres, EfsWithAccessPoint, Ec2InstanceRole, MinimalVpc, AgentCoreAgent, } from "./composites/index.js";
|
|
23
|
+
export type { LambdaFunctionProps, LambdaApiProps, ScheduledLambdaProps, LambdaSqsProps, LambdaEventBridgeProps, LambdaDynamoDBProps, LambdaS3Props, LambdaSnsProps, VpcDefaultProps, FargateAlbProps, AlbSharedProps, FargateServiceProps, RdsInstanceProps, RdsPostgresProps, EfsWithAccessPointProps, Ec2InstanceRoleProps, MinimalVpcProps, AgentCoreAgentProps, AgentCoreAgentResult, } from "./composites/index.js";
|
|
24
24
|
export { generate, writeGeneratedFiles } from "./codegen/generate.js";
|
|
25
25
|
export { packageLexicon } from "./codegen/package.js";
|
|
26
26
|
export type { PackageOptions, PackageResult } from "./codegen/package.js";
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAGxC,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AACjF,YAAY,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAG5D,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAG7C,OAAO,EAAE,WAAW,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,sBAAsB,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AACvI,YAAY,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAG9E,OAAO,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAC;AACtF,YAAY,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAC;AAC3E,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AAChG,YAAY,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAC1E,YAAY,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAGrE,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAGrC,OAAO,EACL,GAAG,EACH,GAAG,EACH,MAAM,EACN,EAAE,EACF,IAAI,EACJ,MAAM,EACN,KAAK,EACL,MAAM,EACN,MAAM,EACN,YAAY,EACZ,YAAY,EACZ,eAAe,EACf,WAAW,EACX,aAAa,EACb,eAAe,EACf,cAAc,EACd,eAAe,EACf,eAAe,GAChB,MAAM,cAAc,CAAC;AAGtB,OAAO,EACL,GAAG,EACH,SAAS,EACT,MAAM,EACN,SAAS,EACT,OAAO,EACP,SAAS,EACT,OAAO,EACP,gBAAgB,EAChB,SAAS,GACV,MAAM,UAAU,CAAC;AAIlB,cAAc,mBAAmB,CAAC;AAGlC,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,YAAY,EAAE,SAAS,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAChF,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC5E,YAAY,EAAE,iBAAiB,EAAE,cAAc,EAAE,cAAc,EAAE,eAAe,EAAE,kBAAkB,EAAE,UAAU,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAG5J,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,eAAe,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAGrJ,OAAO,EACL,cAAc,EAAE,UAAU,EAAE,YAAY,EAAE,UAAU,EAAE,YAAY,EAClE,SAAS,EACT,eAAe,EAAE,eAAe,EAChC,SAAS,EAAE,iBAAiB,EAAE,cAAc,EAAE,QAAQ,EAAE,SAAS,EACjE,UAAU,EAAE,UAAU,EAAE,SAAS,EAAE,cAAc,EAAE,WAAW,EAAE,WAAW,EAC3E,kBAAkB,EAClB,eAAe,EAAE,UAAU,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/integrity.json
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
{
|
|
2
2
|
"algorithm": "sha256",
|
|
3
3
|
"artifacts": {
|
|
4
|
-
"manifest.json": "
|
|
4
|
+
"manifest.json": "fb441c8cd1d4b2b05f98f385f376e836d6ec3843a8fb5c631ef8329760a07866",
|
|
5
5
|
"meta.json": "8c8333c2cc61ac2525f3418ea240c69d263e545e5947c15b984549d5207198c2",
|
|
6
|
-
"types/index.d.ts": "
|
|
6
|
+
"types/index.d.ts": "f86992ba68a0ff73a294d23b55e4dca3abb1968d5474b3062b624400c4b13b75",
|
|
7
7
|
"rules/hardcoded-region.ts": "5a0eaf7ab391231fe6cd51426ece29539cb4b36f31c8dd060956638fed55722a",
|
|
8
8
|
"rules/iam-wildcard.ts": "135d7217d278fef50939e605c5da32603ba35674b8c4b5c4d66a06c77903e945",
|
|
9
9
|
"rules/s3-encryption.ts": "c4f9f8aa8dc382ed98c7b04e820a600590cc75335a8db2e087cbfbfe4003d09e",
|
|
10
|
-
"rules/cf-refs.ts": "
|
|
10
|
+
"rules/cf-refs.ts": "321c353669de9fc14b7f341424d3676df2615ce0e7017d89809f4631062e642b",
|
|
11
11
|
"rules/cor020.ts": "915bbb4c083c7b3b84b93e8e891b5ffffe5a138fdccda32ecfdda91b8685798c",
|
|
12
12
|
"rules/ext001.ts": "f8703f37a50ab23d0ecaef539c0215a71269d420fa5e09a3d0454b18b7350b34",
|
|
13
13
|
"rules/waw010.ts": "41c58aaedb8f9fe266f4b40f1a076f762796427fdf9b317b8a4a50c713e45571",
|
|
@@ -37,8 +37,26 @@
|
|
|
37
37
|
"rules/waw035.ts": "8ad485f6661e3b9cfc80e053308aaecf42d4318c13d47309cc6086cf98e81f45",
|
|
38
38
|
"rules/waw036.ts": "50dee06dd9e679b0c562570a7739d5fd4ae5a5e4963c8320c476bec5a38980d5",
|
|
39
39
|
"rules/waw037.ts": "cff68f8eb155347036b9ea69f58544e231110c93cb90c19461c0ba9d731f9335",
|
|
40
|
+
"rules/waw038.ts": "be1bc604b4f454c2d7d3e377c2d729738938049cd9a06cdde0ea4412959bdcf2",
|
|
41
|
+
"rules/waw039.ts": "31ba717d313bf8ca95a1e86227a82c33eced19bcaa0ac58dd06eda52a5ee431a",
|
|
42
|
+
"rules/waw040.ts": "3770dbabeb0af42df8df10f861fb98ea78588ce2cb9ba185d7b7c83ced07f86e",
|
|
43
|
+
"rules/waw041.ts": "930d4bf5df280ca5090be97b0d33366dad813b6aea8294530b9a3efb16c7637b",
|
|
44
|
+
"rules/waw042.ts": "ad3f41d0a67b527fa3e659c179f29030c0b6962e36c5988fcacad7e2afd37f04",
|
|
45
|
+
"rules/waw043.ts": "dc95d8e42d748d0971a4d5b0dac758030ef1aaf7b3645094e9fd7f659b82bb05",
|
|
46
|
+
"rules/waw044.ts": "00f9d3ed2e439157b05cc406bf710b8615969fb2ce96719f3fd66912c56ffec7",
|
|
47
|
+
"rules/waw045.ts": "3ee1ecb702fbf972192a81db48d6f5935434d9a7a81469e67b14ee9336d969dc",
|
|
48
|
+
"rules/waw046.ts": "3502fb7642abcc0789941a9154dd11146ee10158bce4538e191fca8cc8723c03",
|
|
49
|
+
"rules/waw047.ts": "12de2208cd19f8f4f71f9c0d904cad31977e9b600032f7ed8892addd04f03c5c",
|
|
50
|
+
"rules/waw048.ts": "51e96f6efcb77858eb424caedd5687310d1e078a392743d22dbcee3553176d6a",
|
|
51
|
+
"rules/waw049.ts": "16d3e9b0859292d83a95442e6332b7fab2dc358867166a8d97a4fa3efdb9e333",
|
|
52
|
+
"rules/waw050.ts": "5a7a0bd5f29ca7d6c054deb17eaa64ee834d498496e60c4f3917cf3db4208247",
|
|
53
|
+
"rules/waw051.ts": "7392e48ae4f7ee31a809ae64fcae483e3d98cbb0967cdece17a4473e74c86fd9",
|
|
54
|
+
"rules/waw052.ts": "0d84a643c8a5c3da893951837905acdc0e68a5569f4bc4af0b6871b339c53ed6",
|
|
55
|
+
"rules/waw053.ts": "0115a06c87e75cbace13832ed931953e4af15885f77a28329a6c6fee64af65ad",
|
|
56
|
+
"rules/waw054.ts": "a1a9c1d1d04aebd72e14c01340f6203231d9513add64958edd42366aaa419d42",
|
|
57
|
+
"rules/waw055.ts": "f924e6bca957da1860c7d56dd385d28d91ab57bfd0f1499077d63a9cfc5b81e5",
|
|
40
58
|
"skills/chant-aws.md": "4d65eb160e001f2af42eb7c622a5b498c2fd1f5afbd6c8155615c010fb265c63",
|
|
41
59
|
"skills/chant-aws-eks.md": "8789255709ff004ad0a875fd5999edcdc66fc6e33d710db058d9f42703bcfdfe"
|
|
42
60
|
},
|
|
43
|
-
"composite": "
|
|
61
|
+
"composite": "32a77730b75b288c841f2e9f9a09860efe7c91384f07a39bf07ca3d3f5d39602"
|
|
44
62
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"audit-catalog.d.ts","sourceRoot":"","sources":["../../src/lint/audit-catalog.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAa,KAAK,QAAQ,EAAkB,MAAM,gCAAgC,CAAC;AAQ1F,6CAA6C;AAC7C,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,
|
|
1
|
+
{"version":3,"file":"audit-catalog.d.ts","sourceRoot":"","sources":["../../src/lint/audit-catalog.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAa,KAAK,QAAQ,EAAkB,MAAM,gCAAgC,CAAC;AAQ1F,6CAA6C;AAC7C,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAgDpD,CAAC"}
|
|
@@ -47,6 +47,20 @@ export declare function walkPolicyStatements(resource: CFResource): Array<Record
|
|
|
47
47
|
* property and standalone SecurityGroupIngress resources.
|
|
48
48
|
*/
|
|
49
49
|
export declare function getSecurityGroupIngress(resource: CFResource): Array<Record<string, unknown>>;
|
|
50
|
+
/**
|
|
51
|
+
* Extract an ECS TaskDefinition's container definitions (shared by the
|
|
52
|
+
* WAW046/047/048 ECS checks).
|
|
53
|
+
*/
|
|
54
|
+
export declare function getContainerDefinitions(resource: CFResource): Array<Record<string, unknown>>;
|
|
55
|
+
/**
|
|
56
|
+
* Whether a build's `env` (from `--env` or the project's `ownership.env`, see
|
|
57
|
+
* PostSynthContext#env and #201) should be treated as the strict "full"/
|
|
58
|
+
* production tier for tier-gated checks, vs a relaxed "light" tier acceptable
|
|
59
|
+
* for local/Floci-style stacks. Reuses the existing `ctx.env` seam — no new
|
|
60
|
+
* tier field. An undefined or unrecognized env is treated as non-strict so a
|
|
61
|
+
* project that never sets `--env`/`ownership.env` isn't unexpectedly hard-failed.
|
|
62
|
+
*/
|
|
63
|
+
export declare function isFullTierEnv(env: string | undefined): boolean;
|
|
50
64
|
/**
|
|
51
65
|
* Check if a port range [fromPort, toPort] contains any of the sensitive ports.
|
|
52
66
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cf-refs.d.ts","sourceRoot":"","sources":["../../../src/lint/post-synth/cf-refs.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IACvC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACrC,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAC9B,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,GAAG,UAAU,GAAG,IAAI,CAWvF;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,GAAG,CAAC,MAAM,CAAC,CAI5D;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAInD;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,UAAU,GACnB,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAoBhC;AAiBD;;;GAGG;AACH,wBAAgB,uBAAuB,CACrC,QAAQ,EAAE,UAAU,GACnB,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAahC;AAED;;GAEG;AACH,wBAAgB,0BAA0B,CACxC,QAAQ,EAAE,OAAO,EACjB,MAAM,EAAE,OAAO,EACf,cAAc,EAAE,MAAM,EAAE,GACvB,OAAO,CAgBT"}
|
|
1
|
+
{"version":3,"file":"cf-refs.d.ts","sourceRoot":"","sources":["../../../src/lint/post-synth/cf-refs.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IACvC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACrC,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAC9B,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,GAAG,UAAU,GAAG,IAAI,CAWvF;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,GAAG,CAAC,MAAM,CAAC,CAI5D;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAInD;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,UAAU,GACnB,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAoBhC;AAiBD;;;GAGG;AACH,wBAAgB,uBAAuB,CACrC,QAAQ,EAAE,UAAU,GACnB,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAahC;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,UAAU,GAAG,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAK5F;AAED;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAE9D;AAED;;GAEG;AACH,wBAAgB,0BAA0B,CACxC,QAAQ,EAAE,OAAO,EACjB,MAAM,EAAE,OAAO,EACf,cAAc,EAAE,MAAM,EAAE,GACvB,OAAO,CAgBT"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lint/post-synth/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lint/post-synth/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAiDvE,eAAO,MAAM,eAAe,EAAE,cAAc,EAgD3C,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* WAW038: RDS Publicly Accessible
|
|
3
|
+
*
|
|
4
|
+
* Flags RDS instances with PubliclyAccessible: true — the instance gets a
|
|
5
|
+
* public IP/DNS name reachable from the internet instead of staying inside
|
|
6
|
+
* the VPC. (DBCluster has no PubliclyAccessible property; that's set on the
|
|
7
|
+
* member DBInstance.)
|
|
8
|
+
*/
|
|
9
|
+
import type { PostSynthCheck, PostSynthContext, PostSynthDiagnostic } from "@intentius/chant/lint/post-synth";
|
|
10
|
+
export declare function checkRdsPubliclyAccessible(ctx: PostSynthContext): PostSynthDiagnostic[];
|
|
11
|
+
export declare const waw038: PostSynthCheck;
|
|
12
|
+
//# sourceMappingURL=waw038.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"waw038.d.ts","sourceRoot":"","sources":["../../../src/lint/post-synth/waw038.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AAG9G,wBAAgB,0BAA0B,CAAC,GAAG,EAAE,gBAAgB,GAAG,mBAAmB,EAAE,CA4BvF;AAED,eAAO,MAAM,MAAM,EAAE,cAOpB,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* WAW039: RDS Backup Retention Not Set
|
|
3
|
+
*
|
|
4
|
+
* Flags RDS instances and clusters without a positive BackupRetentionPeriod —
|
|
5
|
+
* a retention of 0 (or an unset property on a resource that otherwise pins
|
|
6
|
+
* every other property explicitly) disables automated backups entirely.
|
|
7
|
+
*/
|
|
8
|
+
import type { PostSynthCheck, PostSynthContext, PostSynthDiagnostic } from "@intentius/chant/lint/post-synth";
|
|
9
|
+
export declare function checkRdsBackupRetention(ctx: PostSynthContext): PostSynthDiagnostic[];
|
|
10
|
+
export declare const waw039: PostSynthCheck;
|
|
11
|
+
//# sourceMappingURL=waw039.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"waw039.d.ts","sourceRoot":"","sources":["../../../src/lint/post-synth/waw039.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AAK9G,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,gBAAgB,GAAG,mBAAmB,EAAE,CA4BpF;AAED,eAAO,MAAM,MAAM,EAAE,cAOpB,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* WAW040: RDS Deletion Protection Disabled (full tier)
|
|
3
|
+
*
|
|
4
|
+
* Flags RDS instances and clusters without DeletionProtection: true. Tier-aware
|
|
5
|
+
* (#894): a relaxed "light" stack (local/Floci, or no --env/ownership.env set)
|
|
6
|
+
* only warns, since local/dev databases are routinely torn down on purpose; the
|
|
7
|
+
* strict "full"/production tier (ctx.env === "prod"/"production"/"full", the
|
|
8
|
+
* existing #201 env seam — see isFullTierEnv) fails the build.
|
|
9
|
+
*/
|
|
10
|
+
import type { PostSynthCheck, PostSynthContext, PostSynthDiagnostic } from "@intentius/chant/lint/post-synth";
|
|
11
|
+
export declare function checkRdsDeletionProtection(ctx: PostSynthContext): PostSynthDiagnostic[];
|
|
12
|
+
export declare const waw040: PostSynthCheck;
|
|
13
|
+
//# sourceMappingURL=waw040.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"waw040.d.ts","sourceRoot":"","sources":["../../../src/lint/post-synth/waw040.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AAK9G,wBAAgB,0BAA0B,CAAC,GAAG,EAAE,gBAAgB,GAAG,mBAAmB,EAAE,CA6BvF;AAED,eAAO,MAAM,MAAM,EAAE,cAOpB,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* WAW041: RDS Proxy TLS Not Required
|
|
3
|
+
*
|
|
4
|
+
* Flags RDS Proxy resources without RequireTLS: true — without it, a client
|
|
5
|
+
* can connect to the proxy over plaintext.
|
|
6
|
+
*/
|
|
7
|
+
import type { PostSynthCheck, PostSynthContext, PostSynthDiagnostic } from "@intentius/chant/lint/post-synth";
|
|
8
|
+
export declare function checkDbProxyTls(ctx: PostSynthContext): PostSynthDiagnostic[];
|
|
9
|
+
export declare const waw041: PostSynthCheck;
|
|
10
|
+
//# sourceMappingURL=waw041.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"waw041.d.ts","sourceRoot":"","sources":["../../../src/lint/post-synth/waw041.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AAG9G,wBAAgB,eAAe,CAAC,GAAG,EAAE,gBAAgB,GAAG,mBAAmB,EAAE,CA4B5E;AAED,eAAO,MAAM,MAAM,EAAE,cAOpB,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* WAW042: S3 Bucket Missing TLS-Only Policy
|
|
3
|
+
*
|
|
4
|
+
* Flags S3 buckets without a companion BucketPolicy that denies requests made
|
|
5
|
+
* over plaintext (a Deny statement keyed on `aws:SecureTransport` being
|
|
6
|
+
* false). Encryption at rest is WAW006; the public-access block is WAW018;
|
|
7
|
+
* this covers encryption in transit.
|
|
8
|
+
*/
|
|
9
|
+
import type { PostSynthCheck, PostSynthContext, PostSynthDiagnostic } from "@intentius/chant/lint/post-synth";
|
|
10
|
+
export declare function checkS3TlsOnlyPolicy(ctx: PostSynthContext): PostSynthDiagnostic[];
|
|
11
|
+
export declare const waw042: PostSynthCheck;
|
|
12
|
+
//# sourceMappingURL=waw042.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"waw042.d.ts","sourceRoot":"","sources":["../../../src/lint/post-synth/waw042.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AAyB9G,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,gBAAgB,GAAG,mBAAmB,EAAE,CA2CjF;AAED,eAAO,MAAM,MAAM,EAAE,cAOpB,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* WAW043: KMS Key Rotation Disabled
|
|
3
|
+
*
|
|
4
|
+
* Flags customer-managed KMS keys without EnableKeyRotation: true. Skips
|
|
5
|
+
* asymmetric/HMAC keys (a non-default KeySpec) — AWS does not support
|
|
6
|
+
* automatic rotation for those.
|
|
7
|
+
*/
|
|
8
|
+
import type { PostSynthCheck, PostSynthContext, PostSynthDiagnostic } from "@intentius/chant/lint/post-synth";
|
|
9
|
+
export declare function checkKmsKeyRotation(ctx: PostSynthContext): PostSynthDiagnostic[];
|
|
10
|
+
export declare const waw043: PostSynthCheck;
|
|
11
|
+
//# sourceMappingURL=waw043.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"waw043.d.ts","sourceRoot":"","sources":["../../../src/lint/post-synth/waw043.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AAU9G,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,gBAAgB,GAAG,mBAAmB,EAAE,CA6BhF;AAED,eAAO,MAAM,MAAM,EAAE,cAOpB,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* WAW044: ALB HTTP Listener Not Redirecting To HTTPS (full tier)
|
|
3
|
+
*
|
|
4
|
+
* Flags load balancer Listener resources on Protocol: HTTP whose
|
|
5
|
+
* DefaultActions don't redirect to HTTPS — the listener serves plaintext
|
|
6
|
+
* traffic instead of upgrading it. Access logging is WAW024; this covers
|
|
7
|
+
* transport security on the listener itself.
|
|
8
|
+
*
|
|
9
|
+
* Tier-aware (#917), same seam as WAW040/WAW052 (#894): a relaxed "light"
|
|
10
|
+
* stack (local/Floci, or no --env/ownership.env set) only warns, since the
|
|
11
|
+
* light tier is intentionally HTTP-only with no ACM cert to redirect to; the
|
|
12
|
+
* strict "full"/production tier (ctx.env === "prod"/"production"/"full", the
|
|
13
|
+
* existing #201 env seam — see isFullTierEnv) fails the build.
|
|
14
|
+
*/
|
|
15
|
+
import type { PostSynthCheck, PostSynthContext, PostSynthDiagnostic } from "@intentius/chant/lint/post-synth";
|
|
16
|
+
export declare function checkAlbHttpRedirect(ctx: PostSynthContext): PostSynthDiagnostic[];
|
|
17
|
+
export declare const waw044: PostSynthCheck;
|
|
18
|
+
//# sourceMappingURL=waw044.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"waw044.d.ts","sourceRoot":"","sources":["../../../src/lint/post-synth/waw044.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AAe9G,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,gBAAgB,GAAG,mBAAmB,EAAE,CA4BjF;AAED,eAAO,MAAM,MAAM,EAAE,cAOpB,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* WAW045: ALB Weak Or Missing TLS Policy
|
|
3
|
+
*
|
|
4
|
+
* Flags HTTPS/TLS listeners without a modern SslPolicy (TLS 1.2+). The
|
|
5
|
+
* account-wide default (`ELBSecurityPolicy-2016-08`) still allows TLS 1.0, so
|
|
6
|
+
* a missing SslPolicy is flagged the same as an explicit legacy one.
|
|
7
|
+
*/
|
|
8
|
+
import type { PostSynthCheck, PostSynthContext, PostSynthDiagnostic } from "@intentius/chant/lint/post-synth";
|
|
9
|
+
export declare function checkAlbTlsPolicy(ctx: PostSynthContext): PostSynthDiagnostic[];
|
|
10
|
+
export declare const waw045: PostSynthCheck;
|
|
11
|
+
//# sourceMappingURL=waw045.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"waw045.d.ts","sourceRoot":"","sources":["../../../src/lint/post-synth/waw045.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AAU9G,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,gBAAgB,GAAG,mBAAmB,EAAE,CA8B9E;AAED,eAAO,MAAM,MAAM,EAAE,cAOpB,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* WAW046: ECS Secret-Looking Value In Plaintext Environment
|
|
3
|
+
*
|
|
4
|
+
* Flags ECS TaskDefinition container `Environment` entries whose name looks
|
|
5
|
+
* like a credential (password/secret/token/key/credential) — those values are
|
|
6
|
+
* visible in the task definition and console. They should be passed via
|
|
7
|
+
* `Secrets` (Secrets Manager / SSM Parameter Store) instead.
|
|
8
|
+
*/
|
|
9
|
+
import type { PostSynthCheck, PostSynthContext, PostSynthDiagnostic } from "@intentius/chant/lint/post-synth";
|
|
10
|
+
export declare function checkEcsPlaintextSecrets(ctx: PostSynthContext): PostSynthDiagnostic[];
|
|
11
|
+
export declare const waw046: PostSynthCheck;
|
|
12
|
+
//# sourceMappingURL=waw046.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"waw046.d.ts","sourceRoot":"","sources":["../../../src/lint/post-synth/waw046.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AAK9G,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,gBAAgB,GAAG,mBAAmB,EAAE,CAmCrF;AAED,eAAO,MAAM,MAAM,EAAE,cAOpB,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* WAW047: ECS Privileged Container
|
|
3
|
+
*
|
|
4
|
+
* Flags ECS TaskDefinition containers running with Privileged: true — the
|
|
5
|
+
* container gets elevated access to the host, equivalent to root on the EC2
|
|
6
|
+
* instance (and rejected outright on Fargate).
|
|
7
|
+
*/
|
|
8
|
+
import type { PostSynthCheck, PostSynthContext, PostSynthDiagnostic } from "@intentius/chant/lint/post-synth";
|
|
9
|
+
export declare function checkEcsPrivilegedContainer(ctx: PostSynthContext): PostSynthDiagnostic[];
|
|
10
|
+
export declare const waw047: PostSynthCheck;
|
|
11
|
+
//# sourceMappingURL=waw047.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"waw047.d.ts","sourceRoot":"","sources":["../../../src/lint/post-synth/waw047.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AAG9G,wBAAgB,2BAA2B,CAAC,GAAG,EAAE,gBAAgB,GAAG,mBAAmB,EAAE,CA6BxF;AAED,eAAO,MAAM,MAAM,EAAE,cAOpB,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* WAW048: ECS Missing Log Configuration
|
|
3
|
+
*
|
|
4
|
+
* Flags ECS TaskDefinition containers with no LogConfiguration — container
|
|
5
|
+
* stdout/stderr is discarded, leaving no audit trail. Mirrors WAW024 (ALB
|
|
6
|
+
* access logging): advisory, not a hard block.
|
|
7
|
+
*/
|
|
8
|
+
import type { PostSynthCheck, PostSynthContext, PostSynthDiagnostic } from "@intentius/chant/lint/post-synth";
|
|
9
|
+
export declare function checkEcsLogConfiguration(ctx: PostSynthContext): PostSynthDiagnostic[];
|
|
10
|
+
export declare const waw048: PostSynthCheck;
|
|
11
|
+
//# sourceMappingURL=waw048.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"waw048.d.ts","sourceRoot":"","sources":["../../../src/lint/post-synth/waw048.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AAG9G,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,gBAAgB,GAAG,mBAAmB,EAAE,CA0BrF;AAED,eAAO,MAAM,MAAM,EAAE,cAOpB,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* WAW049: Security Group Broad Ingress (any port, except ALB:80/443)
|
|
3
|
+
*
|
|
4
|
+
* Generalizes WAW019 beyond the four named sensitive ports (SSH/RDP/MySQL/
|
|
5
|
+
* Postgres): flags 0.0.0.0/0 or ::/0 ingress on *any* port, with a carve-out
|
|
6
|
+
* for the conventional public ALB listener ports (exactly 80 or 443).
|
|
7
|
+
*
|
|
8
|
+
* Port 80 is exempt unconditionally, not just on a relaxed tier (#917): a
|
|
9
|
+
* public ALB's HTTP listener is meant to be internet-facing on every tier —
|
|
10
|
+
* on the full/production tier it still needs an SG rule open to 0.0.0.0/0 so
|
|
11
|
+
* clients can reach the listener that redirects them to HTTPS (WAW044 is the
|
|
12
|
+
* rule that enforces the redirect actually happens; this rule only judges the
|
|
13
|
+
* SG's shape). The "light" tier serves plaintext HTTP straight off that same
|
|
14
|
+
* port instead of redirecting, which doesn't change the SG's exposure at all.
|
|
15
|
+
* A genuinely over-broad rule (all ports, SSH, etc.) still errors regardless
|
|
16
|
+
* of tier.
|
|
17
|
+
*/
|
|
18
|
+
import type { PostSynthCheck, PostSynthContext, PostSynthDiagnostic } from "@intentius/chant/lint/post-synth";
|
|
19
|
+
export declare function checkBroadIngress(ctx: PostSynthContext): PostSynthDiagnostic[];
|
|
20
|
+
export declare const waw049: PostSynthCheck;
|
|
21
|
+
//# sourceMappingURL=waw049.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"waw049.d.ts","sourceRoot":"","sources":["../../../src/lint/post-synth/waw049.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AAgD9G,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,gBAAgB,GAAG,mBAAmB,EAAE,CAwB9E;AAED,eAAO,MAAM,MAAM,EAAE,cAOpB,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* WAW050: Cognito Advanced Security Disabled
|
|
3
|
+
*
|
|
4
|
+
* Flags Cognito UserPools without UserPoolAddOns.AdvancedSecurityMode set to
|
|
5
|
+
* AUDIT or ENFORCED — without it, Cognito does not evaluate risk (compromised
|
|
6
|
+
* credentials, adaptive auth) on sign-in/sign-up.
|
|
7
|
+
*/
|
|
8
|
+
import type { PostSynthCheck, PostSynthContext, PostSynthDiagnostic } from "@intentius/chant/lint/post-synth";
|
|
9
|
+
export declare function checkCognitoAdvancedSecurity(ctx: PostSynthContext): PostSynthDiagnostic[];
|
|
10
|
+
export declare const waw050: PostSynthCheck;
|
|
11
|
+
//# sourceMappingURL=waw050.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"waw050.d.ts","sourceRoot":"","sources":["../../../src/lint/post-synth/waw050.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AAG9G,wBAAgB,4BAA4B,CAAC,GAAG,EAAE,gBAAgB,GAAG,mBAAmB,EAAE,CAiCzF;AAED,eAAO,MAAM,MAAM,EAAE,cAOpB,CAAC"}
|