@ductape/mcp 0.3.1 → 0.3.2

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 +39 -1
  2. package/package.json +1 -1
package/dist/index.js CHANGED
@@ -2904,11 +2904,23 @@ Import an existing resource and register it on the product:
2904
2904
  Use import-persist-all for multi-env products (required):
2905
2905
  ductape_cli("cloud resources import-persist-all -f all-envs.json --json")
2906
2906
  File is a JSON ARRAY — one entry per env, same product + component tag across all entries.
2907
- Each entry: { cloud, service, type, product, component, env, resource, region?, dbName? }
2907
+ Each entry: { cloud, service, type, product, component, env, resource, region?, dbName?, masterPassword? }
2908
2908
  Supported service identifiers: s3, gcs, blob, rds, postgresql, cloudsql, sqs, pubsub,
2909
2909
  servicebus, neptune, cosmos-gremlin, opensearch, azure-search, atlas-cluster, aura-instance,
2910
2910
  vertex-vector-search, spanner-graph, dynamodb, keyspaces, mysql
2911
2911
 
2912
+ masterPassword is required for self-hosted-style imports where Ductape cannot mint or fetch
2913
+ credentials on its own: rds, postgresql, cloudsql, mysql (unless the instance already has
2914
+ stored Ductape credentials from a prior link), and — critically — aura-instance. Neo4j Aura
2915
+ shows the auto-generated database password only ONCE, at instance creation, in the Aura
2916
+ console, and it can never be retrieved again via the Aura API. Importing an Aura instance
2917
+ without masterPassword will fail with a clear error at import time; skipping that check and
2918
+ importing anyway is not possible — always ask the user for the instance's password before
2919
+ calling import-persist-all for an aura-instance entry, the same as you would ask for an RDS
2920
+ master password. Aura's username is always "neo4j" — never ask the user for it. Atlas
2921
+ (atlas-cluster) does NOT need masterPassword — Ductape mints/rotates its own database user via
2922
+ the Atlas Admin API.
2923
+
2912
2924
  Provision a brand-new resource and register it:
2913
2925
  ductape_cli("cloud resources provision-persist-all -f all-envs.json --json")
2914
2926
  Additional per-entry fields: tier, region/location, waitForReady.
@@ -6953,6 +6965,32 @@ async function main() {
6953
6965
  ' "product":"my-product","component":"billing-db","env":"snd","resource":"Cluster0","dbName":"billing_snd"},\n' +
6954
6966
  ' {"cloud":"atlas-tag","service":"atlas-cluster","type":"databases",\n' +
6955
6967
  ' "product":"my-product","component":"billing-db","env":"prd","resource":"Cluster0","dbName":"billing_prd"}]\n' +
6968
+ ' - Neo4j Aura (graph) import flow — service identifier is "aura-instance":\n' +
6969
+ ' CRITICAL: masterPassword is REQUIRED in every import entry for aura-instance. Aura shows the\n' +
6970
+ ' auto-generated database password only ONCE, at instance creation, in the Aura console, and it\n' +
6971
+ ' can never be retrieved again via the Aura API — Ductape has no way to source it automatically.\n' +
6972
+ ' Always ask the user for the instance password before calling import-persist-all for an\n' +
6973
+ ' aura-instance entry; do not attempt the import without it, it will fail with a clear error\n' +
6974
+ ' naming exactly this. The username is always "neo4j" for every Aura instance — never ask the\n' +
6975
+ ' user for it, and never put it in masterPassword by mistake.\n' +
6976
+ ' Step 1 — discover the instance:\n' +
6977
+ ' ductape_cli("cloud resources list -f /tmp/aura-list.json --json")\n' +
6978
+ ' File: {"cloud": "<aura-connection-tag>", "service": "aura-instance"}\n' +
6979
+ ' Returns a list of Aura instances; note the "id" or "name" field (this is your resource\n' +
6980
+ ' identifier). Aura instances cannot be created through Ductape — provision-persist-all is\n' +
6981
+ ' not supported for this provider; only an already-existing instance can be linked.\n' +
6982
+ ' Step 2 — import (one entry per product env, same instance across all envs unless the user\n' +
6983
+ ' explicitly wants different Aura instances per environment):\n' +
6984
+ ' cloud (connection tag), service: "aura-instance", type: "graphs",\n' +
6985
+ ' product, component (new or existing graph tag), env, resource (instance id/name from\n' +
6986
+ ' Step 1), masterPassword (the instance password — ask the user, do not guess or omit).\n' +
6987
+ ' Example (two envs, same Aura instance):\n' +
6988
+ ' [{"cloud":"aura-tag","service":"aura-instance","type":"graphs",\n' +
6989
+ ' "product":"my-product","component":"commerce-network","env":"snd",\n' +
6990
+ ' "resource":"1d7fc731","masterPassword":"<user-supplied>"},\n' +
6991
+ ' {"cloud":"aura-tag","service":"aura-instance","type":"graphs",\n' +
6992
+ ' "product":"my-product","component":"commerce-network","env":"prd",\n' +
6993
+ ' "resource":"1d7fc731","masterPassword":"<user-supplied>"}]\n' +
6956
6994
  ' - Message broker / event broker import:\n' +
6957
6995
  ' CLI accepts these aliases for the messageBrokers module: events, event, broker, brokers, message-brokers.\n' +
6958
6996
  ' List existing brokers: ductape_cli("resources events list --json")\n' +
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ductape/mcp",
3
- "version": "0.3.1",
3
+ "version": "0.3.2",
4
4
  "description": "MCP server that exposes Ductape SDK operations via the backend proxy",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",