@friggframework/devtools 2.0.0--canary.461.ef65c13.0 → 2.0.0--canary.461.4e47399.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.
@@ -614,6 +614,23 @@ class VpcBuilder extends InfrastructureBuilder {
614
614
  },
615
615
  };
616
616
 
617
+ // Associate route table with private subnets
618
+ result.resources.FriggPrivateSubnet1RouteTableAssociation = {
619
+ Type: 'AWS::EC2::SubnetRouteTableAssociation',
620
+ Properties: {
621
+ SubnetId: { Ref: 'FriggPrivateSubnet1' },
622
+ RouteTableId: { Ref: 'FriggLambdaRouteTable' },
623
+ },
624
+ };
625
+
626
+ result.resources.FriggPrivateSubnet2RouteTableAssociation = {
627
+ Type: 'AWS::EC2::SubnetRouteTableAssociation',
628
+ Properties: {
629
+ SubnetId: { Ref: 'FriggPrivateSubnet2' },
630
+ RouteTableId: { Ref: 'FriggLambdaRouteTable' },
631
+ },
632
+ };
633
+
617
634
  console.log(' ✅ NAT Gateway infrastructure created');
618
635
  }
619
636
 
@@ -543,6 +543,46 @@ describe('VpcBuilder', () => {
543
543
  expect(result.resources.FriggNATGateway.Type).toBe('AWS::EC2::NatGateway');
544
544
  });
545
545
 
546
+ it('should create route table associations for private subnets with NAT Gateway', async () => {
547
+ const appDefinition = {
548
+ vpc: {
549
+ enable: true,
550
+ management: 'discover',
551
+ subnets: { management: 'create' },
552
+ natGateway: {
553
+ management: 'createAndManage',
554
+ },
555
+ selfHeal: true,
556
+ },
557
+ };
558
+
559
+ const discoveredResources = {
560
+ defaultVpcId: 'vpc-123',
561
+ publicSubnetId: 'subnet-public',
562
+ };
563
+
564
+ const result = await vpcBuilder.build(appDefinition, discoveredResources);
565
+
566
+ // Verify route table is created
567
+ expect(result.resources.FriggLambdaRouteTable).toBeDefined();
568
+ expect(result.resources.FriggLambdaRouteTable.Type).toBe('AWS::EC2::RouteTable');
569
+
570
+ // Verify route to NAT Gateway
571
+ expect(result.resources.FriggPrivateRoute).toBeDefined();
572
+ expect(result.resources.FriggPrivateRoute.Properties.NatGatewayId).toEqual({ Ref: 'FriggNATGateway' });
573
+
574
+ // Verify subnet route table associations
575
+ expect(result.resources.FriggPrivateSubnet1RouteTableAssociation).toBeDefined();
576
+ expect(result.resources.FriggPrivateSubnet1RouteTableAssociation.Type).toBe('AWS::EC2::SubnetRouteTableAssociation');
577
+ expect(result.resources.FriggPrivateSubnet1RouteTableAssociation.Properties.SubnetId).toEqual({ Ref: 'FriggPrivateSubnet1' });
578
+ expect(result.resources.FriggPrivateSubnet1RouteTableAssociation.Properties.RouteTableId).toEqual({ Ref: 'FriggLambdaRouteTable' });
579
+
580
+ expect(result.resources.FriggPrivateSubnet2RouteTableAssociation).toBeDefined();
581
+ expect(result.resources.FriggPrivateSubnet2RouteTableAssociation.Type).toBe('AWS::EC2::SubnetRouteTableAssociation');
582
+ expect(result.resources.FriggPrivateSubnet2RouteTableAssociation.Properties.SubnetId).toEqual({ Ref: 'FriggPrivateSubnet2' });
583
+ expect(result.resources.FriggPrivateSubnet2RouteTableAssociation.Properties.RouteTableId).toEqual({ Ref: 'FriggLambdaRouteTable' });
584
+ });
585
+
546
586
  it('should not create NAT when existing NAT is properly placed', async () => {
547
587
  const appDefinition = {
548
588
  vpc: {
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@friggframework/devtools",
3
3
  "prettier": "@friggframework/prettier-config",
4
- "version": "2.0.0--canary.461.ef65c13.0",
4
+ "version": "2.0.0--canary.461.4e47399.0",
5
5
  "dependencies": {
6
6
  "@aws-sdk/client-ec2": "^3.835.0",
7
7
  "@aws-sdk/client-kms": "^3.835.0",
@@ -11,8 +11,8 @@
11
11
  "@babel/eslint-parser": "^7.18.9",
12
12
  "@babel/parser": "^7.25.3",
13
13
  "@babel/traverse": "^7.25.3",
14
- "@friggframework/schemas": "2.0.0--canary.461.ef65c13.0",
15
- "@friggframework/test": "2.0.0--canary.461.ef65c13.0",
14
+ "@friggframework/schemas": "2.0.0--canary.461.4e47399.0",
15
+ "@friggframework/test": "2.0.0--canary.461.4e47399.0",
16
16
  "@hapi/boom": "^10.0.1",
17
17
  "@inquirer/prompts": "^5.3.8",
18
18
  "axios": "^1.7.2",
@@ -34,8 +34,8 @@
34
34
  "serverless-http": "^2.7.0"
35
35
  },
36
36
  "devDependencies": {
37
- "@friggframework/eslint-config": "2.0.0--canary.461.ef65c13.0",
38
- "@friggframework/prettier-config": "2.0.0--canary.461.ef65c13.0",
37
+ "@friggframework/eslint-config": "2.0.0--canary.461.4e47399.0",
38
+ "@friggframework/prettier-config": "2.0.0--canary.461.4e47399.0",
39
39
  "aws-sdk-client-mock": "^4.1.0",
40
40
  "aws-sdk-client-mock-jest": "^4.1.0",
41
41
  "jest": "^30.1.3",
@@ -70,5 +70,5 @@
70
70
  "publishConfig": {
71
71
  "access": "public"
72
72
  },
73
- "gitHead": "ef65c139337b0559eaf467f419e6bc789eb72411"
73
+ "gitHead": "4e4739922e59468d0c85a3f2c15df25b240082d9"
74
74
  }