@quiltdata/benchling-webhook 0.7.10 → 0.8.0-20251118T003132Z

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.
Files changed (92) hide show
  1. package/README.md +1 -0
  2. package/dist/bin/benchling-webhook.d.ts.map +1 -1
  3. package/dist/bin/benchling-webhook.js +14 -0
  4. package/dist/bin/benchling-webhook.js.map +1 -1
  5. package/dist/bin/cli.js +8 -5
  6. package/dist/bin/cli.js.map +1 -1
  7. package/dist/bin/commands/config-profiles.d.ts.map +1 -1
  8. package/dist/bin/commands/config-profiles.js +7 -0
  9. package/dist/bin/commands/config-profiles.js.map +1 -1
  10. package/dist/bin/commands/deploy.d.ts.map +1 -1
  11. package/dist/bin/commands/deploy.js +90 -8
  12. package/dist/bin/commands/deploy.js.map +1 -1
  13. package/dist/bin/commands/health-check.d.ts.map +1 -1
  14. package/dist/bin/commands/health-check.js +2 -35
  15. package/dist/bin/commands/health-check.js.map +1 -1
  16. package/dist/bin/commands/infer-quilt-config.d.ts +6 -0
  17. package/dist/bin/commands/infer-quilt-config.d.ts.map +1 -1
  18. package/dist/bin/commands/infer-quilt-config.js +50 -2
  19. package/dist/bin/commands/infer-quilt-config.js.map +1 -1
  20. package/dist/bin/commands/install.d.ts.map +1 -1
  21. package/dist/bin/commands/install.js +10 -2
  22. package/dist/bin/commands/install.js.map +1 -1
  23. package/dist/bin/commands/manifest.d.ts.map +1 -1
  24. package/dist/bin/commands/manifest.js +2 -3
  25. package/dist/bin/commands/manifest.js.map +1 -1
  26. package/dist/bin/commands/setup-profile.d.ts.map +1 -1
  27. package/dist/bin/commands/setup-profile.js +5 -0
  28. package/dist/bin/commands/setup-profile.js.map +1 -1
  29. package/dist/bin/commands/setup-wizard.d.ts +2 -0
  30. package/dist/bin/commands/setup-wizard.d.ts.map +1 -1
  31. package/dist/bin/commands/setup-wizard.js +3 -1
  32. package/dist/bin/commands/setup-wizard.js.map +1 -1
  33. package/dist/bin/commands/status.d.ts +2 -0
  34. package/dist/bin/commands/status.d.ts.map +1 -1
  35. package/dist/bin/commands/status.js +44 -13
  36. package/dist/bin/commands/status.js.map +1 -1
  37. package/dist/bin/commands/sync-secrets.d.ts.map +1 -1
  38. package/dist/bin/commands/sync-secrets.js +2 -35
  39. package/dist/bin/commands/sync-secrets.js.map +1 -1
  40. package/dist/bin/commands/validate.js +1 -1
  41. package/dist/bin/commands/validate.js.map +1 -1
  42. package/dist/bin/xdg-launch.d.ts +74 -0
  43. package/dist/bin/xdg-launch.d.ts.map +1 -0
  44. package/dist/bin/xdg-launch.js +588 -0
  45. package/dist/bin/xdg-launch.js.map +1 -0
  46. package/dist/lib/benchling-webhook-stack.d.ts.map +1 -1
  47. package/dist/lib/benchling-webhook-stack.js +57 -7
  48. package/dist/lib/benchling-webhook-stack.js.map +1 -1
  49. package/dist/lib/fargate-service.d.ts +24 -4
  50. package/dist/lib/fargate-service.d.ts.map +1 -1
  51. package/dist/lib/fargate-service.js +75 -27
  52. package/dist/lib/fargate-service.js.map +1 -1
  53. package/dist/lib/types/config.d.ts +261 -6
  54. package/dist/lib/types/config.d.ts.map +1 -1
  55. package/dist/lib/types/config.js +20 -2
  56. package/dist/lib/types/config.js.map +1 -1
  57. package/dist/lib/utils/service-resolver.d.ts +155 -0
  58. package/dist/lib/utils/service-resolver.d.ts.map +1 -0
  59. package/dist/lib/utils/service-resolver.js +195 -0
  60. package/dist/lib/utils/service-resolver.js.map +1 -0
  61. package/dist/lib/utils/stack-inference.d.ts +58 -0
  62. package/dist/lib/utils/stack-inference.d.ts.map +1 -1
  63. package/dist/lib/utils/stack-inference.js +76 -2
  64. package/dist/lib/utils/stack-inference.js.map +1 -1
  65. package/dist/lib/wizard/phase2-stack-query.d.ts +4 -2
  66. package/dist/lib/wizard/phase2-stack-query.d.ts.map +1 -1
  67. package/dist/lib/wizard/phase2-stack-query.js +93 -10
  68. package/dist/lib/wizard/phase2-stack-query.js.map +1 -1
  69. package/dist/lib/wizard/phase4-validation.d.ts.map +1 -1
  70. package/dist/lib/wizard/phase4-validation.js +3 -4
  71. package/dist/lib/wizard/phase4-validation.js.map +1 -1
  72. package/dist/lib/wizard/phase6-integrated-mode.d.ts.map +1 -1
  73. package/dist/lib/wizard/phase6-integrated-mode.js +26 -0
  74. package/dist/lib/wizard/phase6-integrated-mode.js.map +1 -1
  75. package/dist/lib/wizard/phase7-standalone-mode.d.ts.map +1 -1
  76. package/dist/lib/wizard/phase7-standalone-mode.js +31 -10
  77. package/dist/lib/wizard/phase7-standalone-mode.js.map +1 -1
  78. package/dist/lib/wizard/types.d.ts +23 -1
  79. package/dist/lib/wizard/types.d.ts.map +1 -1
  80. package/dist/lib/xdg-base.d.ts.map +1 -1
  81. package/dist/lib/xdg-base.js +4 -2
  82. package/dist/lib/xdg-base.js.map +1 -1
  83. package/dist/package.json +16 -7
  84. package/package.json +16 -7
  85. package/dist/lib/utils/config-loader.d.ts +0 -48
  86. package/dist/lib/utils/config-loader.d.ts.map +0 -1
  87. package/dist/lib/utils/config-loader.js +0 -110
  88. package/dist/lib/utils/config-loader.js.map +0 -1
  89. package/dist/lib/utils/config-resolver.d.ts +0 -138
  90. package/dist/lib/utils/config-resolver.d.ts.map +0 -1
  91. package/dist/lib/utils/config-resolver.js +0 -279
  92. package/dist/lib/utils/config-resolver.js.map +0 -1
@@ -51,18 +51,53 @@ class BenchlingWebhookStack extends cdk.Stack {
51
51
  // Validate required configuration fields
52
52
  // Skip validation if SKIP_CONFIG_VALIDATION is set (for destroy operations)
53
53
  const skipValidation = process.env.SKIP_CONFIG_VALIDATION === "true";
54
- if (!skipValidation && (!config.quilt.stackArn || !config.benchling.secretArn)) {
54
+ if (!skipValidation && !config.benchling.secretArn) {
55
55
  throw new Error("Configuration validation failed. Required fields:\n" +
56
- " - config.quilt.stackArn: CloudFormation stack ARN\n" +
57
56
  " - config.benchling.secretArn: Secrets Manager secret ARN\n\n" +
58
57
  "Run 'npm run setup' to configure your deployment.");
59
58
  }
59
+ console.log(`Deploying with profile configuration (v${config._metadata.version})`);
60
+ console.log(` Benchling Tenant: ${config.benchling.tenant}`);
61
+ console.log(` Region: ${config.deployment.region}`);
60
62
  // Create CloudFormation parameters for runtime-configurable values
61
63
  // These parameters can be updated via CloudFormation stack updates
62
- const quiltStackArnParam = new cdk.CfnParameter(this, "QuiltStackARN", {
64
+ // Explicit service parameters (v1.0.0+)
65
+ // These replace runtime resolution from QuiltStackARN
66
+ const packagerQueueUrlParam = new cdk.CfnParameter(this, "PackagerQueueUrl", {
63
67
  type: "String",
64
- description: "ARN of Quilt CloudFormation stack for configuration resolution",
65
- default: config.quilt.stackArn,
68
+ description: "SQS queue URL for Quilt package creation jobs",
69
+ default: "", // Will be resolved at deployment time
70
+ });
71
+ const athenaUserDatabaseParam = new cdk.CfnParameter(this, "AthenaUserDatabase", {
72
+ type: "String",
73
+ description: "Athena/Glue database name for Quilt catalog metadata",
74
+ default: "", // Will be resolved at deployment time
75
+ });
76
+ const quiltWebHostParam = new cdk.CfnParameter(this, "QuiltWebHost", {
77
+ type: "String",
78
+ description: "Quilt catalog domain (without protocol or trailing slash)",
79
+ default: "", // Will be resolved at deployment time
80
+ });
81
+ const icebergDatabaseParam = new cdk.CfnParameter(this, "IcebergDatabase", {
82
+ type: "String",
83
+ description: "Iceberg database name (optional, leave empty if not used)",
84
+ default: "",
85
+ });
86
+ // NEW: Optional Athena resources (from Quilt stack discovery)
87
+ const icebergWorkgroupParam = new cdk.CfnParameter(this, "IcebergWorkgroup", {
88
+ type: "String",
89
+ description: "Iceberg workgroup name (optional, from Quilt stack discovery)",
90
+ default: "",
91
+ });
92
+ const athenaUserWorkgroupParam = new cdk.CfnParameter(this, "AthenaUserWorkgroup", {
93
+ type: "String",
94
+ description: "Athena workgroup for user queries (optional, from Quilt stack discovery)",
95
+ default: "",
96
+ });
97
+ const athenaResultsBucketParam = new cdk.CfnParameter(this, "AthenaResultsBucket", {
98
+ type: "String",
99
+ description: "S3 bucket for Athena query results (optional, from Quilt stack discovery)",
100
+ default: "",
66
101
  });
67
102
  const benchlingSecretParam = new cdk.CfnParameter(this, "BenchlingSecretARN", {
68
103
  type: "String",
@@ -92,7 +127,13 @@ class BenchlingWebhookStack extends cdk.Stack {
92
127
  });
93
128
  // Use parameter values (which have config as defaults)
94
129
  // This allows runtime updates via CloudFormation
95
- const quiltStackArnValue = quiltStackArnParam.valueAsString;
130
+ const packagerQueueUrlValue = packagerQueueUrlParam.valueAsString;
131
+ const athenaUserDatabaseValue = athenaUserDatabaseParam.valueAsString;
132
+ const quiltWebHostValue = quiltWebHostParam.valueAsString;
133
+ const icebergDatabaseValue = icebergDatabaseParam.valueAsString;
134
+ const icebergWorkgroupValue = icebergWorkgroupParam.valueAsString;
135
+ const athenaUserWorkgroupValue = athenaUserWorkgroupParam.valueAsString;
136
+ const athenaResultsBucketValue = athenaResultsBucketParam.valueAsString;
96
137
  const benchlingSecretValue = benchlingSecretParam.valueAsString;
97
138
  const logLevelValue = logLevelParam.valueAsString;
98
139
  const imageTagValue = imageTagParam.valueAsString;
@@ -126,7 +167,16 @@ class BenchlingWebhookStack extends cdk.Stack {
126
167
  imageTag: imageTagValue,
127
168
  stackVersion: stackVersion,
128
169
  // Runtime-configurable parameters
129
- stackArn: quiltStackArnValue,
170
+ // New explicit service parameters (v1.0.0+)
171
+ packagerQueueUrl: packagerQueueUrlValue,
172
+ athenaUserDatabase: athenaUserDatabaseValue,
173
+ quiltWebHost: quiltWebHostValue,
174
+ icebergDatabase: icebergDatabaseValue,
175
+ // NEW: Optional Athena resources (from Quilt stack discovery)
176
+ icebergWorkgroup: icebergWorkgroupValue,
177
+ athenaUserWorkgroup: athenaUserWorkgroupValue,
178
+ athenaResultsBucket: athenaResultsBucketValue,
179
+ // Legacy parameters
130
180
  benchlingSecret: benchlingSecretValue,
131
181
  packageBucket: packageBucketValue,
132
182
  quiltDatabase: quiltDatabaseValue,
@@ -1 +1 @@
1
- {"version":3,"file":"benchling-webhook-stack.js","sourceRoot":"","sources":["../../lib/benchling-webhook-stack.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"benchling-webhook-stack.js","sourceRoot":"","sources":["../../lib/benchling-webhook-stack.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,iDAAmC;AACnC,uDAAyC;AACzC,yDAA2C;AAC3C,yDAA2C;AAE3C,uDAAmD;AACnD,uDAAkD;AAElD,mEAA0C;AAgB1C,MAAa,qBAAsB,SAAQ,GAAG,CAAC,KAAK;IAMhD,YACI,KAAgB,EAChB,EAAU,EACV,KAAiC;QAEjC,KAAK,CAAC,KAAK,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC;QAExB,MAAM,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC;QAEzB,yCAAyC;QACzC,4EAA4E;QAC5E,MAAM,cAAc,GAAG,OAAO,CAAC,GAAG,CAAC,sBAAsB,KAAK,MAAM,CAAC;QACrE,IAAI,CAAC,cAAc,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,EAAE,CAAC;YACjD,MAAM,IAAI,KAAK,CACX,qDAAqD;gBACrD,gEAAgE;gBAChE,mDAAmD,CACtD,CAAC;QACN,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,0CAA0C,MAAM,CAAC,SAAS,CAAC,OAAO,GAAG,CAAC,CAAC;QACnF,OAAO,CAAC,GAAG,CAAC,uBAAuB,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC;QAC9D,OAAO,CAAC,GAAG,CAAC,aAAa,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC;QAErD,mEAAmE;QACnE,mEAAmE;QAEnE,wCAAwC;QACxC,sDAAsD;QACtD,MAAM,qBAAqB,GAAG,IAAI,GAAG,CAAC,YAAY,CAAC,IAAI,EAAE,kBAAkB,EAAE;YACzE,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,+CAA+C;YAC5D,OAAO,EAAE,EAAE,EAAG,sCAAsC;SACvD,CAAC,CAAC;QAEH,MAAM,uBAAuB,GAAG,IAAI,GAAG,CAAC,YAAY,CAAC,IAAI,EAAE,oBAAoB,EAAE;YAC7E,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,sDAAsD;YACnE,OAAO,EAAE,EAAE,EAAG,sCAAsC;SACvD,CAAC,CAAC;QAEH,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAAC,YAAY,CAAC,IAAI,EAAE,cAAc,EAAE;YACjE,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,2DAA2D;YACxE,OAAO,EAAE,EAAE,EAAG,sCAAsC;SACvD,CAAC,CAAC;QAEH,MAAM,oBAAoB,GAAG,IAAI,GAAG,CAAC,YAAY,CAAC,IAAI,EAAE,iBAAiB,EAAE;YACvE,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,2DAA2D;YACxE,OAAO,EAAE,EAAE;SACd,CAAC,CAAC;QAEH,8DAA8D;QAC9D,MAAM,qBAAqB,GAAG,IAAI,GAAG,CAAC,YAAY,CAAC,IAAI,EAAE,kBAAkB,EAAE;YACzE,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,+DAA+D;YAC5E,OAAO,EAAE,EAAE;SACd,CAAC,CAAC;QAEH,MAAM,wBAAwB,GAAG,IAAI,GAAG,CAAC,YAAY,CAAC,IAAI,EAAE,qBAAqB,EAAE;YAC/E,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,0EAA0E;YACvF,OAAO,EAAE,EAAE;SACd,CAAC,CAAC;QAEH,MAAM,wBAAwB,GAAG,IAAI,GAAG,CAAC,YAAY,CAAC,IAAI,EAAE,qBAAqB,EAAE;YAC/E,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,2EAA2E;YACxF,OAAO,EAAE,EAAE;SACd,CAAC,CAAC;QAEH,MAAM,oBAAoB,GAAG,IAAI,GAAG,CAAC,YAAY,CAAC,IAAI,EAAE,oBAAoB,EAAE;YAC1E,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,0DAA0D;YACvE,OAAO,EAAE,MAAM,CAAC,SAAS,CAAC,SAAS;SACtC,CAAC,CAAC;QAEH,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC,YAAY,CAAC,IAAI,EAAE,UAAU,EAAE;YACzD,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,qDAAqD;YAClE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,KAAK,IAAI,MAAM;YACxC,aAAa,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,CAAC;SACvD,CAAC,CAAC;QAEH,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC,YAAY,CAAC,IAAI,EAAE,UAAU,EAAE;YACzD,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,0EAA0E;YACvF,OAAO,EAAE,MAAM,CAAC,UAAU,CAAC,QAAQ,IAAI,QAAQ;SAClD,CAAC,CAAC;QAEH,MAAM,kBAAkB,GAAG,IAAI,GAAG,CAAC,YAAY,CAAC,IAAI,EAAE,eAAe,EAAE;YACnE,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,kFAAkF;YAC/F,OAAO,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM;SAClC,CAAC,CAAC;QAEH,MAAM,kBAAkB,GAAG,IAAI,GAAG,CAAC,YAAY,CAAC,IAAI,EAAE,eAAe,EAAE;YACnE,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,sFAAsF;YACnG,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,QAAQ,IAAI,EAAE;SACvC,CAAC,CAAC;QAEH,uDAAuD;QACvD,iDAAiD;QACjD,MAAM,qBAAqB,GAAG,qBAAqB,CAAC,aAAa,CAAC;QAClE,MAAM,uBAAuB,GAAG,uBAAuB,CAAC,aAAa,CAAC;QACtE,MAAM,iBAAiB,GAAG,iBAAiB,CAAC,aAAa,CAAC;QAC1D,MAAM,oBAAoB,GAAG,oBAAoB,CAAC,aAAa,CAAC;QAChE,MAAM,qBAAqB,GAAG,qBAAqB,CAAC,aAAa,CAAC;QAClE,MAAM,wBAAwB,GAAG,wBAAwB,CAAC,aAAa,CAAC;QACxE,MAAM,wBAAwB,GAAG,wBAAwB,CAAC,aAAa,CAAC;QACxE,MAAM,oBAAoB,GAAG,oBAAoB,CAAC,aAAa,CAAC;QAChE,MAAM,aAAa,GAAG,aAAa,CAAC,aAAa,CAAC;QAClD,MAAM,aAAa,GAAG,aAAa,CAAC,aAAa,CAAC;QAClD,MAAM,kBAAkB,GAAG,kBAAkB,CAAC,aAAa,CAAC;QAC5D,MAAM,kBAAkB,GAAG,kBAAkB,CAAC,aAAa,CAAC;QAE5D,sEAAsE;QACtE,6DAA6D;QAC7D,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,UAAU,EAAE,wCAAwC,CAAC,CAAC;QAEnG,0CAA0C;QAC1C,MAAM,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,EAAE,YAAY,EAAE;YAC/C,SAAS,EAAE,IAAI;SAClB,CAAC,CAAC;QAEH,iEAAiE;QACjE,MAAM,OAAO,GAAG,cAAc,CAAC;QAC/B,MAAM,MAAM,GAAG,WAAW,CAAC;QAC3B,MAAM,QAAQ,GAAG,MAAM,CAAC,UAAU,CAAC,aAAa,IAAI,qBAAqB,CAAC;QAC1E,MAAM,MAAM,GAAG,eAAe,MAAM,IAAI,OAAO,eAAe,QAAQ,EAAE,CAAC;QACzE,MAAM,OAAO,GAAG,GAAG,CAAC,UAAU,CAAC,iBAAiB,CAAC,IAAI,EAAE,uBAAuB,EAAE,MAAM,CAAC,CAAC;QACxF,MAAM,WAAW,GAAG,GAAG,OAAO,YAAY,MAAM,kBAAkB,QAAQ,IAAI,aAAa,EAAE,CAAC;QAE9F,6BAA6B;QAC7B,2EAA2E;QAC3E,uEAAuE;QACvE,MAAM,YAAY,GAAG,aAAa,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAC;QACzE,MAAM,YAAY,GAAG,YAAY,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,sBAAW,CAAC,OAAO,CAAC;QAExE,yDAAyD;QACzD,IAAI,CAAC,cAAc,GAAG,IAAI,gCAAc,CAAC,IAAI,EAAE,gBAAgB,EAAE;YAC7D,GAAG;YACH,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,MAAM,EAAE,MAAM;YACd,aAAa,EAAE,OAAO;YACtB,QAAQ,EAAE,aAAa;YACvB,YAAY,EAAE,YAAY;YAC1B,kCAAkC;YAClC,4CAA4C;YAC5C,gBAAgB,EAAE,qBAAqB;YACvC,kBAAkB,EAAE,uBAAuB;YAC3C,YAAY,EAAE,iBAAiB;YAC/B,eAAe,EAAE,oBAAoB;YACrC,8DAA8D;YAC9D,gBAAgB,EAAE,qBAAqB;YACvC,mBAAmB,EAAE,wBAAwB;YAC7C,mBAAmB,EAAE,wBAAwB;YAC7C,oBAAoB;YACpB,eAAe,EAAE,oBAAoB;YACrC,aAAa,EAAE,kBAAkB;YACjC,aAAa,EAAE,kBAAkB;YACjC,QAAQ,EAAE,aAAa;SAC1B,CAAC,CAAC;QAEH,4CAA4C;QAC5C,IAAI,CAAC,GAAG,GAAG,IAAI,+BAAa,CAAC,IAAI,EAAE,YAAY,EAAE;YAC7C,YAAY,EAAE,IAAI,CAAC,cAAc,CAAC,YAAY;YAC9C,MAAM,EAAE,MAAM;SACjB,CAAC,CAAC;QAEH,yCAAyC;QACzC,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC;QAExC,4CAA4C;QAC5C,IAAI,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,iBAAiB,EAAE;YACvC,KAAK,EAAE,IAAI,CAAC,eAAe;YAC3B,WAAW,EAAE,gEAAgE;SAChF,CAAC,CAAC;QAEH,kCAAkC;QAClC,IAAI,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,gBAAgB,EAAE;YACtC,KAAK,EAAE,WAAW;YAClB,WAAW,EAAE,sCAAsC;SACtD,CAAC,CAAC;QAEH,6BAA6B;QAC7B,IAAI,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,cAAc,EAAE;YACpC,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,IAAI,sBAAW,CAAC,OAAO;YAChE,WAAW,EAAE,eAAe;SAC/B,CAAC,CAAC;QAEH,+BAA+B;QAC/B,IAAI,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,aAAa,EAAE;YACnC,KAAK,EAAE,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,YAAY;YAChD,WAAW,EAAE,6CAA6C;SAC7D,CAAC,CAAC;QAEH,IAAI,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,oBAAoB,EAAE;YAC1C,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,YAAY;YACrC,WAAW,EAAE,kDAAkD;SAClE,CAAC,CAAC;QAEH,gCAAgC;QAChC,IAAI,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,eAAe,EAAE;YACrC,KAAK,EAAE,MAAM,CAAC,SAAS,CAAC,OAAO;YAC/B,WAAW,EAAE,8BAA8B;SAC9C,CAAC,CAAC;QAEH,IAAI,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,cAAc,EAAE;YACpC,KAAK,EAAE,MAAM,CAAC,SAAS,CAAC,MAAM;YAC9B,WAAW,EAAE,4CAA4C;SAC5D,CAAC,CAAC;IACP,CAAC;CAGJ;AA/ND,sDA+NC"}
@@ -7,11 +7,14 @@ import * as s3 from "aws-cdk-lib/aws-s3";
7
7
  import { Construct } from "constructs";
8
8
  import { ProfileConfig } from "./types/config";
9
9
  /**
10
- * Properties for FargateService construct (v0.7.0+)
10
+ * Properties for FargateService construct (v1.0.0+)
11
11
  *
12
12
  * Uses ProfileConfig for structured configuration access.
13
- * Runtime-configurable parameters (quiltStackArn, benchlingSecret, logLevel, packageBucket)
14
- * can be overridden via CloudFormation parameters.
13
+ * Runtime-configurable parameters can be overridden via CloudFormation parameters.
14
+ *
15
+ * **Breaking Change (v1.0.0)**: Removed stackArn in favor of explicit service environment variables.
16
+ * The explicit service parameters (packagerQueueUrl, athenaUserDatabase, quiltWebHost, icebergDatabase)
17
+ * are resolved at deployment time and passed directly to the container, eliminating runtime CloudFormation calls.
15
18
  */
16
19
  export interface FargateServiceProps {
17
20
  readonly vpc: ec2.IVpc;
@@ -20,7 +23,13 @@ export interface FargateServiceProps {
20
23
  readonly ecrRepository: ecr.IRepository;
21
24
  readonly imageTag?: string;
22
25
  readonly stackVersion?: string;
23
- readonly stackArn: string;
26
+ readonly packagerQueueUrl: string;
27
+ readonly athenaUserDatabase: string;
28
+ readonly quiltWebHost: string;
29
+ readonly icebergDatabase: string;
30
+ readonly icebergWorkgroup?: string;
31
+ readonly athenaUserWorkgroup?: string;
32
+ readonly athenaResultsBucket?: string;
24
33
  readonly benchlingSecret: string;
25
34
  readonly packageBucket: string;
26
35
  readonly quiltDatabase: string;
@@ -31,6 +40,17 @@ export declare class FargateService extends Construct {
31
40
  readonly loadBalancer: elbv2.ApplicationLoadBalancer;
32
41
  readonly cluster: ecs.Cluster;
33
42
  readonly logGroup: logs.ILogGroup;
43
+ /**
44
+ * Extract secret name from Secrets Manager ARN
45
+ *
46
+ * AWS Secrets Manager automatically appends a 6-character random suffix to secret names
47
+ * in ARNs (e.g., "my-secret-Ab12Cd"). This function extracts the base secret name by
48
+ * removing the suffix.
49
+ *
50
+ * @param arn - Secrets Manager ARN
51
+ * @returns Secret name without the random suffix
52
+ */
53
+ private extractSecretName;
34
54
  constructor(scope: Construct, id: string, props: FargateServiceProps);
35
55
  }
36
56
  //# sourceMappingURL=fargate-service.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"fargate-service.d.ts","sourceRoot":"","sources":["../../lib/fargate-service.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,GAAG,MAAM,qBAAqB,CAAC;AAC3C,OAAO,KAAK,GAAG,MAAM,qBAAqB,CAAC;AAC3C,OAAO,KAAK,GAAG,MAAM,qBAAqB,CAAC;AAC3C,OAAO,KAAK,KAAK,MAAM,wCAAwC,CAAC;AAEhE,OAAO,KAAK,IAAI,MAAM,sBAAsB,CAAC;AAC7C,OAAO,KAAK,EAAE,MAAM,oBAAoB,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAE/C;;;;;;GAMG;AACH,MAAM,WAAW,mBAAmB;IAChC,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC,OAAO,CAAC;IAC5B,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC;IAC/B,QAAQ,CAAC,aAAa,EAAE,GAAG,CAAC,WAAW,CAAC;IACxC,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAG/B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED,qBAAa,cAAe,SAAQ,SAAS;IACzC,SAAgB,OAAO,EAAE,GAAG,CAAC,cAAc,CAAC;IAC5C,SAAgB,YAAY,EAAE,KAAK,CAAC,uBAAuB,CAAC;IAC5D,SAAgB,OAAO,EAAE,GAAG,CAAC,OAAO,CAAC;IACrC,SAAgB,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC;gBAE7B,KAAK,EAAE,SAAS,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,mBAAmB;CAiVvE"}
1
+ {"version":3,"file":"fargate-service.d.ts","sourceRoot":"","sources":["../../lib/fargate-service.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,GAAG,MAAM,qBAAqB,CAAC;AAC3C,OAAO,KAAK,GAAG,MAAM,qBAAqB,CAAC;AAC3C,OAAO,KAAK,GAAG,MAAM,qBAAqB,CAAC;AAC3C,OAAO,KAAK,KAAK,MAAM,wCAAwC,CAAC;AAEhE,OAAO,KAAK,IAAI,MAAM,sBAAsB,CAAC;AAC7C,OAAO,KAAK,EAAE,MAAM,oBAAoB,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAE/C;;;;;;;;;GASG;AACH,MAAM,WAAW,mBAAmB;IAChC,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC,OAAO,CAAC;IAC5B,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC;IAC/B,QAAQ,CAAC,aAAa,EAAE,GAAG,CAAC,WAAW,CAAC;IACxC,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAI/B,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAC;IACpC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IAGjC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IACnC,QAAQ,CAAC,mBAAmB,CAAC,EAAE,MAAM,CAAC;IACtC,QAAQ,CAAC,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAGtC,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED,qBAAa,cAAe,SAAQ,SAAS;IACzC,SAAgB,OAAO,EAAE,GAAG,CAAC,cAAc,CAAC;IAC5C,SAAgB,YAAY,EAAE,KAAK,CAAC,uBAAuB,CAAC;IAC5D,SAAgB,OAAO,EAAE,GAAG,CAAC,OAAO,CAAC;IACrC,SAAgB,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC;IAEzC;;;;;;;;;OASG;IACH,OAAO,CAAC,iBAAiB;gBAoBb,KAAK,EAAE,SAAS,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,mBAAmB;CA0WvE"}
@@ -43,6 +43,32 @@ const logs = __importStar(require("aws-cdk-lib/aws-logs"));
43
43
  const s3 = __importStar(require("aws-cdk-lib/aws-s3"));
44
44
  const constructs_1 = require("constructs");
45
45
  class FargateService extends constructs_1.Construct {
46
+ /**
47
+ * Extract secret name from Secrets Manager ARN
48
+ *
49
+ * AWS Secrets Manager automatically appends a 6-character random suffix to secret names
50
+ * in ARNs (e.g., "my-secret-Ab12Cd"). This function extracts the base secret name by
51
+ * removing the suffix.
52
+ *
53
+ * @param arn - Secrets Manager ARN
54
+ * @returns Secret name without the random suffix
55
+ */
56
+ extractSecretName(arn) {
57
+ if (!arn) {
58
+ return "";
59
+ }
60
+ // ARN format: arn:aws:secretsmanager:region:account:secret:name-XXXXXX
61
+ // where XXXXXX is a 6-character random suffix added by AWS
62
+ const match = arn.match(/secret:([^:]+)/);
63
+ if (!match) {
64
+ return arn;
65
+ }
66
+ const fullName = match[1];
67
+ // Remove the AWS-generated 6-character suffix (format: -XXXXXX)
68
+ // The suffix is always a hyphen followed by 6 alphanumeric characters
69
+ const withoutSuffix = fullName.replace(/-[A-Za-z0-9]{6}$/, "");
70
+ return withoutSuffix;
71
+ }
46
72
  constructor(scope, id, props) {
47
73
  super(scope, id);
48
74
  const { config } = props;
@@ -79,14 +105,6 @@ class FargateService extends constructs_1.Construct {
79
105
  const taskRole = new iam.Role(this, "TaskRole", {
80
106
  assumedBy: new iam.ServicePrincipal("ecs-tasks.amazonaws.com"),
81
107
  });
82
- // Grant CloudFormation read access (to query stack outputs)
83
- taskRole.addToPolicy(new iam.PolicyStatement({
84
- actions: [
85
- "cloudformation:DescribeStacks",
86
- "cloudformation:DescribeStackResources",
87
- ],
88
- resources: [props.stackArn],
89
- }));
90
108
  // Grant Secrets Manager read access (to fetch Benchling credentials)
91
109
  // Use both config.benchling.secretArn and runtime parameter
92
110
  const secretArn = config.benchling.secretArn || props.benchlingSecret;
@@ -152,6 +170,18 @@ class FargateService extends constructs_1.Construct {
152
170
  ],
153
171
  }));
154
172
  // Grant Athena access to task role for package querying
173
+ // Support both discovered workgroup (from Quilt stack) and fallback to primary
174
+ const athenaWorkgroups = props.athenaUserWorkgroup
175
+ ? [
176
+ // Discovered workgroup from Quilt stack
177
+ `arn:aws:athena:${config.deployment.region}:${config.deployment.account || cdk.Aws.ACCOUNT_ID}:workgroup/${props.athenaUserWorkgroup}`,
178
+ // Fallback to primary workgroup
179
+ `arn:aws:athena:${config.deployment.region}:${config.deployment.account || cdk.Aws.ACCOUNT_ID}:workgroup/primary`,
180
+ ]
181
+ : [
182
+ // Only primary workgroup if no discovered workgroup
183
+ `arn:aws:athena:${config.deployment.region}:${config.deployment.account || cdk.Aws.ACCOUNT_ID}:workgroup/primary`,
184
+ ];
155
185
  taskRole.addToPolicy(new iam.PolicyStatement({
156
186
  actions: [
157
187
  "athena:StartQueryExecution",
@@ -160,23 +190,35 @@ class FargateService extends constructs_1.Construct {
160
190
  "athena:StopQueryExecution",
161
191
  "athena:GetWorkGroup",
162
192
  ],
163
- resources: [
164
- `arn:aws:athena:${config.deployment.region}:${config.deployment.account || cdk.Aws.ACCOUNT_ID}:workgroup/primary`,
165
- ],
193
+ resources: athenaWorkgroups,
166
194
  }));
167
195
  // Grant S3 access for Athena query results
168
- const athenaResultsBucketArn = `arn:aws:s3:::aws-athena-query-results-${account}-${region}`;
196
+ // Support both discovered results bucket (from Quilt stack) and fallback to default
197
+ const athenaResultsBuckets = props.athenaResultsBucket
198
+ ? [
199
+ // Discovered results bucket from Quilt stack
200
+ `arn:aws:s3:::${props.athenaResultsBucket}`,
201
+ `arn:aws:s3:::${props.athenaResultsBucket}/*`,
202
+ // Fallback to default bucket
203
+ `arn:aws:s3:::aws-athena-query-results-${account}-${region}`,
204
+ `arn:aws:s3:::aws-athena-query-results-${account}-${region}/*`,
205
+ ]
206
+ : [
207
+ // Only default bucket if no discovered bucket
208
+ `arn:aws:s3:::aws-athena-query-results-${account}-${region}`,
209
+ `arn:aws:s3:::aws-athena-query-results-${account}-${region}/*`,
210
+ ];
169
211
  taskRole.addToPolicy(new iam.PolicyStatement({
170
212
  actions: [
171
213
  "s3:GetBucketLocation",
172
214
  "s3:GetObject",
173
215
  "s3:ListBucket",
216
+ "s3:ListBucketVersions",
174
217
  "s3:PutObject",
218
+ "s3:PutBucketPublicAccessBlock",
219
+ "s3:CreateBucket",
175
220
  ],
176
- resources: [
177
- athenaResultsBucketArn,
178
- `${athenaResultsBucketArn}/*`,
179
- ],
221
+ resources: athenaResultsBuckets,
180
222
  }));
181
223
  // Create Fargate Task Definition
182
224
  const taskDefinition = new ecs.FargateTaskDefinition(this, "TaskDefinition", {
@@ -187,22 +229,28 @@ class FargateService extends constructs_1.Construct {
187
229
  family: "benchling-webhook-task",
188
230
  });
189
231
  // Build environment variables using new config structure
190
- // Container will query CloudFormation and Secrets Manager for runtime config
232
+ // v1.0.0+: Explicit service parameters eliminate runtime CloudFormation calls
233
+ // CRITICAL: These must match bin/xdg-launch.ts:buildEnvVars() exactly (lines 182-229)
234
+ // Package configuration comes from AWS Secrets Manager, NOT environment variables
191
235
  const environmentVars = {
236
+ // AWS Configuration
192
237
  AWS_REGION: region,
193
238
  AWS_DEFAULT_REGION: region,
239
+ // Quilt Services (v0.8.0+ service-specific - NO MORE STACK ARN!)
240
+ QUILT_WEB_HOST: props.quiltWebHost,
241
+ ATHENA_USER_DATABASE: props.athenaUserDatabase,
242
+ ATHENA_USER_WORKGROUP: props.athenaUserWorkgroup || "primary",
243
+ ATHENA_RESULTS_BUCKET: props.athenaResultsBucket || "",
244
+ ICEBERG_DATABASE: props.icebergDatabase || "",
245
+ ICEBERG_WORKGROUP: props.icebergWorkgroup || "",
246
+ PACKAGER_SQS_URL: props.packagerQueueUrl,
247
+ // Benchling Configuration (credentials from Secrets Manager, NOT environment)
248
+ BenchlingSecret: this.extractSecretName(props.benchlingSecret),
249
+ // Security Configuration (verification can be disabled for dev/test)
250
+ ENABLE_WEBHOOK_VERIFICATION: String(config.security?.enableVerification !== false),
251
+ // Application Configuration
194
252
  FLASK_ENV: "production",
195
253
  LOG_LEVEL: props.logLevel || config.logging?.level || "INFO",
196
- ENABLE_WEBHOOK_VERIFICATION: config.security?.enableVerification !== false ? "true" : "false",
197
- BENCHLING_WEBHOOK_VERSION: props.stackVersion || props.imageTag || "latest",
198
- // Runtime-configurable parameters (from CloudFormation)
199
- QuiltStackARN: props.stackArn,
200
- BenchlingSecret: props.benchlingSecret,
201
- // Static config values (for reference)
202
- BENCHLING_TENANT: config.benchling.tenant,
203
- BENCHLING_PKG_BUCKET: config.packages.bucket,
204
- BENCHLING_PKG_PREFIX: config.packages.prefix,
205
- BENCHLING_PKG_KEY: config.packages.metadataKey,
206
254
  };
207
255
  // Add container with configured environment
208
256
  const container = taskDefinition.addContainer("BenchlingWebhookContainer", {
@@ -1 +1 @@
1
- {"version":3,"file":"fargate-service.js","sourceRoot":"","sources":["../../lib/fargate-service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,iDAAmC;AACnC,yDAA2C;AAE3C,yDAA2C;AAC3C,8EAAgE;AAChE,yDAA2C;AAC3C,2DAA6C;AAC7C,uDAAyC;AACzC,2CAAuC;AA0BvC,MAAa,cAAe,SAAQ,sBAAS;IAMzC,YAAY,KAAgB,EAAE,EAAU,EAAE,KAA0B;QAChE,KAAK,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QAEjB,MAAM,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC;QAEzB,qBAAqB;QACrB,IAAI,CAAC,OAAO,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,yBAAyB,EAAE;YAC5D,GAAG,EAAE,KAAK,CAAC,GAAG;YACd,WAAW,EAAE,2BAA2B;YACxC,8BAA8B,EAAE,IAAI;SACvC,CAAC,CAAC;QAEH,2CAA2C;QAC3C,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,YAA8B,CAAC;QACpE,UAAU,CAAC,eAAe,GAAG;YACzB;gBACI,IAAI,EAAE,mBAAmB;gBACzB,KAAK,EAAE,SAAS;aACnB;SACJ,CAAC;QAEF,iDAAiD;QACjD,yEAAyE;QACzE,MAAM,SAAS,GAAG,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC;QAC/C,IAAI,CAAC,QAAQ,GAAG,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,mBAAmB,EAAE;YACzD,YAAY,EAAE,SAAS;YACvB,SAAS,EAAE,IAAI,CAAC,aAAa,CAAC,QAAQ;YACtC,aAAa,EAAE,GAAG,CAAC,aAAa,CAAC,OAAO;SAC3C,CAAC,CAAC;QAEH,yEAAyE;QACzE,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,mBAAmB,EAAE;YAC9D,SAAS,EAAE,IAAI,GAAG,CAAC,gBAAgB,CAAC,yBAAyB,CAAC;YAC9D,eAAe,EAAE;gBACb,GAAG,CAAC,aAAa,CAAC,wBAAwB,CACtC,+CAA+C,CAClD;aACJ;SACJ,CAAC,CAAC;QAEH,kEAAkE;QAClE,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,EAAE;YAC5C,SAAS,EAAE,IAAI,GAAG,CAAC,gBAAgB,CAAC,yBAAyB,CAAC;SACjE,CAAC,CAAC;QAEH,4DAA4D;QAC5D,QAAQ,CAAC,WAAW,CAChB,IAAI,GAAG,CAAC,eAAe,CAAC;YACpB,OAAO,EAAE;gBACL,+BAA+B;gBAC/B,uCAAuC;aAC1C;YACD,SAAS,EAAE,CAAC,KAAK,CAAE,QAAQ,CAAC;SAC/B,CAAC,CACL,CAAC;QAEF,qEAAqE;QACrE,4DAA4D;QAC5D,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC,SAAS,IAAI,KAAK,CAAC,eAAe,CAAC;QACtE,QAAQ,CAAC,WAAW,CAChB,IAAI,GAAG,CAAC,eAAe,CAAC;YACpB,OAAO,EAAE;gBACL,+BAA+B;gBAC/B,+BAA+B;aAClC;YACD,SAAS,EAAE;gBACP,SAAS;gBACT,GAAG,SAAS,GAAG,EAAE,2BAA2B;aAC/C;SACJ,CAAC,CACL,CAAC;QAEF,kDAAkD;QAClD,2DAA2D;QAC3D,MAAM,gBAAgB,GAAG,gBAAgB,KAAK,CAAC,aAAa,EAAE,CAAC;QAC/D,QAAQ,CAAC,WAAW,CAChB,IAAI,GAAG,CAAC,eAAe,CAAC;YACpB,OAAO,EAAE;gBACL,cAAc;gBACd,wBAAwB;gBACxB,qBAAqB;gBACrB,qBAAqB;gBACrB,+BAA+B;gBAC/B,4BAA4B;gBAC5B,eAAe;gBACf,uBAAuB;gBACvB,iBAAiB;gBACjB,wBAAwB;gBACxB,cAAc;gBACd,qBAAqB;gBACrB,0BAA0B;gBAC1B,0BAA0B;aAC7B;YACD,SAAS,EAAE;gBACP,gBAAgB;gBAChB,GAAG,gBAAgB,IAAI;aAC1B;SACJ,CAAC,CACL,CAAC;QAEF,oEAAoE;QACpE,QAAQ,CAAC,WAAW,CAChB,IAAI,GAAG,CAAC,eAAe,CAAC;YACpB,OAAO,EAAE;gBACL,iBAAiB;gBACjB,iBAAiB;gBACjB,wBAAwB;aAC3B;YACD,SAAS,EAAE;gBACP,eAAe,MAAM,CAAC,UAAU,CAAC,MAAM,IAAI,MAAM,CAAC,UAAU,CAAC,OAAO,IAAI,GAAG,CAAC,GAAG,CAAC,UAAU,IAAI;aACjG;SACJ,CAAC,CACL,CAAC;QAEF,oDAAoD;QACpD,MAAM,OAAO,GAAG,MAAM,CAAC,UAAU,CAAC,OAAO,IAAI,GAAG,CAAC,GAAG,CAAC,UAAU,CAAC;QAChE,MAAM,MAAM,GAAG,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC;QACxC,QAAQ,CAAC,WAAW,CAChB,IAAI,GAAG,CAAC,eAAe,CAAC;YACpB,OAAO,EAAE;gBACL,kBAAkB;gBAClB,eAAe;gBACf,oBAAoB;aACvB;YACD,SAAS,EAAE;gBACP,gBAAgB,MAAM,IAAI,OAAO,UAAU;gBAC3C,gBAAgB,MAAM,IAAI,OAAO,aAAa,KAAK,CAAC,aAAa,EAAE;gBACnE,gBAAgB,MAAM,IAAI,OAAO,UAAU,KAAK,CAAC,aAAa,IAAI;aACrE;SACJ,CAAC,CACL,CAAC;QAEF,wDAAwD;QACxD,QAAQ,CAAC,WAAW,CAChB,IAAI,GAAG,CAAC,eAAe,CAAC;YACpB,OAAO,EAAE;gBACL,4BAA4B;gBAC5B,0BAA0B;gBAC1B,wBAAwB;gBACxB,2BAA2B;gBAC3B,qBAAqB;aACxB;YACD,SAAS,EAAE;gBACP,kBAAkB,MAAM,CAAC,UAAU,CAAC,MAAM,IAAI,MAAM,CAAC,UAAU,CAAC,OAAO,IAAI,GAAG,CAAC,GAAG,CAAC,UAAU,oBAAoB;aACpH;SACJ,CAAC,CACL,CAAC;QAEF,2CAA2C;QAC3C,MAAM,sBAAsB,GAAG,yCAAyC,OAAO,IAAI,MAAM,EAAE,CAAC;QAC5F,QAAQ,CAAC,WAAW,CAChB,IAAI,GAAG,CAAC,eAAe,CAAC;YACpB,OAAO,EAAE;gBACL,sBAAsB;gBACtB,cAAc;gBACd,eAAe;gBACf,cAAc;aACjB;YACD,SAAS,EAAE;gBACP,sBAAsB;gBACtB,GAAG,sBAAsB,IAAI;aAChC;SACJ,CAAC,CACL,CAAC;QAEF,iCAAiC;QACjC,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC,qBAAqB,CAAC,IAAI,EAAE,gBAAgB,EAAE;YACzE,cAAc,EAAE,IAAI;YACpB,GAAG,EAAE,IAAI;YACT,aAAa,EAAE,iBAAiB;YAChC,QAAQ,EAAE,QAAQ;YAClB,MAAM,EAAE,wBAAwB;SACnC,CAAC,CAAC;QAEH,yDAAyD;QACzD,6EAA6E;QAC7E,MAAM,eAAe,GAA8B;YAC/C,UAAU,EAAE,MAAM;YAClB,kBAAkB,EAAE,MAAM;YAC1B,SAAS,EAAE,YAAY;YACvB,SAAS,EAAE,KAAK,CAAC,QAAQ,IAAI,MAAM,CAAC,OAAO,EAAE,KAAK,IAAI,MAAM;YAC5D,2BAA2B,EAAE,MAAM,CAAC,QAAQ,EAAE,kBAAkB,KAAK,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO;YAC7F,yBAAyB,EAAE,KAAK,CAAC,YAAY,IAAI,KAAK,CAAC,QAAQ,IAAI,QAAQ;YAC3E,wDAAwD;YACxD,aAAa,EAAE,KAAK,CAAE,QAAQ;YAC9B,eAAe,EAAE,KAAK,CAAC,eAAe;YACtC,uCAAuC;YACvC,gBAAgB,EAAE,MAAM,CAAC,SAAS,CAAC,MAAM;YACzC,oBAAoB,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM;YAC5C,oBAAoB,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM;YAC5C,iBAAiB,EAAE,MAAM,CAAC,QAAQ,CAAC,WAAW;SACjD,CAAC;QAEF,4CAA4C;QAC5C,MAAM,SAAS,GAAG,cAAc,CAAC,YAAY,CAAC,2BAA2B,EAAE;YACvE,KAAK,EAAE,GAAG,CAAC,cAAc,CAAC,iBAAiB,CACvC,KAAK,CAAC,aAAa,EACnB,KAAK,CAAC,QAAQ,IAAI,QAAQ,CAC7B;YACD,OAAO,EAAE,GAAG,CAAC,SAAS,CAAC,OAAO,CAAC;gBAC3B,YAAY,EAAE,mBAAmB;gBACjC,QAAQ,EAAE,IAAI,CAAC,QAAQ;aAC1B,CAAC;YACF,WAAW,EAAE,eAAe;YAC5B,WAAW,EAAE;gBACT,OAAO,EAAE,CAAC,WAAW,EAAE,gDAAgD,CAAC;gBACxE,QAAQ,EAAE,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;gBAClC,OAAO,EAAE,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;gBACjC,OAAO,EAAE,CAAC;gBACV,WAAW,EAAE,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;aACxC;SACJ,CAAC,CAAC;QAEH,qBAAqB;QACrB,SAAS,CAAC,eAAe,CAAC;YACtB,aAAa,EAAE,IAAI;YACnB,QAAQ,EAAE,GAAG,CAAC,QAAQ,CAAC,GAAG;SAC7B,CAAC,CAAC;QAEH,uCAAuC;QACvC,MAAM,aAAa,GAAG,IAAI,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,eAAe,EAAE;YACvD,UAAU,EAAE,8BAA8B,OAAO,EAAE;YACnD,aAAa,EAAE,GAAG,CAAC,aAAa,CAAC,OAAO;YACxC,iBAAiB,EAAE,IAAI;YACvB,cAAc,EAAE;gBACZ;oBACI,UAAU,EAAE,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;iBACnC;aACJ;SACJ,CAAC,CAAC;QAEH,mCAAmC;QACnC,IAAI,CAAC,YAAY,GAAG,IAAI,KAAK,CAAC,uBAAuB,CAAC,IAAI,EAAE,KAAK,EAAE;YAC/D,GAAG,EAAE,KAAK,CAAC,GAAG;YACd,cAAc,EAAE,IAAI;YACpB,gBAAgB,EAAE,uBAAuB;SAC5C,CAAC,CAAC;QAEH,yBAAyB;QACzB,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,aAAa,EAAE,iBAAiB,CAAC,CAAC;QAElE,0BAA0B;QAC1B,MAAM,WAAW,GAAG,IAAI,KAAK,CAAC,sBAAsB,CAAC,IAAI,EAAE,aAAa,EAAE;YACtE,GAAG,EAAE,KAAK,CAAC,GAAG;YACd,IAAI,EAAE,IAAI;YACV,QAAQ,EAAE,KAAK,CAAC,mBAAmB,CAAC,IAAI;YACxC,UAAU,EAAE,KAAK,CAAC,UAAU,CAAC,EAAE;YAC/B,WAAW,EAAE;gBACT,IAAI,EAAE,eAAe;gBACrB,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;gBACxB,uBAAuB,EAAE,CAAC;gBAC1B,gBAAgB,EAAE,KAAK;aAC1B;YACD,mBAAmB,EAAE,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;SAChD,CAAC,CAAC;QAEH,oBAAoB;QACpB,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,cAAc,EAAE;YAC1C,IAAI,EAAE,EAAE;YACR,QAAQ,EAAE,KAAK,CAAC,mBAAmB,CAAC,IAAI;YACxC,aAAa,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,WAAW,CAAC,CAAC;SAC7D,CAAC,CAAC;QAEH,0CAA0C;QAC1C,MAAM,oBAAoB,GAAG,IAAI,GAAG,CAAC,aAAa,CAAC,IAAI,EAAE,sBAAsB,EAAE;YAC7E,GAAG,EAAE,KAAK,CAAC,GAAG;YACd,WAAW,EAAE,oDAAoD;YACjE,gBAAgB,EAAE,IAAI;SACzB,CAAC,CAAC;QAEH,8CAA8C;QAC9C,oBAAoB,CAAC,cAAc,CAC/B,GAAG,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,EACzF,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAClB,wBAAwB,CAC3B,CAAC;QAEF,yBAAyB;QACzB,IAAI,CAAC,OAAO,GAAG,IAAI,GAAG,CAAC,cAAc,CAAC,IAAI,EAAE,SAAS,EAAE;YACnD,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,cAAc,EAAE,cAAc;YAC9B,YAAY,EAAE,CAAC;YACf,WAAW,EAAE,2BAA2B;YACxC,cAAc,EAAE,IAAI;YACpB,cAAc,EAAE,CAAC,oBAAoB,CAAC;YACtC,sBAAsB,EAAE,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;YAChD,iBAAiB,EAAE,EAAE;YACrB,iBAAiB,EAAE,GAAG;YACtB,cAAc,EAAE;gBACZ,QAAQ,EAAE,IAAI;aACjB;SACJ,CAAC,CAAC;QAEH,yCAAyC;QACzC,IAAI,CAAC,OAAO,CAAC,8BAA8B,CAAC,WAAW,CAAC,CAAC;QAEzD,yBAAyB;QACzB,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC;YAC5C,WAAW,EAAE,CAAC;YACd,WAAW,EAAE,EAAE;SAClB,CAAC,CAAC;QAEH,iCAAiC;QACjC,OAAO,CAAC,qBAAqB,CAAC,YAAY,EAAE;YACxC,wBAAwB,EAAE,EAAE;YAC5B,eAAe,EAAE,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC;YAC1C,gBAAgB,EAAE,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;SAC7C,CAAC,CAAC;QAEH,oCAAoC;QACpC,OAAO,CAAC,wBAAwB,CAAC,eAAe,EAAE;YAC9C,wBAAwB,EAAE,EAAE;YAC5B,eAAe,EAAE,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC;YAC1C,gBAAgB,EAAE,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;SAC7C,CAAC,CAAC;QAEH,UAAU;QACV,IAAI,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,iBAAiB,EAAE;YACvC,KAAK,EAAE,IAAI,CAAC,YAAY,CAAC,mBAAmB;YAC5C,WAAW,EAAE,wBAAwB;YACrC,UAAU,EAAE,wBAAwB;SACvC,CAAC,CAAC;QAEH,IAAI,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,aAAa,EAAE;YACnC,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,WAAW;YAC/B,WAAW,EAAE,kBAAkB;YAC/B,UAAU,EAAE,6BAA6B;SAC5C,CAAC,CAAC;QAEH,IAAI,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,aAAa,EAAE;YACnC,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,WAAW;YAC/B,WAAW,EAAE,kBAAkB;YAC/B,UAAU,EAAE,6BAA6B;SAC5C,CAAC,CAAC;IACP,CAAC;CACJ;AAvVD,wCAuVC"}
1
+ {"version":3,"file":"fargate-service.js","sourceRoot":"","sources":["../../lib/fargate-service.ts"],"names":[],"mappings":"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"}