@quiltdata/benchling-webhook 0.5.4 → 0.6.1-20251104T043302Z
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 +295 -12
- package/dist/bin/benchling-webhook.d.ts +1 -1
- package/dist/bin/benchling-webhook.d.ts.map +1 -1
- package/dist/bin/benchling-webhook.js +12 -22
- package/dist/bin/benchling-webhook.js.map +1 -1
- package/dist/bin/cdk-dev.js +59 -3
- package/dist/bin/cli.js +27 -9
- package/dist/bin/cli.js.map +1 -1
- package/dist/bin/commands/deploy.d.ts +6 -2
- package/dist/bin/commands/deploy.d.ts.map +1 -1
- package/dist/bin/commands/deploy.js +151 -90
- package/dist/bin/commands/deploy.js.map +1 -1
- package/dist/bin/commands/setup-wizard.d.ts +22 -0
- package/dist/bin/commands/setup-wizard.d.ts.map +1 -0
- package/dist/bin/commands/setup-wizard.js +47 -0
- package/dist/bin/commands/setup-wizard.js.map +1 -0
- package/dist/bin/config-profiles.d.ts +59 -0
- package/dist/bin/config-profiles.d.ts.map +1 -0
- package/dist/bin/config-profiles.js +272 -0
- package/dist/bin/config-profiles.js.map +1 -0
- package/dist/bin/create-secret.d.ts +25 -0
- package/dist/bin/create-secret.d.ts.map +1 -0
- package/dist/bin/create-secret.js +239 -0
- package/dist/bin/create-secret.js.map +1 -0
- package/dist/lib/benchling-auth-validator.d.ts +65 -0
- package/dist/lib/benchling-auth-validator.d.ts.map +1 -0
- package/dist/lib/benchling-auth-validator.js +213 -0
- package/dist/lib/benchling-auth-validator.js.map +1 -0
- package/dist/lib/benchling-webhook-stack.d.ts +13 -10
- package/dist/lib/benchling-webhook-stack.d.ts.map +1 -1
- package/dist/lib/benchling-webhook-stack.js +25 -69
- package/dist/lib/benchling-webhook-stack.js.map +1 -1
- package/dist/lib/config-logger.d.ts +191 -0
- package/dist/lib/config-logger.d.ts.map +1 -0
- package/dist/lib/config-logger.js +372 -0
- package/dist/lib/config-logger.js.map +1 -0
- package/dist/lib/configuration-saver.d.ts +75 -0
- package/dist/lib/configuration-saver.d.ts.map +1 -0
- package/dist/lib/configuration-saver.js +145 -0
- package/dist/lib/configuration-saver.js.map +1 -0
- package/dist/lib/configuration-validator.d.ts +63 -0
- package/dist/lib/configuration-validator.d.ts.map +1 -0
- package/dist/lib/configuration-validator.js +136 -0
- package/dist/lib/configuration-validator.js.map +1 -0
- package/dist/lib/configuration-wizard.d.ts +52 -0
- package/dist/lib/configuration-wizard.d.ts.map +1 -0
- package/dist/lib/configuration-wizard.js +193 -0
- package/dist/lib/configuration-wizard.js.map +1 -0
- package/dist/lib/fargate-service.d.ts +18 -9
- package/dist/lib/fargate-service.d.ts.map +1 -1
- package/dist/lib/fargate-service.js +177 -61
- package/dist/lib/fargate-service.js.map +1 -1
- package/dist/lib/quilt-config-resolver.d.ts +53 -0
- package/dist/lib/quilt-config-resolver.d.ts.map +1 -0
- package/dist/lib/quilt-config-resolver.js +100 -0
- package/dist/lib/quilt-config-resolver.js.map +1 -0
- package/dist/lib/s3-bucket-validator.d.ts +76 -0
- package/dist/lib/s3-bucket-validator.d.ts.map +1 -0
- package/dist/lib/s3-bucket-validator.js +237 -0
- package/dist/lib/s3-bucket-validator.js.map +1 -0
- package/dist/lib/types/config.d.ts +398 -0
- package/dist/lib/types/config.d.ts.map +1 -0
- package/dist/lib/types/config.js +11 -0
- package/dist/lib/types/config.js.map +1 -0
- package/dist/lib/utils/config-loader.d.ts +48 -0
- package/dist/lib/utils/config-loader.d.ts.map +1 -0
- package/dist/lib/utils/config-loader.js +109 -0
- package/dist/lib/utils/config-loader.js.map +1 -0
- package/dist/lib/utils/config-resolver.d.ts +138 -0
- package/dist/lib/utils/config-resolver.d.ts.map +1 -0
- package/dist/lib/utils/config-resolver.js +272 -0
- package/dist/lib/utils/config-resolver.js.map +1 -0
- package/dist/lib/utils/config.d.ts +50 -0
- package/dist/lib/utils/config.d.ts.map +1 -1
- package/dist/lib/utils/config.js +86 -0
- package/dist/lib/utils/config.js.map +1 -1
- package/dist/lib/utils/secrets.d.ts +174 -0
- package/dist/lib/utils/secrets.d.ts.map +1 -0
- package/dist/lib/utils/secrets.js +351 -0
- package/dist/lib/utils/secrets.js.map +1 -0
- package/dist/lib/xdg-cli-wrapper.d.ts +113 -0
- package/dist/lib/xdg-cli-wrapper.d.ts.map +1 -0
- package/dist/lib/xdg-cli-wrapper.js +288 -0
- package/dist/lib/xdg-cli-wrapper.js.map +1 -0
- package/dist/lib/xdg-config.d.ts +187 -0
- package/dist/lib/xdg-config.d.ts.map +1 -0
- package/dist/lib/xdg-config.js +562 -0
- package/dist/lib/xdg-config.js.map +1 -0
- package/dist/package.json +34 -26
- package/dist/scripts/config-health-check.d.ts +78 -0
- package/dist/scripts/config-health-check.d.ts.map +1 -0
- package/dist/scripts/config-health-check.js +559 -0
- package/dist/scripts/config-health-check.js.map +1 -0
- package/dist/scripts/infer-quilt-config.d.ts +50 -0
- package/dist/scripts/infer-quilt-config.d.ts.map +1 -0
- package/dist/scripts/infer-quilt-config.js +353 -0
- package/dist/scripts/infer-quilt-config.js.map +1 -0
- package/dist/scripts/install-wizard.d.ts +34 -0
- package/dist/scripts/install-wizard.d.ts.map +1 -0
- package/dist/scripts/install-wizard.js +719 -0
- package/dist/scripts/install-wizard.js.map +1 -0
- package/dist/scripts/sync-secrets.d.ts +63 -0
- package/dist/scripts/sync-secrets.d.ts.map +1 -0
- package/dist/scripts/sync-secrets.js +424 -0
- package/dist/scripts/sync-secrets.js.map +1 -0
- package/env.template +60 -47
- package/package.json +34 -26
package/env.template
CHANGED
|
@@ -1,66 +1,79 @@
|
|
|
1
|
-
#
|
|
2
|
-
# REQUIRED
|
|
3
|
-
#
|
|
4
|
-
# These are the ONLY values you need to provide. Everything else is inferred
|
|
5
|
-
# from your Quilt catalog configuration at deployment time.
|
|
1
|
+
#
|
|
2
|
+
# ALWAYS REQUIRED PARAMETERS
|
|
3
|
+
#
|
|
6
4
|
|
|
7
|
-
#
|
|
8
|
-
#
|
|
9
|
-
|
|
5
|
+
# --- Benchling OAuth Configuration ---
|
|
6
|
+
# Tenant: Use XXX if you login at XXX.benchling.com
|
|
7
|
+
BENCHLING_TENANT=your-tenant
|
|
10
8
|
|
|
11
|
-
#
|
|
12
|
-
|
|
9
|
+
# OAuth credentials from your Benchling app
|
|
10
|
+
BENCHLING_CLIENT_ID=your-client-id
|
|
11
|
+
BENCHLING_CLIENT_SECRET=your-client-secret
|
|
13
12
|
|
|
14
|
-
#
|
|
15
|
-
|
|
16
|
-
QUILT_USER_BUCKET=your-data-bucket
|
|
13
|
+
# App definition ID from Benchling app manifest
|
|
14
|
+
BENCHLING_APP_DEFINITION_ID=appdef_your_id_here
|
|
17
15
|
|
|
18
|
-
#
|
|
19
|
-
#
|
|
20
|
-
# ==============================================================================
|
|
21
|
-
# BENCHLING_TENANT: Use XXX if you login to Benchling at XXX.benchling.com
|
|
16
|
+
# S3 bucket for storing Benchling exports (YOUR data bucket)
|
|
17
|
+
BENCHLING_PKG_BUCKET=your-data-bucket # (without s3:// prefix)
|
|
22
18
|
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
BENCHLING_CLIENT_SECRET=your-client-secret
|
|
19
|
+
#
|
|
20
|
+
# POSSIBLY REQUIRED PARAMETERS
|
|
21
|
+
#
|
|
27
22
|
|
|
28
|
-
|
|
23
|
+
QUILT_CATALOG=quilt-stack.your-company.com
|
|
24
|
+
# Required UNLESS available from 'quilt3 config'
|
|
29
25
|
|
|
30
|
-
|
|
31
|
-
#
|
|
32
|
-
# ==============================================================================
|
|
26
|
+
BENCHLING_TEST_ENTRY=etr_123456789
|
|
27
|
+
# Actual entry ID from your tenant, needed to run integration tests
|
|
33
28
|
|
|
29
|
+
#
|
|
30
|
+
# Optional PARAMETERS
|
|
31
|
+
#
|
|
34
32
|
|
|
35
|
-
# Package Configuration
|
|
36
|
-
|
|
37
|
-
|
|
33
|
+
# --- Package Configuration ---
|
|
34
|
+
# Prefix for Quilt package names (e.g., "benchling/my-experiment")
|
|
35
|
+
BENCHLING_PKG_PREFIX=benchling
|
|
38
36
|
|
|
37
|
+
# Metadata key to link Benchling entries to packages
|
|
38
|
+
BENCHLING_PKG_KEY=experiment_id
|
|
39
39
|
|
|
40
|
-
# Webhook Security
|
|
41
|
-
ENABLE_WEBHOOK_VERIFICATION=true # Set to false ONLY for local development
|
|
42
40
|
|
|
43
|
-
#
|
|
44
|
-
#
|
|
41
|
+
# --- Application Configuration (Required) ---
|
|
42
|
+
# Logging level: DEBUG, INFO, WARNING, ERROR, CRITICAL
|
|
43
|
+
BENCHLING_LOG_LEVEL=INFO
|
|
45
44
|
|
|
46
|
-
#
|
|
47
|
-
|
|
45
|
+
# Enable/disable webhook signature verification (true/false)
|
|
46
|
+
BENCHLING_ENABLE_WEBHOOK_VERIFICATION=true
|
|
48
47
|
|
|
49
|
-
#
|
|
50
|
-
#
|
|
51
|
-
|
|
52
|
-
# NGROK_DOMAIN=your-subdomain.ngrok-free.app
|
|
48
|
+
# Comma-separated list of allowed source IPs (leave empty to allow all)
|
|
49
|
+
# Example: 34.216.192.90,34.217.183.162
|
|
50
|
+
BENCHLING_WEBHOOK_ALLOW_LIST=
|
|
53
51
|
|
|
54
52
|
# ==============================================================================
|
|
55
|
-
#
|
|
53
|
+
# NOTES
|
|
56
54
|
# ==============================================================================
|
|
57
|
-
# The following values are automatically inferred from your Quilt catalog
|
|
58
|
-
# at deployment time via bin/get-env.js:
|
|
59
55
|
#
|
|
60
|
-
#
|
|
61
|
-
#
|
|
62
|
-
#
|
|
63
|
-
#
|
|
56
|
+
# Quick Start:
|
|
57
|
+
# 1. Copy this file to .env: cp env.template .env
|
|
58
|
+
# 2. Fill in BENCHLING_* variables (section 2)
|
|
59
|
+
# 3. Create secret: npm run config
|
|
60
|
+
# 4. Fill in QuiltStackARN (section 1)
|
|
61
|
+
# 5. Deploy: npm run deploy
|
|
62
|
+
#
|
|
63
|
+
# Configuration at Runtime:
|
|
64
|
+
# The deployed stack resolves ALL configuration from just 2 sources:
|
|
65
|
+
# - QuiltStackARN → gets Quilt catalog, database, SQS queue from CloudFormation
|
|
66
|
+
# - BenchlingSecret → gets all Benchling credentials and app config from Secrets Manager
|
|
67
|
+
#
|
|
68
|
+
# No other environment variables are needed for production deployment.
|
|
69
|
+
#
|
|
70
|
+
# Local Development:
|
|
71
|
+
# For testing locally without AWS:
|
|
72
|
+
# - make -C docker run-local (starts Flask with mocked AWS)
|
|
73
|
+
# - make -C docker test-local (runs tests against local server)
|
|
74
|
+
#
|
|
75
|
+
# For More Information:
|
|
76
|
+
# - See docs/PARAMETERS.md for parameter reference
|
|
77
|
+
# - See README.md for complete setup guide
|
|
78
|
+
# - Run: npm run cli -- --help
|
|
64
79
|
#
|
|
65
|
-
# You do NOT need to set these unless you want to override the inferred values.
|
|
66
|
-
# ==============================================================================
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@quiltdata/benchling-webhook",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.6.1-20251104T043302Z",
|
|
4
4
|
"description": "AWS CDK deployment for Benchling webhook processing using Fargate - Deploy directly with npx",
|
|
5
5
|
"main": "dist/lib/index.js",
|
|
6
6
|
"types": "dist/lib/index.d.ts",
|
|
@@ -14,32 +14,29 @@
|
|
|
14
14
|
"benchling-webhook": "./dist/bin/cli.js"
|
|
15
15
|
},
|
|
16
16
|
"scripts": {
|
|
17
|
-
"clean": "rm -rf cdk.out */{*.js,*.d.ts}",
|
|
18
|
-
"test": "npm run typecheck && npm run test:ts && npm run test:python",
|
|
19
|
-
"test-ci": "npm run typecheck && npm run test:ts",
|
|
20
|
-
"typecheck": "tsc --noEmit",
|
|
21
|
-
"test:ts": "NODE_ENV=test TMPDIR=./.tmp node --max-old-space-size=4096 ./node_modules/.bin/jest",
|
|
22
|
-
"test:python": "make -C docker test-unit",
|
|
23
|
-
"cdk": "npm run test && npm run cli -- --yes",
|
|
24
|
-
"cdk:dev": "node bin/cdk-dev.js",
|
|
25
|
-
"lint": "eslint . --ext .ts --fix",
|
|
26
17
|
"build": "tsc",
|
|
27
|
-
"
|
|
18
|
+
"build:clean": "rm -rf cdk.out dist */{*.js,*.d.ts}",
|
|
19
|
+
"build:synth": "npx cdk synth",
|
|
20
|
+
"build:typecheck": "tsc --noEmit",
|
|
21
|
+
"deploy:dev": "npm run test && node bin/cdk-dev.js",
|
|
22
|
+
"deploy:prod": "node dist/bin/cli.js deploy",
|
|
23
|
+
"lint": "eslint . --ext .ts --fix && make -C docker lint",
|
|
28
24
|
"postbuild": "chmod +x dist/bin/cli.js && cp bin/*.js dist/bin/ 2>/dev/null || true",
|
|
29
|
-
"
|
|
30
|
-
"
|
|
31
|
-
"
|
|
32
|
-
"
|
|
33
|
-
"
|
|
34
|
-
"
|
|
35
|
-
"
|
|
36
|
-
"
|
|
37
|
-
"
|
|
38
|
-
"
|
|
39
|
-
"
|
|
40
|
-
"
|
|
41
|
-
"
|
|
42
|
-
"
|
|
25
|
+
"prebuild": "rm -rf dist",
|
|
26
|
+
"prepublishOnly": "npm run build",
|
|
27
|
+
"release": "npm run test && node bin/release.js && make -C docker push-ci",
|
|
28
|
+
"release:tag": "node bin/version.js && git push --tags",
|
|
29
|
+
"setup": "ts-node scripts/install-wizard.ts",
|
|
30
|
+
"setup:health": "ts-node scripts/config-health-check.ts",
|
|
31
|
+
"setup:infer": "ts-node scripts/infer-quilt-config.ts",
|
|
32
|
+
"setup:sync-secrets": "ts-node scripts/sync-secrets.ts",
|
|
33
|
+
"test": "npm run build:typecheck && npm run test:ts && npm run test:python",
|
|
34
|
+
"test:ci": "npm run build:typecheck && npm run test:ts",
|
|
35
|
+
"test:local": "make -C docker build && make -C docker test-local",
|
|
36
|
+
"test:python": "make -C docker test-unit",
|
|
37
|
+
"test:remote": "npm run deploy:dev && make -C docker test-deployed-dev",
|
|
38
|
+
"test:ts": "cross-env NODE_ENV=test jest --maxWorkers=50%",
|
|
39
|
+
"version": "node bin/version.js"
|
|
43
40
|
},
|
|
44
41
|
"keywords": [
|
|
45
42
|
"benchling",
|
|
@@ -67,8 +64,10 @@
|
|
|
67
64
|
"@typescript-eslint/eslint-plugin": "^8.26.1",
|
|
68
65
|
"@typescript-eslint/parser": "^8.26.1",
|
|
69
66
|
"aws-cdk": "2.1031.1",
|
|
67
|
+
"aws-sdk-client-mock": "^4.1.0",
|
|
68
|
+
"cross-env": "^10.1.0",
|
|
70
69
|
"dotenv": "^17.2.3",
|
|
71
|
-
"esbuild": "0.25.
|
|
70
|
+
"esbuild": "0.25.12",
|
|
72
71
|
"eslint": "^9.22.0",
|
|
73
72
|
"globals": "^16.0.0",
|
|
74
73
|
"jest": "^30.0.0",
|
|
@@ -79,7 +78,13 @@
|
|
|
79
78
|
"dependencies": {
|
|
80
79
|
"@aws-sdk/client-cloudformation": "^3.920.0",
|
|
81
80
|
"@aws-sdk/client-s3": "^3.758.0",
|
|
81
|
+
"@aws-sdk/client-secrets-manager": "^3.922.0",
|
|
82
|
+
"@aws-sdk/client-sts": "^3.922.0",
|
|
83
|
+
"@aws-sdk/credential-providers": "^3.922.0",
|
|
84
|
+
"@types/inquirer": "^9.0.9",
|
|
85
|
+
"@types/lodash.merge": "^4.6.9",
|
|
82
86
|
"adm-zip": "^0.5.10",
|
|
87
|
+
"ajv": "^8.17.1",
|
|
83
88
|
"aws-cdk-lib": "2.221.1",
|
|
84
89
|
"aws-sdk": "^2.1574.0",
|
|
85
90
|
"boxen": "^8.0.0",
|
|
@@ -88,6 +93,9 @@
|
|
|
88
93
|
"constructs": "^10.0.0",
|
|
89
94
|
"dotenv-expand": "^12.0.3",
|
|
90
95
|
"enquirer": "^2.4.1",
|
|
96
|
+
"execa": "^9.0.0",
|
|
97
|
+
"inquirer": "^12.10.0",
|
|
98
|
+
"lodash.merge": "^4.6.2",
|
|
91
99
|
"ora": "^9.0.0"
|
|
92
100
|
},
|
|
93
101
|
"engines": {
|