{
  "name": "n8n-nodes-mountable",
  "displayName": "Mountable",
  "description": "Control-plane node for Mountable filesystems, usage, one-time mount tickets and session revocation. The importable HTTP workflows call the same operations without installing this node.",
  "baseUrl": "https://mountable.io",
  "credentials": {
    "name": "mountableApi",
    "n8nCredential": "httpHeaderAuth",
    "headerName": "Authorization",
    "headerValue": "Bearer <API key stored in n8n credentials>",
    "test": {
      "method": "GET",
      "path": "/api/v1/me"
    }
  },
  "security": "Store MOUNTABLE_API_KEY in the n8n credential. Do not put it in the workflow JSON or send it to the sandbox webhook.",
  "operations": [
    {
      "key": "whoami",
      "label": "Who am I",
      "method": "GET",
      "path": "/api/v1/me",
      "body": []
    },
    {
      "key": "create_filesystem",
      "label": "Create Filesystem",
      "method": "POST",
      "path": "/api/v1/orgs/{org_id}/filesystems",
      "org_from_me": true,
      "body": [
        "name"
      ],
      "inputs": [
        {
          "key": "name",
          "label": "Name",
          "type": "string",
          "required": true,
          "helpText": "1 to 200 characters. Names need not be unique. This call is not idempotent: after a timeout, list filesystems and look for the name before creating again."
        }
      ]
    },
    {
      "key": "filesystem_usage",
      "label": "Get Filesystem Usage",
      "method": "GET",
      "path": "/api/v1/orgs/{org_id}/filesystems/{fs_id}/usage",
      "org_from_me": true,
      "body": [],
      "inputs": [
        {
          "key": "filesystem_id",
          "label": "Filesystem ID",
          "type": "string",
          "required": true
        }
      ]
    },
    {
      "key": "create_mount_session",
      "label": "Create Mount Session",
      "method": "POST",
      "path": "/api/v1/mount-sessions",
      "body": [
        "filesystem_id",
        "mode",
        "idempotency_key",
        "max_duration_seconds"
      ],
      "inputs": [
        {
          "key": "filesystem_id",
          "label": "Filesystem ID",
          "type": "string",
          "required": true
        },
        {
          "key": "mode",
          "label": "Mode",
          "type": "string",
          "required": true,
          "choices": [
            "rw",
            "ro"
          ],
          "helpText": "rw or ro. The sandbox receives only the one-time ticket."
        },
        {
          "key": "idempotency_key",
          "label": "Idempotency key",
          "type": "string",
          "required": true,
          "helpText": "A new key for each mount. Reuse it only to retry this create. A replay returns the existing session with a null ticket."
        },
        {
          "key": "max_duration_seconds",
          "label": "Max duration seconds",
          "type": "integer",
          "required": false,
          "helpText": "Optional. The templates send 3600. The API allows 60 to 604800 and defaults to 43200 when omitted."
        }
      ]
    },
    {
      "key": "revoke_mount_session",
      "label": "Revoke Mount Session",
      "method": "DELETE",
      "path": "/api/v1/mount-sessions/{session_id}",
      "body": [],
      "inputs": [
        {
          "key": "session_id",
          "label": "Session ID",
          "type": "string",
          "required": true
        }
      ]
    }
  ]
}
