@ductape/mcp 0.2.36 → 0.2.37

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 (2) hide show
  1. package/dist/index.js +19 -0
  2. package/package.json +1 -1
package/dist/index.js CHANGED
@@ -527,6 +527,9 @@ ALL params are passed as a JSON array in positional order matching the SDK signa
527
527
  ductape_cli("apps actions list --app <app_tag> --json")
528
528
  ductape_cli("apps actions get --app <app_tag> --action <action_tag> --json")
529
529
  ductape_cli("apps actions delete --app <app_tag> --action <action_tag>")
530
+ Reuse the same canonical full action asset for create and update. An unchanged top-level tag is
531
+ accepted and stripped locally before the immutable action is patched; never create a second
532
+ partial-update file. A tag that differs from --action is rejected before any mutation.
530
533
  NOTE: the flag is --action-file, NOT -f/--file — that flag belongs to the parent "apps" command
531
534
  (used by "apps create"/"apps update"), and Commander resolves a flag shared by an ancestor and a
532
535
  descendant against the ancestor, so -f here would silently never reach this subcommand. Verified
@@ -1445,6 +1448,7 @@ const ADMIN_SUBCOMMANDS = [
1445
1448
  'workspaces',
1446
1449
  'link', 'unlink', 'init',
1447
1450
  'products', 'apps', 'marketplace',
1451
+ 'features',
1448
1452
  'resources',
1449
1453
  'notifications',
1450
1454
  'events',
@@ -3124,6 +3128,21 @@ CONNECTION FILE — REQUIRED SHAPE:
3124
3128
  auth and credentials absent when the environment does not require authentication. Never create a
3125
3129
  fake auth_tag merely to store a header.
3126
3130
 
3131
+ OAUTH/TOKEN ACCESS: OAuth grants and shared tokens belong to the product App connection, not to
3132
+ Feature input and not to repeated api.oauth() calls in application code. Inspect the App auth
3133
+ scheme; when it uses oauth2, token_access, credential_access, or fetch_credential_access, direct
3134
+ the user through the provider-consent/login flow in Workbench and preserve the resulting encrypted
3135
+ connection auth for every mapped product environment. Agents must never request, print, or write
3136
+ access/refresh tokens into the repository. Application code initializes Ductape with product+env,
3137
+ awaits ready(), and calls the action; runtime auth injection and token refresh are platform-managed.
3138
+ api.oauth() remains only an explicit process-local override for a connection the user deliberately
3139
+ has not persisted.
3140
+
3141
+ SHARED CONFIG: derive candidate keys from the selected App version's action schemas across headers,
3142
+ query, params, and body. Deduplicate by <location>:<key>, prefer fields reused by several actions,
3143
+ and present the exact candidates to the user. Never ask the user to invent or type a key name that
3144
+ is already declared by an action. Only the value/$Secret reference is user-supplied.
3145
+
3127
3146
  Before writing this file, inspect the exact App version/auth/action schemas. auth.data must have
3128
3147
  headers/query/params/body objects and must match the selected auth schema. Never guess an auth_tag,
3129
3148
  variable key, input location, or required field. Store credentials with secrets.create first and
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ductape/mcp",
3
- "version": "0.2.36",
3
+ "version": "0.2.37",
4
4
  "description": "MCP server that exposes Ductape SDK operations via the backend proxy",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",