@quiltdata/benchling-webhook 0.8.8 → 0.8.9-20251130T212657Z
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/README.md +110 -0
- package/dist/bin/benchling-webhook.js +6 -0
- package/dist/bin/benchling-webhook.js.map +1 -1
- package/dist/bin/cli.js +37 -2
- package/dist/bin/cli.js.map +1 -1
- package/dist/bin/commands/deploy.d.ts +2 -0
- package/dist/bin/commands/deploy.d.ts.map +1 -1
- package/dist/bin/commands/deploy.js +122 -2
- package/dist/bin/commands/deploy.js.map +1 -1
- package/dist/bin/commands/destroy.d.ts +16 -0
- package/dist/bin/commands/destroy.d.ts.map +1 -0
- package/dist/bin/commands/destroy.js +258 -0
- package/dist/bin/commands/destroy.js.map +1 -0
- package/dist/bin/commands/infer-quilt-config.d.ts.map +1 -1
- package/dist/bin/commands/infer-quilt-config.js +13 -8
- package/dist/bin/commands/infer-quilt-config.js.map +1 -1
- package/dist/bin/commands/logs.d.ts.map +1 -1
- package/dist/bin/commands/logs.js +29 -6
- package/dist/bin/commands/logs.js.map +1 -1
- package/dist/bin/commands/setup-profile.d.ts +1 -1
- package/dist/bin/commands/setup-profile.d.ts.map +1 -1
- package/dist/bin/commands/setup-profile.js +46 -1
- package/dist/bin/commands/setup-profile.js.map +1 -1
- package/dist/bin/commands/status.d.ts +17 -0
- package/dist/bin/commands/status.d.ts.map +1 -1
- package/dist/bin/commands/status.js +186 -35
- package/dist/bin/commands/status.js.map +1 -1
- package/dist/bin/commands/sync-secrets.d.ts +1 -1
- package/dist/bin/commands/sync-secrets.js +1 -1
- package/dist/bin/xdg-launch.d.ts +1 -1
- package/dist/bin/xdg-launch.d.ts.map +1 -1
- package/dist/bin/xdg-launch.js +105 -26
- package/dist/bin/xdg-launch.js.map +1 -1
- package/dist/lib/benchling-webhook-stack.d.ts +1 -1
- package/dist/lib/benchling-webhook-stack.d.ts.map +1 -1
- package/dist/lib/benchling-webhook-stack.js +83 -17
- package/dist/lib/benchling-webhook-stack.js.map +1 -1
- package/dist/lib/configuration-saver.d.ts +1 -1
- package/dist/lib/configuration-saver.d.ts.map +1 -1
- package/dist/lib/configuration-saver.js +4 -5
- package/dist/lib/configuration-saver.js.map +1 -1
- package/dist/lib/constants.d.ts +5 -0
- package/dist/lib/constants.d.ts.map +1 -1
- package/dist/lib/constants.js +6 -1
- package/dist/lib/constants.js.map +1 -1
- package/dist/lib/fargate-service.d.ts +4 -5
- package/dist/lib/fargate-service.d.ts.map +1 -1
- package/dist/lib/fargate-service.js +14 -59
- package/dist/lib/fargate-service.js.map +1 -1
- package/dist/lib/index.d.ts +1 -1
- package/dist/lib/index.d.ts.map +1 -1
- package/dist/lib/index.js +3 -3
- package/dist/lib/index.js.map +1 -1
- package/dist/lib/network-load-balancer.d.ts +27 -0
- package/dist/lib/network-load-balancer.d.ts.map +1 -0
- package/dist/lib/network-load-balancer.js +109 -0
- package/dist/lib/network-load-balancer.js.map +1 -0
- package/dist/lib/rest-api-gateway.d.ts +22 -0
- package/dist/lib/rest-api-gateway.d.ts.map +1 -0
- package/dist/lib/rest-api-gateway.js +221 -0
- package/dist/lib/rest-api-gateway.js.map +1 -0
- package/dist/lib/types/config.d.ts +53 -8
- package/dist/lib/types/config.d.ts.map +1 -1
- package/dist/lib/types/config.js +1 -1
- package/dist/lib/types/config.js.map +1 -1
- package/dist/lib/utils/service-resolver.d.ts +1 -1
- package/dist/lib/utils/service-resolver.js +1 -1
- package/dist/lib/wizard/phase2-stack-query.d.ts.map +1 -1
- package/dist/lib/wizard/phase2-stack-query.js +57 -14
- package/dist/lib/wizard/phase2-stack-query.js.map +1 -1
- package/dist/lib/wizard/phase3-parameter-collection.d.ts.map +1 -1
- package/dist/lib/wizard/phase3-parameter-collection.js +55 -1
- package/dist/lib/wizard/phase3-parameter-collection.js.map +1 -1
- package/dist/lib/wizard/phase6-integrated-mode.d.ts.map +1 -1
- package/dist/lib/wizard/phase6-integrated-mode.js +3 -1
- package/dist/lib/wizard/phase6-integrated-mode.js.map +1 -1
- package/dist/lib/wizard/phase7-standalone-mode.d.ts.map +1 -1
- package/dist/lib/wizard/phase7-standalone-mode.js +3 -1
- package/dist/lib/wizard/phase7-standalone-mode.js.map +1 -1
- package/dist/lib/wizard/types.d.ts +24 -0
- package/dist/lib/wizard/types.d.ts.map +1 -1
- package/dist/lib/xdg-base.d.ts +17 -1
- package/dist/lib/xdg-base.d.ts.map +1 -1
- package/dist/lib/xdg-base.js +30 -1
- package/dist/lib/xdg-base.js.map +1 -1
- package/dist/lib/xdg-config.d.ts +1 -1
- package/dist/lib/xdg-config.js +1 -1
- package/dist/package.json +6 -3
- package/dist/scripts/discover-vpc.d.ts +69 -0
- package/dist/scripts/discover-vpc.d.ts.map +1 -0
- package/dist/scripts/discover-vpc.js +196 -0
- package/dist/scripts/discover-vpc.js.map +1 -0
- package/package.json +6 -3
- package/dist/lib/alb-api-gateway.d.ts +0 -23
- package/dist/lib/alb-api-gateway.d.ts.map +0 -1
- package/dist/lib/alb-api-gateway.js +0 -211
- package/dist/lib/alb-api-gateway.js.map +0 -1
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.NetworkLoadBalancer = void 0;
|
|
37
|
+
const cdk = __importStar(require("aws-cdk-lib"));
|
|
38
|
+
const elbv2 = __importStar(require("aws-cdk-lib/aws-elasticloadbalancingv2"));
|
|
39
|
+
const constructs_1 = require("constructs");
|
|
40
|
+
/**
|
|
41
|
+
* Network Load Balancer for ECS Fargate service
|
|
42
|
+
*
|
|
43
|
+
* Provides reliable health checks and routing for ECS tasks.
|
|
44
|
+
* Replaces Cloud Map service discovery which has issues with custom health checks.
|
|
45
|
+
*
|
|
46
|
+
* Architecture:
|
|
47
|
+
* - Internal NLB (not internet-facing)
|
|
48
|
+
* - TCP listener on port 80
|
|
49
|
+
* - Target Group with IP targets for ECS Fargate tasks
|
|
50
|
+
* - HTTP health checks on /health endpoint
|
|
51
|
+
*
|
|
52
|
+
* @since v0.9.0
|
|
53
|
+
*/
|
|
54
|
+
class NetworkLoadBalancer extends constructs_1.Construct {
|
|
55
|
+
constructor(scope, id, props) {
|
|
56
|
+
super(scope, id);
|
|
57
|
+
// Create internal Network Load Balancer
|
|
58
|
+
// Internal = only accessible within VPC (not from internet)
|
|
59
|
+
this.loadBalancer = new elbv2.NetworkLoadBalancer(this, "LoadBalancer", {
|
|
60
|
+
vpc: props.vpc,
|
|
61
|
+
internetFacing: false,
|
|
62
|
+
vpcSubnets: {
|
|
63
|
+
subnets: props.vpc.privateSubnets,
|
|
64
|
+
},
|
|
65
|
+
crossZoneEnabled: true, // Distribute traffic evenly across AZs
|
|
66
|
+
});
|
|
67
|
+
// Create Target Group for ECS tasks
|
|
68
|
+
// IP target type is required for Fargate tasks
|
|
69
|
+
this.targetGroup = new elbv2.NetworkTargetGroup(this, "TargetGroup", {
|
|
70
|
+
vpc: props.vpc,
|
|
71
|
+
port: 8080,
|
|
72
|
+
protocol: elbv2.Protocol.TCP,
|
|
73
|
+
targetType: elbv2.TargetType.IP, // Required for Fargate
|
|
74
|
+
deregistrationDelay: cdk.Duration.seconds(30), // Quick deregistration
|
|
75
|
+
// HTTP health checks for application health
|
|
76
|
+
// NLB supports HTTP health checks even with TCP listener
|
|
77
|
+
healthCheck: {
|
|
78
|
+
enabled: true,
|
|
79
|
+
protocol: elbv2.Protocol.HTTP,
|
|
80
|
+
path: "/health",
|
|
81
|
+
interval: cdk.Duration.seconds(30),
|
|
82
|
+
timeout: cdk.Duration.seconds(10),
|
|
83
|
+
healthyThresholdCount: 2, // 2 successful checks = healthy
|
|
84
|
+
unhealthyThresholdCount: 3, // 3 failed checks = unhealthy
|
|
85
|
+
healthyHttpCodes: "200",
|
|
86
|
+
},
|
|
87
|
+
});
|
|
88
|
+
// Create TCP listener on port 80
|
|
89
|
+
// API Gateway will connect to this via VPC Link
|
|
90
|
+
this.listener = this.loadBalancer.addListener("Listener", {
|
|
91
|
+
port: 80,
|
|
92
|
+
protocol: elbv2.Protocol.TCP,
|
|
93
|
+
defaultTargetGroups: [this.targetGroup],
|
|
94
|
+
});
|
|
95
|
+
// Outputs for debugging
|
|
96
|
+
new cdk.CfnOutput(this, "LoadBalancerDnsName", {
|
|
97
|
+
value: this.loadBalancer.loadBalancerDnsName,
|
|
98
|
+
description: "Network Load Balancer DNS name",
|
|
99
|
+
exportName: "BenchlingWebhookNLBDnsName",
|
|
100
|
+
});
|
|
101
|
+
new cdk.CfnOutput(this, "TargetGroupArn", {
|
|
102
|
+
value: this.targetGroup.targetGroupArn,
|
|
103
|
+
description: "Target Group ARN for ECS tasks",
|
|
104
|
+
exportName: "BenchlingWebhookTargetGroupArn",
|
|
105
|
+
});
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
exports.NetworkLoadBalancer = NetworkLoadBalancer;
|
|
109
|
+
//# sourceMappingURL=network-load-balancer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"network-load-balancer.js","sourceRoot":"","sources":["../../lib/network-load-balancer.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,iDAAmC;AAEnC,8EAAgE;AAChE,2CAAuC;AAMvC;;;;;;;;;;;;;GAaG;AACH,MAAa,mBAAoB,SAAQ,sBAAS;IAK9C,YAAY,KAAgB,EAAE,EAAU,EAAE,KAA+B;QACrE,KAAK,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QAEjB,wCAAwC;QACxC,4DAA4D;QAC5D,IAAI,CAAC,YAAY,GAAG,IAAI,KAAK,CAAC,mBAAmB,CAAC,IAAI,EAAE,cAAc,EAAE;YACpE,GAAG,EAAE,KAAK,CAAC,GAAG;YACd,cAAc,EAAE,KAAK;YACrB,UAAU,EAAE;gBACR,OAAO,EAAE,KAAK,CAAC,GAAG,CAAC,cAAc;aACpC;YACD,gBAAgB,EAAE,IAAI,EAAE,uCAAuC;SAClE,CAAC,CAAC;QAEH,oCAAoC;QACpC,+CAA+C;QAC/C,IAAI,CAAC,WAAW,GAAG,IAAI,KAAK,CAAC,kBAAkB,CAAC,IAAI,EAAE,aAAa,EAAE;YACjE,GAAG,EAAE,KAAK,CAAC,GAAG;YACd,IAAI,EAAE,IAAI;YACV,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,GAAG;YAC5B,UAAU,EAAE,KAAK,CAAC,UAAU,CAAC,EAAE,EAAE,uBAAuB;YACxD,mBAAmB,EAAE,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,uBAAuB;YAEtE,4CAA4C;YAC5C,yDAAyD;YACzD,WAAW,EAAE;gBACT,OAAO,EAAE,IAAI;gBACb,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,IAAI;gBAC7B,IAAI,EAAE,SAAS;gBACf,QAAQ,EAAE,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;gBAClC,OAAO,EAAE,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;gBACjC,qBAAqB,EAAE,CAAC,EAAG,gCAAgC;gBAC3D,uBAAuB,EAAE,CAAC,EAAE,8BAA8B;gBAC1D,gBAAgB,EAAE,KAAK;aAC1B;SACJ,CAAC,CAAC;QAEH,iCAAiC;QACjC,gDAAgD;QAChD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,UAAU,EAAE;YACtD,IAAI,EAAE,EAAE;YACR,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,GAAG;YAC5B,mBAAmB,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC;SAC1C,CAAC,CAAC;QAEH,wBAAwB;QACxB,IAAI,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,qBAAqB,EAAE;YAC3C,KAAK,EAAE,IAAI,CAAC,YAAY,CAAC,mBAAmB;YAC5C,WAAW,EAAE,gCAAgC;YAC7C,UAAU,EAAE,4BAA4B;SAC3C,CAAC,CAAC;QAEH,IAAI,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,gBAAgB,EAAE;YACtC,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,cAAc;YACtC,WAAW,EAAE,gCAAgC;YAC7C,UAAU,EAAE,gCAAgC;SAC/C,CAAC,CAAC;IACP,CAAC;CACJ;AA/DD,kDA+DC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import * as apigateway from "aws-cdk-lib/aws-apigateway";
|
|
2
|
+
import * as ec2 from "aws-cdk-lib/aws-ec2";
|
|
3
|
+
import * as elbv2 from "aws-cdk-lib/aws-elasticloadbalancingv2";
|
|
4
|
+
import * as logs from "aws-cdk-lib/aws-logs";
|
|
5
|
+
import { Construct } from "constructs";
|
|
6
|
+
import { ProfileConfig } from "./types/config";
|
|
7
|
+
export interface RestApiGatewayProps {
|
|
8
|
+
readonly vpc: ec2.IVpc;
|
|
9
|
+
readonly networkLoadBalancer: elbv2.INetworkLoadBalancer;
|
|
10
|
+
readonly nlbListener: elbv2.INetworkListener;
|
|
11
|
+
readonly serviceSecurityGroup: ec2.ISecurityGroup;
|
|
12
|
+
readonly config: ProfileConfig;
|
|
13
|
+
readonly stage: string;
|
|
14
|
+
}
|
|
15
|
+
export declare class RestApiGateway {
|
|
16
|
+
readonly api: apigateway.RestApi;
|
|
17
|
+
readonly vpcLink: apigateway.VpcLink;
|
|
18
|
+
readonly logGroup: logs.ILogGroup;
|
|
19
|
+
readonly stage: string;
|
|
20
|
+
constructor(scope: Construct, id: string, props: RestApiGatewayProps);
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=rest-api-gateway.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rest-api-gateway.d.ts","sourceRoot":"","sources":["../../lib/rest-api-gateway.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,UAAU,MAAM,4BAA4B,CAAC;AACzD,OAAO,KAAK,GAAG,MAAM,qBAAqB,CAAC;AAC3C,OAAO,KAAK,KAAK,MAAM,wCAAwC,CAAC;AAChE,OAAO,KAAK,IAAI,MAAM,sBAAsB,CAAC;AAE7C,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAE/C,MAAM,WAAW,mBAAmB;IAChC,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;IACvB,QAAQ,CAAC,mBAAmB,EAAE,KAAK,CAAC,oBAAoB,CAAC;IACzD,QAAQ,CAAC,WAAW,EAAE,KAAK,CAAC,gBAAgB,CAAC;IAC7C,QAAQ,CAAC,oBAAoB,EAAE,GAAG,CAAC,cAAc,CAAC;IAClD,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC;IAC/B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CAC1B;AAED,qBAAa,cAAc;IACvB,SAAgB,GAAG,EAAE,UAAU,CAAC,OAAO,CAAC;IACxC,SAAgB,OAAO,EAAE,UAAU,CAAC,OAAO,CAAC;IAC5C,SAAgB,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC;IACzC,SAAgB,KAAK,EAAE,MAAM,CAAC;gBAElB,KAAK,EAAE,SAAS,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,mBAAmB;CAwMvE"}
|
|
@@ -0,0 +1,221 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.RestApiGateway = void 0;
|
|
37
|
+
const cdk = __importStar(require("aws-cdk-lib"));
|
|
38
|
+
const apigateway = __importStar(require("aws-cdk-lib/aws-apigateway"));
|
|
39
|
+
const logs = __importStar(require("aws-cdk-lib/aws-logs"));
|
|
40
|
+
const iam = __importStar(require("aws-cdk-lib/aws-iam"));
|
|
41
|
+
class RestApiGateway {
|
|
42
|
+
constructor(scope, id, props) {
|
|
43
|
+
this.stage = props.stage;
|
|
44
|
+
// Access logs for REST API
|
|
45
|
+
this.logGroup = new logs.LogGroup(scope, "ApiGatewayAccessLogs", {
|
|
46
|
+
logGroupName: "/aws/apigateway/benchling-webhook-rest",
|
|
47
|
+
retention: logs.RetentionDays.ONE_WEEK,
|
|
48
|
+
removalPolicy: cdk.RemovalPolicy.DESTROY,
|
|
49
|
+
});
|
|
50
|
+
// Parse IP allowlist from config
|
|
51
|
+
const webhookAllowList = props.config.security?.webhookAllowList || "";
|
|
52
|
+
const allowedIps = webhookAllowList
|
|
53
|
+
.split(",")
|
|
54
|
+
.map(ip => ip.trim())
|
|
55
|
+
.filter(ip => ip.length > 0);
|
|
56
|
+
// Build resource policy document
|
|
57
|
+
const policyStatements = [
|
|
58
|
+
// Allow health checks from anywhere (exempt from IP filtering)
|
|
59
|
+
new iam.PolicyStatement({
|
|
60
|
+
effect: iam.Effect.ALLOW,
|
|
61
|
+
principals: [new iam.AnyPrincipal()],
|
|
62
|
+
actions: ["execute-api:Invoke"],
|
|
63
|
+
resources: [
|
|
64
|
+
`execute-api:/*/${props.stage}/GET/health`,
|
|
65
|
+
`execute-api:/*/${props.stage}/GET/health/ready`,
|
|
66
|
+
`execute-api:/*/${props.stage}/GET/health/live`,
|
|
67
|
+
],
|
|
68
|
+
}),
|
|
69
|
+
// Allow root path from anywhere (informational endpoint)
|
|
70
|
+
new iam.PolicyStatement({
|
|
71
|
+
effect: iam.Effect.ALLOW,
|
|
72
|
+
principals: [new iam.AnyPrincipal()],
|
|
73
|
+
actions: ["execute-api:Invoke"],
|
|
74
|
+
resources: [`execute-api:/*/${props.stage}/GET/`],
|
|
75
|
+
}),
|
|
76
|
+
];
|
|
77
|
+
// Add IP filtering for webhook endpoints if allowlist configured
|
|
78
|
+
if (allowedIps.length > 0) {
|
|
79
|
+
console.log("Resource Policy IP filtering: ENABLED");
|
|
80
|
+
console.log(`Allowed IPs: ${allowedIps.join(", ")}`);
|
|
81
|
+
// Allow webhook requests only from allowlist
|
|
82
|
+
policyStatements.push(new iam.PolicyStatement({
|
|
83
|
+
effect: iam.Effect.ALLOW,
|
|
84
|
+
principals: [new iam.AnyPrincipal()],
|
|
85
|
+
actions: ["execute-api:Invoke"],
|
|
86
|
+
resources: [
|
|
87
|
+
`execute-api:/*/${props.stage}/POST/event`,
|
|
88
|
+
`execute-api:/*/${props.stage}/POST/lifecycle`,
|
|
89
|
+
`execute-api:/*/${props.stage}/POST/canvas`,
|
|
90
|
+
],
|
|
91
|
+
conditions: {
|
|
92
|
+
IpAddress: {
|
|
93
|
+
"aws:SourceIp": allowedIps,
|
|
94
|
+
},
|
|
95
|
+
},
|
|
96
|
+
}));
|
|
97
|
+
}
|
|
98
|
+
else {
|
|
99
|
+
console.log("Resource Policy IP filtering: DISABLED (no webhookAllowList configured)");
|
|
100
|
+
// No IP filtering - allow all webhook requests
|
|
101
|
+
policyStatements.push(new iam.PolicyStatement({
|
|
102
|
+
effect: iam.Effect.ALLOW,
|
|
103
|
+
principals: [new iam.AnyPrincipal()],
|
|
104
|
+
actions: ["execute-api:Invoke"],
|
|
105
|
+
resources: [
|
|
106
|
+
`execute-api:/*/${props.stage}/POST/event`,
|
|
107
|
+
`execute-api:/*/${props.stage}/POST/lifecycle`,
|
|
108
|
+
`execute-api:/*/${props.stage}/POST/canvas`,
|
|
109
|
+
],
|
|
110
|
+
}));
|
|
111
|
+
}
|
|
112
|
+
const policyDoc = new iam.PolicyDocument({
|
|
113
|
+
statements: policyStatements,
|
|
114
|
+
});
|
|
115
|
+
// Create REST API v1 with resource policy
|
|
116
|
+
this.api = new apigateway.RestApi(scope, "BenchlingWebhookRestAPI", {
|
|
117
|
+
restApiName: "BenchlingWebhookRestAPI",
|
|
118
|
+
description: "REST API v1 for Benchling webhook integration with resource policy IP filtering",
|
|
119
|
+
policy: policyDoc,
|
|
120
|
+
deployOptions: {
|
|
121
|
+
stageName: props.stage,
|
|
122
|
+
accessLogDestination: new apigateway.LogGroupLogDestination(this.logGroup),
|
|
123
|
+
accessLogFormat: apigateway.AccessLogFormat.jsonWithStandardFields({
|
|
124
|
+
ip: true,
|
|
125
|
+
caller: false,
|
|
126
|
+
user: false,
|
|
127
|
+
requestTime: true,
|
|
128
|
+
httpMethod: true,
|
|
129
|
+
resourcePath: true,
|
|
130
|
+
status: true,
|
|
131
|
+
protocol: true,
|
|
132
|
+
responseLength: true,
|
|
133
|
+
}),
|
|
134
|
+
},
|
|
135
|
+
endpointConfiguration: {
|
|
136
|
+
types: [apigateway.EndpointType.REGIONAL],
|
|
137
|
+
},
|
|
138
|
+
});
|
|
139
|
+
// VPC Link for private integration with Network Load Balancer
|
|
140
|
+
this.vpcLink = new apigateway.VpcLink(scope, "VpcLink", {
|
|
141
|
+
targets: [props.networkLoadBalancer],
|
|
142
|
+
description: "VPC Link to Network Load Balancer for private ECS integration",
|
|
143
|
+
});
|
|
144
|
+
// HTTP Integration to NLB via VPC Link
|
|
145
|
+
// Set timeout to 29 seconds (maximum for REST API) to handle slow JWKS fetches
|
|
146
|
+
// on cold starts. The Benchling SDK caches JWKS after first fetch.
|
|
147
|
+
const integration = new apigateway.Integration({
|
|
148
|
+
type: apigateway.IntegrationType.HTTP_PROXY,
|
|
149
|
+
integrationHttpMethod: "ANY",
|
|
150
|
+
uri: `http://${props.networkLoadBalancer.loadBalancerDnsName}:80/{proxy}`,
|
|
151
|
+
options: {
|
|
152
|
+
connectionType: apigateway.ConnectionType.VPC_LINK,
|
|
153
|
+
vpcLink: this.vpcLink,
|
|
154
|
+
timeout: cdk.Duration.seconds(29),
|
|
155
|
+
requestParameters: {
|
|
156
|
+
"integration.request.path.proxy": "method.request.path.proxy",
|
|
157
|
+
},
|
|
158
|
+
},
|
|
159
|
+
});
|
|
160
|
+
// Define routes with proxy+ pattern to capture all paths
|
|
161
|
+
// This allows the FastAPI application to handle routing
|
|
162
|
+
// Event webhook
|
|
163
|
+
const eventResource = this.api.root.addResource("event");
|
|
164
|
+
eventResource.addMethod("POST", integration, {
|
|
165
|
+
requestParameters: {
|
|
166
|
+
"method.request.path.proxy": true,
|
|
167
|
+
},
|
|
168
|
+
});
|
|
169
|
+
// Lifecycle webhook
|
|
170
|
+
const lifecycleResource = this.api.root.addResource("lifecycle");
|
|
171
|
+
lifecycleResource.addMethod("POST", integration, {
|
|
172
|
+
requestParameters: {
|
|
173
|
+
"method.request.path.proxy": true,
|
|
174
|
+
},
|
|
175
|
+
});
|
|
176
|
+
// Canvas webhook
|
|
177
|
+
const canvasResource = this.api.root.addResource("canvas");
|
|
178
|
+
canvasResource.addMethod("POST", integration, {
|
|
179
|
+
requestParameters: {
|
|
180
|
+
"method.request.path.proxy": true,
|
|
181
|
+
},
|
|
182
|
+
});
|
|
183
|
+
// Health check endpoints
|
|
184
|
+
const healthResource = this.api.root.addResource("health");
|
|
185
|
+
healthResource.addMethod("GET", integration, {
|
|
186
|
+
requestParameters: {
|
|
187
|
+
"method.request.path.proxy": true,
|
|
188
|
+
},
|
|
189
|
+
});
|
|
190
|
+
const readyResource = healthResource.addResource("ready");
|
|
191
|
+
readyResource.addMethod("GET", integration, {
|
|
192
|
+
requestParameters: {
|
|
193
|
+
"method.request.path.proxy": true,
|
|
194
|
+
},
|
|
195
|
+
});
|
|
196
|
+
const liveResource = healthResource.addResource("live");
|
|
197
|
+
liveResource.addMethod("GET", integration, {
|
|
198
|
+
requestParameters: {
|
|
199
|
+
"method.request.path.proxy": true,
|
|
200
|
+
},
|
|
201
|
+
});
|
|
202
|
+
// Root path - informational endpoint
|
|
203
|
+
this.api.root.addMethod("GET", integration, {
|
|
204
|
+
requestParameters: {
|
|
205
|
+
"method.request.path.proxy": true,
|
|
206
|
+
},
|
|
207
|
+
});
|
|
208
|
+
// Webhook verification status
|
|
209
|
+
const verificationEnabled = props.config.security?.enableVerification !== false;
|
|
210
|
+
if (verificationEnabled) {
|
|
211
|
+
console.log("Webhook signature verification: ENABLED (FastAPI application)");
|
|
212
|
+
}
|
|
213
|
+
else {
|
|
214
|
+
console.warn("WARNING: Webhook signature verification is DISABLED. " +
|
|
215
|
+
"This should only be used for testing. Enable it in production by setting " +
|
|
216
|
+
"config.security.enableVerification = true");
|
|
217
|
+
}
|
|
218
|
+
}
|
|
219
|
+
}
|
|
220
|
+
exports.RestApiGateway = RestApiGateway;
|
|
221
|
+
//# sourceMappingURL=rest-api-gateway.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rest-api-gateway.js","sourceRoot":"","sources":["../../lib/rest-api-gateway.ts"],"names":[],"mappings":"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"}
|
|
@@ -50,7 +50,7 @@ export type ProfileName = string;
|
|
|
50
50
|
* },
|
|
51
51
|
* "integratedStack": true,
|
|
52
52
|
* "_metadata": {
|
|
53
|
-
* "version": "0.
|
|
53
|
+
* "version": "0.9.0",
|
|
54
54
|
* "createdAt": "2025-11-04T10:00:00Z",
|
|
55
55
|
* "updatedAt": "2025-11-04T10:00:00Z",
|
|
56
56
|
* "source": "wizard"
|
|
@@ -112,7 +112,7 @@ export interface ProfileConfig {
|
|
|
112
112
|
* Configuration for Quilt data catalog integration, including service endpoints
|
|
113
113
|
* and SQS queue for package creation.
|
|
114
114
|
*
|
|
115
|
-
* **Breaking Change (
|
|
115
|
+
* **Breaking Change (v0.9.0)**: `stackArn` is used at deployment time only to resolve services.
|
|
116
116
|
* Services are passed as explicit environment variables to the container.
|
|
117
117
|
* No runtime CloudFormation API calls are made.
|
|
118
118
|
*
|
|
@@ -128,7 +128,7 @@ export interface QuiltConfig {
|
|
|
128
128
|
* The resolved services are then passed as explicit environment variables to the container.
|
|
129
129
|
*
|
|
130
130
|
* **Deployment usage only** - not passed to container runtime.
|
|
131
|
-
* **Breaking Change (
|
|
131
|
+
* **Breaking Change (v0.9.0)**: No longer passed as environment variable or CloudFormation parameter.
|
|
132
132
|
*
|
|
133
133
|
* @example "arn:aws:cloudformation:us-east-1:123456789012:stack/quilt-stack/..."
|
|
134
134
|
*/
|
|
@@ -346,11 +346,46 @@ export interface DeploymentConfig {
|
|
|
346
346
|
* @default "latest"
|
|
347
347
|
*/
|
|
348
348
|
imageTag?: string;
|
|
349
|
+
/**
|
|
350
|
+
* VPC configuration for ECS deployment
|
|
351
|
+
* If not specified, a new VPC will be created with private subnets and NAT Gateway
|
|
352
|
+
*
|
|
353
|
+
* @example { vpcId: "vpc-0123456789abcdef0" }
|
|
354
|
+
*/
|
|
355
|
+
vpc?: VpcConfig;
|
|
356
|
+
}
|
|
357
|
+
/**
|
|
358
|
+
* VPC Configuration
|
|
359
|
+
*
|
|
360
|
+
* Configures VPC for ECS deployment. Supports both existing VPC (by ID) and auto-creation.
|
|
361
|
+
*/
|
|
362
|
+
export interface VpcConfig {
|
|
363
|
+
/**
|
|
364
|
+
* Existing VPC ID to use (optional)
|
|
365
|
+
*
|
|
366
|
+
* If specified, the VPC must have:
|
|
367
|
+
* - Private subnets with NAT Gateway for outbound internet access
|
|
368
|
+
* - Proper routing for ECS tasks
|
|
369
|
+
*
|
|
370
|
+
* If not specified, a new VPC will be created matching the Quilt production architecture:
|
|
371
|
+
* - 2 Availability Zones
|
|
372
|
+
* - Public subnets (for NAT Gateways)
|
|
373
|
+
* - Private subnets with NAT Gateway (for ECS tasks)
|
|
374
|
+
*
|
|
375
|
+
* @example "vpc-0123456789abcdef0"
|
|
376
|
+
*/
|
|
377
|
+
vpcId?: string;
|
|
378
|
+
/**
|
|
379
|
+
* Whether to create a new VPC if vpcId is not specified
|
|
380
|
+
*
|
|
381
|
+
* @default true
|
|
382
|
+
*/
|
|
383
|
+
createIfMissing?: boolean;
|
|
349
384
|
}
|
|
350
385
|
/**
|
|
351
386
|
* Logging Configuration
|
|
352
387
|
*
|
|
353
|
-
* Python logging level for
|
|
388
|
+
* Python logging level for FastAPI application.
|
|
354
389
|
*/
|
|
355
390
|
export interface LoggingConfig {
|
|
356
391
|
/**
|
|
@@ -367,16 +402,18 @@ export interface LoggingConfig {
|
|
|
367
402
|
*/
|
|
368
403
|
export interface SecurityConfig {
|
|
369
404
|
/**
|
|
370
|
-
* Comma-separated list of allowed IP addresses/CIDR blocks
|
|
405
|
+
* Comma-separated list of allowed IP addresses/CIDR blocks for webhook endpoints
|
|
371
406
|
*
|
|
372
|
-
*
|
|
407
|
+
* v1.0.0+: Enforced via REST API Gateway resource policy (free).
|
|
408
|
+
* Empty string means no IP filtering (all IPs allowed).
|
|
409
|
+
* Health endpoints are always accessible from any IP.
|
|
373
410
|
*
|
|
374
411
|
* @example "192.168.1.0/24,10.0.0.0/8"
|
|
375
412
|
* @default ""
|
|
376
413
|
*/
|
|
377
414
|
webhookAllowList?: string;
|
|
378
415
|
/**
|
|
379
|
-
* Enable webhook signature verification
|
|
416
|
+
* Enable webhook signature verification in FastAPI application
|
|
380
417
|
*
|
|
381
418
|
* @default true
|
|
382
419
|
*/
|
|
@@ -502,6 +539,14 @@ export interface DeploymentRecord {
|
|
|
502
539
|
* @example "abc123f"
|
|
503
540
|
*/
|
|
504
541
|
commit?: string;
|
|
542
|
+
/**
|
|
543
|
+
* ARN of the Lambda authorizer function (v0.9.1+)
|
|
544
|
+
*/
|
|
545
|
+
authorizerArn?: string;
|
|
546
|
+
/**
|
|
547
|
+
* CloudWatch log group for Lambda authorizer (v0.9.1+)
|
|
548
|
+
*/
|
|
549
|
+
authorizerLogGroup?: string;
|
|
505
550
|
/**
|
|
506
551
|
* Additional metadata (extensible)
|
|
507
552
|
*/
|
|
@@ -582,7 +627,7 @@ export interface ProfileOptions {
|
|
|
582
627
|
export declare const ProfileConfigSchema: {
|
|
583
628
|
readonly $schema: "http://json-schema.org/draft-07/schema#";
|
|
584
629
|
readonly title: "ProfileConfig";
|
|
585
|
-
readonly description: "Benchling Webhook Profile Configuration
|
|
630
|
+
readonly description: "Benchling Webhook Profile Configuration";
|
|
586
631
|
readonly type: "object";
|
|
587
632
|
readonly required: readonly ["quilt", "benchling", "packages", "deployment", "_metadata"];
|
|
588
633
|
readonly properties: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../lib/types/config.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH;;;;;;;GAOG;AACH,MAAM,MAAM,WAAW,GAAG,MAAM,CAAC;AAGjC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AACH,MAAM,WAAW,aAAa;IAC1B;;OAEG;IACH,KAAK,EAAE,WAAW,CAAC;IAEnB;;OAEG;IACH,SAAS,EAAE,eAAe,CAAC;IAE3B;;OAEG;IACH,QAAQ,EAAE,aAAa,CAAC;IAExB;;OAEG;IACH,UAAU,EAAE,gBAAgB,CAAC;IAE7B;;;;;;;OAOG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAE1B;;OAEG;IACH,OAAO,CAAC,EAAE,aAAa,CAAC;IAExB;;OAEG;IACH,QAAQ,CAAC,EAAE,cAAc,CAAC;IAE1B;;OAEG;IACH,SAAS,EAAE,cAAc,CAAC;IAE1B;;;;;;;OAOG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,WAAW,WAAW;IACxB;;;;;;;;;;OAUG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;;;;;;;;;;OAWG;IACH,OAAO,EAAE,MAAM,CAAC;IAEhB;;;;;;;OAOG;IACH,QAAQ,EAAE,MAAM,CAAC;IAEjB;;;;;;;OAOG;IACH,QAAQ,EAAE,MAAM,CAAC;IAEjB;;;;OAIG;IACH,MAAM,EAAE,MAAM,CAAC;IAEf;;;;;;;;;OASG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzB;;;;;;;OAOG;IACH,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAE7B;;;;;;;OAOG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAE1B;;;;;;;OAOG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAE1B;;;;;;;OAOG;IACH,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAE7B;;;;;;;OAOG;IACH,yBAAyB,CAAC,EAAE,MAAM,CAAC;IAEnC;;;;;;;;;;;;;OAaG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;CACzB;AAED;;;;GAIG;AACH,MAAM,WAAW,eAAe;IAC5B;;;;OAIG;IACH,MAAM,EAAE,MAAM,CAAC;IAEf;;;;OAIG;IACH,QAAQ,EAAE,MAAM,CAAC;IAEjB;;;;;;OAMG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;;;OAIG;IACH,eAAe,EAAE,MAAM,CAAC;IAExB;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;CACxB;AAED;;;;GAIG;AACH,MAAM,WAAW,aAAa;IAC1B;;;;OAIG;IACH,MAAM,EAAE,MAAM,CAAC;IAEf;;;;;OAKG;IACH,MAAM,EAAE,MAAM,CAAC;IAEf;;;;;OAKG;IACH,WAAW,EAAE,MAAM,CAAC;CACvB;AAED;;;;GAIG;AACH,MAAM,WAAW,gBAAgB;IAC7B;;;;OAIG;IACH,MAAM,EAAE,MAAM,CAAC;IAEf;;;;OAIG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;;;OAIG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB;;;;;;OAMG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../lib/types/config.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/types/config.js
CHANGED
|
@@ -18,7 +18,7 @@ exports.DeploymentHistorySchema = exports.ProfileConfigSchema = void 0;
|
|
|
18
18
|
exports.ProfileConfigSchema = {
|
|
19
19
|
$schema: "http://json-schema.org/draft-07/schema#",
|
|
20
20
|
title: "ProfileConfig",
|
|
21
|
-
description: "Benchling Webhook Profile Configuration
|
|
21
|
+
description: "Benchling Webhook Profile Configuration",
|
|
22
22
|
type: "object",
|
|
23
23
|
required: ["quilt", "benchling", "packages", "deployment", "_metadata"],
|
|
24
24
|
properties: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../../lib/types/config.ts"],"names":[],"mappings":";AAAA;;;;;;;;GAQG;;;
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../../lib/types/config.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* These values are then passed as explicit environment variables to the container,
|
|
6
6
|
* eliminating the need for runtime CloudFormation API calls.
|
|
7
7
|
*
|
|
8
|
-
* **Breaking Change (
|
|
8
|
+
* **Breaking Change (v0.9.0)**: Replaces runtime config-resolver with deployment-time resolution.
|
|
9
9
|
*
|
|
10
10
|
* @module utils/service-resolver
|
|
11
11
|
* @version 1.0.0
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
* These values are then passed as explicit environment variables to the container,
|
|
7
7
|
* eliminating the need for runtime CloudFormation API calls.
|
|
8
8
|
*
|
|
9
|
-
* **Breaking Change (
|
|
9
|
+
* **Breaking Change (v0.9.0)**: Replaces runtime config-resolver with deployment-time resolution.
|
|
10
10
|
*
|
|
11
11
|
* @module utils/service-resolver
|
|
12
12
|
* @version 1.0.0
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"phase2-stack-query.d.ts","sourceRoot":"","sources":["../../../lib/wizard/phase2-stack-query.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,OAAO,EAAE,gBAAgB,
|
|
1
|
+
{"version":3,"file":"phase2-stack-query.d.ts","sourceRoot":"","sources":["../../../lib/wizard/phase2-stack-query.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,OAAO,EAAE,gBAAgB,EAAqB,MAAM,SAAS,CAAC;AAG9D;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAC9B,sCAAsC;IACtC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,8BAA8B;IAC9B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,2BAA2B;IAC3B,GAAG,CAAC,EAAE,OAAO,CAAC;CACjB;AAED;;;;;;;;;;;;GAYG;AACH,wBAAsB,aAAa,CAC/B,UAAU,EAAE,MAAM,EAClB,OAAO,GAAE,iBAAsB,GAChC,OAAO,CAAC,gBAAgB,CAAC,CAgL3B"}
|