@guardian/cdk 50.10.4 → 50.10.6
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/lib/aspects/cfn-include-reporter.js.map +1 -1
- package/lib/aspects/cfn-parameter-reporter.js.map +1 -1
- package/lib/bin/aws-credential-provider.js.map +1 -1
- package/lib/bin/commands/account-readiness/index.js.map +1 -1
- package/lib/bin/commands/account-readiness/ssm.js.map +1 -1
- package/lib/bin/commands/new-project/index.js.map +1 -1
- package/lib/bin/commands/new-project/utils/app.js.map +1 -1
- package/lib/bin/commands/new-project/utils/init.js +1 -1
- package/lib/bin/commands/new-project/utils/init.js.map +1 -1
- package/lib/bin/commands/new-project/utils/snapshot.js.map +1 -1
- package/lib/bin/commands/new-project/utils/utils.js.map +1 -1
- package/lib/bin/index.js.map +1 -1
- package/lib/constants/ssm-parameter-paths.js.map +1 -1
- package/lib/constructs/autoscaling/asg.js.map +1 -1
- package/lib/constructs/core/stack.js.map +1 -1
- package/lib/constructs/dns/dns-records.js.map +1 -1
- package/lib/constructs/ec2/vpc.js.map +1 -1
- package/lib/constructs/ecs/ecs-task.js.map +1 -1
- package/lib/constructs/iam/policies/base-policy.js.map +1 -1
- package/lib/constructs/iam/roles/github-actions.js.map +1 -1
- package/lib/constructs/vpc/vpc.js.map +1 -1
- package/lib/experimental/constructs/error-budget-alarm.js.map +1 -1
- package/lib/experimental/constructs/iam/roles/fastly-kinesis-log.js.map +1 -1
- package/lib/experimental/patterns/kinesis-lambda.js.map +1 -1
- package/lib/experimental/patterns/sns-lambda.js.map +1 -1
- package/lib/experimental/riff-raff-yaml-file/deployments/autoscaling.js.map +1 -1
- package/lib/experimental/riff-raff-yaml-file/deployments/cloudformation.js.map +1 -1
- package/lib/experimental/riff-raff-yaml-file/deployments/lambda.js.map +1 -1
- package/lib/experimental/riff-raff-yaml-file/group-by.js.map +1 -1
- package/lib/experimental/riff-raff-yaml-file/index.js.map +1 -1
- package/lib/patterns/api-multiple-lambdas.js.map +1 -1
- package/lib/patterns/ec2-app/base.js.map +1 -1
- package/lib/types/access.js.map +1 -1
- package/lib/utils/cli/vpc.js.map +1 -1
- package/lib/utils/security-groups/helpers.js.map +1 -1
- package/package.json +5 -5
package/lib/types/access.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"access.js","sourceRoot":"","sources":["../../src/types/access.ts"],"names":[],"mappings":";;;AACA,iDAA2C;AAC3C,4CAA2C;AA0D9B,QAAA,SAAS,GAAG;IACvB;;;;;;;;OAQG;IACH,QAAQ,EAAE,CAAC,MAAiB,EAAE,EAAE;QAC9B,QAAQ,MAAM,CAAC,KAAK,EAAE;YACpB,KAAK,uBAAW,CAAC,UAAU,CAAC,CAAC;gBAC3B,MAAM,MAAM,GAAG,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;gBACxD,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAEvC,IAAI,MAAM,CAAC,QAAQ,CAAC,cAAI,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,cAAI,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,EAAE;oBACxF,MAAM,IAAI,KAAK,CACb,GAAG,uBAAW,CAAC,UAAU,4DAA4D,YAAY,YAAY,uBAAW,CAAC,MAAM,GAAG,CACnI,CAAC;iBACH;gBACD,MAAM;aACP;YAED,KAAK,uBAAW,CAAC,QAAQ,CAAC,CAAC;gBACzB,MAAM,MAAM,GAAG,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;gBACxD,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAEvC,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE;oBACpD,MAAM,IAAI,KAAK,CACb,GAAG,uBAAW,CAAC,QAAQ,sEAAsE,YAAY,YAAY,uBAAW,CAAC,UAAU,GAAG,CAC/I,CAAC;iBACH;gBACD,MAAM;aACP;YACD;gBACE,MAAM;SACT;IACH,CAAC;CACF,CAAC","sourcesContent":["import type { IPeer } from \"aws-cdk-lib/aws-ec2\";\nimport { Peer } from \"aws-cdk-lib/aws-ec2\";\nimport { AccessScope } from \"../constants\";\n\nexport interface Access {\n scope: AccessScope;\n}\n\n/**\n * For when you want your application to be accessible to the world (0.0.0.0/0).\n * Your application load balancer will have a public IP address that can be reached by anyone,\n * so only use if you are aware and happy with the consequences!\n *\n * Example usage:\n * ```typescript\n * { scope: AccessScope.PUBLIC }\n * ```\n */\nexport interface PublicAccess extends Access {\n scope: AccessScope.PUBLIC;\n}\n\n/**\n * For when you want to restrict your application's access to a list of CIDR ranges. For example,\n * if you want limit access to users connecting from Guardian offices only.\n *\n * Example usage:\n * ```typescript\n * {\n * scope: AccessScope.RESTRICTED,\n * cidrRanges: [Peer.ipv4(\"192.168.1.1/32\"), Peer.ipv4(\"8.8.8.8/32\")]\n * }\n * ```\n */\nexport interface RestrictedAccess extends Access {\n scope: AccessScope.RESTRICTED;\n cidrRanges: IPeer[];\n}\n\n/**\n * For when you want to restrict your application's access to services running inside your VPC.\n *\n * Note that if your account uses Direct Connect or VPC Peering, then incoming traffic from these sources\n * can also be allowed.\n *\n * Example usage:\n * ```typescript\n * {\n * scope: AccessScope.INTERNAL,\n * cidrRanges: [Peer.ipv4(\"10.0.0.0/8\")]\n * }\n * ```\n */\nexport interface InternalAccess extends Access {\n scope: AccessScope.INTERNAL;\n cidrRanges: IPeer[];\n}\n\nexport type AppAccess = PublicAccess | RestrictedAccess | InternalAccess;\n\nexport const AppAccess = {\n /**\n * Validate the CIDR rules for AppAccess.\n *\n * Public - always valid. No CIDR rules are needed here, and the type-system enforces this\n * Restricted - Must not include global CIDR ranges as doing so makes other listed CIDR ranges redundant\n * Internal - All CIDR ranges must start `10.`\n *\n * @throws `Error` when CIDR rules are invalid\n */\n validate: (access: AppAccess) => {\n switch (access.scope) {\n case AccessScope.RESTRICTED: {\n const ranges = access.cidrRanges.map((_) => _.uniqueId);\n const rangesString = ranges.join(\", \");\n\n if (ranges.includes(Peer.anyIpv4().uniqueId) || ranges.includes(Peer.anyIpv6().uniqueId)) {\n throw new Error(\n `${AccessScope.RESTRICTED} apps cannot be globally accessible. Adjust CIDR ranges (${rangesString}) or use ${AccessScope.PUBLIC}
|
|
1
|
+
{"version":3,"file":"access.js","sourceRoot":"","sources":["../../src/types/access.ts"],"names":[],"mappings":";;;AACA,iDAA2C;AAC3C,4CAA2C;AA0D9B,QAAA,SAAS,GAAG;IACvB;;;;;;;;OAQG;IACH,QAAQ,EAAE,CAAC,MAAiB,EAAE,EAAE;QAC9B,QAAQ,MAAM,CAAC,KAAK,EAAE;YACpB,KAAK,uBAAW,CAAC,UAAU,CAAC,CAAC;gBAC3B,MAAM,MAAM,GAAG,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;gBACxD,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAEvC,IAAI,MAAM,CAAC,QAAQ,CAAC,cAAI,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,cAAI,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,EAAE;oBACxF,MAAM,IAAI,KAAK,CACb,GAAG,uBAAW,CAAC,UAAU,4DAA4D,YAAY,YAAY,uBAAW,CAAC,MAAM,GAAG,CACnI,CAAC;iBACH;gBACD,MAAM;aACP;YAED,KAAK,uBAAW,CAAC,QAAQ,CAAC,CAAC;gBACzB,MAAM,MAAM,GAAG,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;gBACxD,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAEvC,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE;oBACpD,MAAM,IAAI,KAAK,CACb,GAAG,uBAAW,CAAC,QAAQ,sEAAsE,YAAY,YAAY,uBAAW,CAAC,UAAU,GAAG,CAC/I,CAAC;iBACH;gBACD,MAAM;aACP;YACD;gBACE,MAAM;SACT;IACH,CAAC;CACF,CAAC","sourcesContent":["import type { IPeer } from \"aws-cdk-lib/aws-ec2\";\nimport { Peer } from \"aws-cdk-lib/aws-ec2\";\nimport { AccessScope } from \"../constants\";\n\nexport interface Access {\n scope: AccessScope;\n}\n\n/**\n * For when you want your application to be accessible to the world (0.0.0.0/0).\n * Your application load balancer will have a public IP address that can be reached by anyone,\n * so only use if you are aware and happy with the consequences!\n *\n * Example usage:\n * ```typescript\n * { scope: AccessScope.PUBLIC }\n * ```\n */\nexport interface PublicAccess extends Access {\n scope: AccessScope.PUBLIC;\n}\n\n/**\n * For when you want to restrict your application's access to a list of CIDR ranges. For example,\n * if you want limit access to users connecting from Guardian offices only.\n *\n * Example usage:\n * ```typescript\n * {\n * scope: AccessScope.RESTRICTED,\n * cidrRanges: [Peer.ipv4(\"192.168.1.1/32\"), Peer.ipv4(\"8.8.8.8/32\")]\n * }\n * ```\n */\nexport interface RestrictedAccess extends Access {\n scope: AccessScope.RESTRICTED;\n cidrRanges: IPeer[];\n}\n\n/**\n * For when you want to restrict your application's access to services running inside your VPC.\n *\n * Note that if your account uses Direct Connect or VPC Peering, then incoming traffic from these sources\n * can also be allowed.\n *\n * Example usage:\n * ```typescript\n * {\n * scope: AccessScope.INTERNAL,\n * cidrRanges: [Peer.ipv4(\"10.0.0.0/8\")]\n * }\n * ```\n */\nexport interface InternalAccess extends Access {\n scope: AccessScope.INTERNAL;\n cidrRanges: IPeer[];\n}\n\nexport type AppAccess = PublicAccess | RestrictedAccess | InternalAccess;\n\nexport const AppAccess = {\n /**\n * Validate the CIDR rules for AppAccess.\n *\n * Public - always valid. No CIDR rules are needed here, and the type-system enforces this\n * Restricted - Must not include global CIDR ranges as doing so makes other listed CIDR ranges redundant\n * Internal - All CIDR ranges must start `10.`\n *\n * @throws `Error` when CIDR rules are invalid\n */\n validate: (access: AppAccess) => {\n switch (access.scope) {\n case AccessScope.RESTRICTED: {\n const ranges = access.cidrRanges.map((_) => _.uniqueId);\n const rangesString = ranges.join(\", \");\n\n if (ranges.includes(Peer.anyIpv4().uniqueId) || ranges.includes(Peer.anyIpv6().uniqueId)) {\n throw new Error(\n `${AccessScope.RESTRICTED} apps cannot be globally accessible. Adjust CIDR ranges (${rangesString}) or use ${AccessScope.PUBLIC}.`,\n );\n }\n break;\n }\n\n case AccessScope.INTERNAL: {\n const ranges = access.cidrRanges.map((_) => _.uniqueId);\n const rangesString = ranges.join(\", \");\n\n if (ranges.some((range) => !range.startsWith(\"10.\"))) {\n throw new Error(\n `${AccessScope.INTERNAL} apps should only be accessible on 10. ranges. Adjust CIDR ranges (${rangesString}) or use ${AccessScope.RESTRICTED}.`,\n );\n }\n break;\n }\n default:\n break;\n }\n },\n};\n"]}
|
package/lib/utils/cli/vpc.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vpc.js","sourceRoot":"","sources":["../../../src/utils/cli/vpc.ts"],"names":[],"mappings":"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","sourcesContent":["import type AWS from \"aws-sdk\";\nimport type { DescribeSubnetsResult, DescribeVpcsResult, SubnetList, Vpc, VpcList } from \"aws-sdk/clients/ec2\";\nimport type { ParameterList } from \"aws-sdk/clients/ssm\";\nimport { ALL_SSM_PARAMETER_PATHS, VPC_SSM_PARAMETER_PREFIX } from \"../../constants\";\nimport type { VpcInDetail } from \"../../types/cli\";\nimport { sum } from \"../math\";\n\nexport const primaryVpcSsmParameterPaths: string[] = ALL_SSM_PARAMETER_PATHS.map((_) => _.path).filter((_) =>\n _.startsWith(VPC_SSM_PARAMETER_PREFIX)
|
|
1
|
+
{"version":3,"file":"vpc.js","sourceRoot":"","sources":["../../../src/utils/cli/vpc.ts"],"names":[],"mappings":"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","sourcesContent":["import type AWS from \"aws-sdk\";\nimport type { DescribeSubnetsResult, DescribeVpcsResult, SubnetList, Vpc, VpcList } from \"aws-sdk/clients/ec2\";\nimport type { ParameterList } from \"aws-sdk/clients/ssm\";\nimport { ALL_SSM_PARAMETER_PATHS, VPC_SSM_PARAMETER_PREFIX } from \"../../constants\";\nimport type { VpcInDetail } from \"../../types/cli\";\nimport { sum } from \"../math\";\n\nexport const primaryVpcSsmParameterPaths: string[] = ALL_SSM_PARAMETER_PATHS.map((_) => _.path).filter((_) =>\n _.startsWith(VPC_SSM_PARAMETER_PREFIX),\n);\n\nexport const vpcSsmParameterPaths: RegExp[] = primaryVpcSsmParameterPaths.map((primaryPath) => {\n const reBody = primaryPath.replace(\"primary\", \"([A-z0-9.-_])+\");\n return new RegExp(`^${reBody}$`);\n});\n\nconst getSsmParametersWithVpcPrefix = async (ssmClient: AWS.SSM): Promise<ParameterList> => {\n const params = await ssmClient\n .getParametersByPath({\n Path: VPC_SSM_PARAMETER_PREFIX,\n Recursive: true,\n })\n .promise();\n return params.Parameters ?? [];\n};\n\nexport const getSsmParametersForVpc = async (ssmClient: AWS.SSM): Promise<ParameterList> => {\n const paramsWithVpcPrefix = await getSsmParametersWithVpcPrefix(ssmClient);\n\n return paramsWithVpcPrefix.filter((param) => {\n const path = param.Name;\n if (!path) {\n return false;\n }\n\n return vpcSsmParameterPaths.filter((re) => re.exec(path)).length > 0;\n });\n};\n\nconst getSubnetsForVpc = async (vpc: Vpc, ec2Client: AWS.EC2): Promise<SubnetList> => {\n if (!vpc.VpcId) {\n return [];\n }\n const response: DescribeSubnetsResult = await ec2Client\n .describeSubnets({ Filters: [{ Name: \"vpc-id\", Values: [vpc.VpcId] }] })\n .promise();\n return response.Subnets ?? [];\n};\n\nconst getVpcs = async (ec2Client: AWS.EC2): Promise<VpcList> => {\n const vpcs: DescribeVpcsResult = await ec2Client.describeVpcs().promise();\n return vpcs.Vpcs ?? [];\n};\n\nconst totalUnusedAddressesInSubnet = (subnets: SubnetList): number => {\n return sum(subnets.map((_) => _.AvailableIpAddressCount ?? 0));\n};\n\nconst countFromCidr = (cidr: string): number => {\n const UNUSABLE_IPS_IN_CIDR_BLOCK = 5;\n\n const [, mask] = cidr.split(\"/\");\n const maskAsNumber = Number(mask);\n\n if (isNaN(maskAsNumber)) {\n return 0;\n }\n\n const hostBits = 32 - maskAsNumber;\n return Math.pow(2, hostBits) - UNUSABLE_IPS_IN_CIDR_BLOCK;\n};\n\nconst totalCapacityOfSubnet = (subnets: SubnetList): number => {\n const counts = subnets\n .map((subnet) => subnet.CidrBlock)\n .map((cidrBlock) => (cidrBlock ? countFromCidr(cidrBlock) : 0));\n\n return sum(counts.filter((_) => !!_));\n};\n\nexport const getVpcsInDetail = async (ec2Client: AWS.EC2): Promise<VpcInDetail[]> => {\n const vpcs = await getVpcs(ec2Client);\n\n return await Promise.all(\n vpcs.map(async (vpc) => {\n const subnets = await getSubnetsForVpc(vpc, ec2Client);\n\n const isUsed: boolean = totalCapacityOfSubnet(subnets) - totalUnusedAddressesInSubnet(subnets) !== 0;\n\n return {\n ...vpc,\n subnets,\n isUsed,\n };\n }),\n );\n};\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../../src/utils/security-groups/helpers.ts"],"names":[],"mappings":";;;AAAA,iDAA2C;AAIpC,MAAM,kCAAkC,GAAG,CAChD,UAAmC,EACnC,IAAmB,EACQ,EAAE;IAC7B,OAAO,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;QACrC,OAAO;YACL,KAAK,EAAE,cAAI,CAAC,IAAI,CAAC,KAAK,CAAC;YACvB,WAAW,EAAE,GAAG;YAChB,IAAI;SACL,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AAXW,QAAA,kCAAkC,sCAW7C","sourcesContent":["import { Peer } from \"aws-cdk-lib/aws-ec2\";\nimport type { Port } from \"aws-cdk-lib/aws-ec2\";\nimport type { SecurityGroupAccessRule } from \"../../constructs/ec2\";\n\nexport const transformToSecurityGroupAccessRule = (\n cidrBlocks: Array<[string, string]>,\n port: Port | number
|
|
1
|
+
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../../src/utils/security-groups/helpers.ts"],"names":[],"mappings":";;;AAAA,iDAA2C;AAIpC,MAAM,kCAAkC,GAAG,CAChD,UAAmC,EACnC,IAAmB,EACQ,EAAE;IAC7B,OAAO,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;QACrC,OAAO;YACL,KAAK,EAAE,cAAI,CAAC,IAAI,CAAC,KAAK,CAAC;YACvB,WAAW,EAAE,GAAG;YAChB,IAAI;SACL,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AAXW,QAAA,kCAAkC,sCAW7C","sourcesContent":["import { Peer } from \"aws-cdk-lib/aws-ec2\";\nimport type { Port } from \"aws-cdk-lib/aws-ec2\";\nimport type { SecurityGroupAccessRule } from \"../../constructs/ec2\";\n\nexport const transformToSecurityGroupAccessRule = (\n cidrBlocks: Array<[string, string]>,\n port: Port | number,\n): SecurityGroupAccessRule[] => {\n return cidrBlocks.map(([key, value]) => {\n return {\n range: Peer.ipv4(value),\n description: key,\n port,\n };\n });\n};\n"]}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@guardian/cdk",
|
|
3
3
|
"description": "Generic Guardian flavoured AWS CDK components",
|
|
4
|
-
"version": "50.10.
|
|
4
|
+
"version": "50.10.6",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"types": "lib/index.d.ts",
|
|
7
7
|
"files": [
|
|
@@ -36,7 +36,7 @@
|
|
|
36
36
|
"@types/lodash.camelcase": "^4.3.7",
|
|
37
37
|
"@types/lodash.kebabcase": "^4.1.7",
|
|
38
38
|
"@types/lodash.upperfirst": "^4.3.7",
|
|
39
|
-
"@types/node": "20.4.
|
|
39
|
+
"@types/node": "20.4.5",
|
|
40
40
|
"@types/yargs": "^17.0.19",
|
|
41
41
|
"aws-cdk": "2.87.0",
|
|
42
42
|
"cz-conventional-changelog": "^3.3.0",
|
|
@@ -44,16 +44,16 @@
|
|
|
44
44
|
"eslint-plugin-custom-rules": "file:tools/eslint",
|
|
45
45
|
"gh-pages": "^5.0.0",
|
|
46
46
|
"jest": "^29.6.1",
|
|
47
|
-
"prettier": "^
|
|
47
|
+
"prettier": "^3.0.0",
|
|
48
48
|
"semantic-release": "^21.0.7",
|
|
49
49
|
"serve": "^14.2.0",
|
|
50
|
-
"ts-jest": "^29.1.
|
|
50
|
+
"ts-jest": "^29.1.1",
|
|
51
51
|
"ts-node": "^10.9.1",
|
|
52
52
|
"typedoc": "^0.24.8",
|
|
53
53
|
"typescript": "~4.9.5"
|
|
54
54
|
},
|
|
55
55
|
"dependencies": {
|
|
56
|
-
"@oclif/core": "2.
|
|
56
|
+
"@oclif/core": "2.10.0",
|
|
57
57
|
"aws-cdk-lib": "2.87.0",
|
|
58
58
|
"aws-sdk": "^2.1415.0",
|
|
59
59
|
"chalk": "^4.1.2",
|