naftiko: 1.0.0-alpha2 info: label: Node-RED Admin API description: 'Node-RED Admin API. 20 operations. Lead operation: Get the active authentication scheme. Self-contained Naftiko capability covering one Node Red business surface.' tags: - Node Red - Node-RED Admin API created: '2026-05-19' modified: '2026-05-19' binds: - namespace: env keys: NODE_RED_API_KEY: NODE_RED_API_KEY capability: consumes: - type: http namespace: admin baseUri: http://{host}:{port} description: Node-RED Admin API business capability. Self-contained, no shared references. resources: - name: auth-login path: /auth/login operations: - name: getauthlogin method: GET description: Get the active authentication scheme outputRawFormat: json outputParameters: - name: result type: object value: $. - name: auth-revoke path: /auth/revoke operations: - name: postauthrevoke method: POST description: Revoke an access token outputRawFormat: json outputParameters: - name: result type: object value: $. - name: auth-token path: /auth/token operations: - name: postauthtoken method: POST description: Exchange credentials for an access token outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: diagnostics path: /diagnostics operations: - name: getdiagnostics method: GET description: Get the runtime diagnostics outputRawFormat: json outputParameters: - name: result type: object value: $. - name: flow path: /flow operations: - name: postflow method: POST description: Add a flow to the active configuration outputRawFormat: json outputParameters: - name: result type: object value: $. - name: flow-id path: /flow/{id} operations: - name: getflowbyid method: GET description: Get an individual flow configuration outputRawFormat: json outputParameters: - name: result type: object value: $. - name: putflowbyid method: PUT description: Update an individual flow configuration outputRawFormat: json outputParameters: - name: result type: object value: $. - name: deleteflowbyid method: DELETE description: Delete an individual flow configuration outputRawFormat: json outputParameters: - name: result type: object value: $. - name: flows path: /flows operations: - name: getflows method: GET description: Get the active flow configuration outputRawFormat: json outputParameters: - name: result type: object value: $. - name: postflows method: POST description: Set the active flow configuration outputRawFormat: json outputParameters: - name: result type: object value: $. - name: flows-state path: /flows/state operations: - name: getflowsstate method: GET description: Get the active flow runtime state outputRawFormat: json outputParameters: - name: result type: object value: $. - name: postflowsstate method: POST description: Set the active flow runtime state outputRawFormat: json outputParameters: - name: result type: object value: $. - name: nodes path: /nodes operations: - name: getnodes method: GET description: Get a list of the installed nodes outputRawFormat: json outputParameters: - name: result type: object value: $. - name: postnodes method: POST description: Install a new node module outputRawFormat: json outputParameters: - name: result type: object value: $. - name: nodes-module path: /nodes/{module} operations: - name: getnodemodule method: GET description: Get a node module information outputRawFormat: json outputParameters: - name: result type: object value: $. - name: putnodemodule method: PUT description: Enable or disable a node module outputRawFormat: json outputParameters: - name: result type: object value: $. - name: deletenodemodule method: DELETE description: Remove a node module outputRawFormat: json outputParameters: - name: result type: object value: $. - name: nodes-module-set path: /nodes/{module}/{set} operations: - name: getnodemoduleset method: GET description: Get a node module set information outputRawFormat: json outputParameters: - name: result type: object value: $. - name: putnodemoduleset method: PUT description: Enable or disable a node set outputRawFormat: json outputParameters: - name: result type: object value: $. - name: settings path: /settings operations: - name: getsettings method: GET description: Get the runtime settings outputRawFormat: json outputParameters: - name: result type: object value: $. authentication: type: bearer token: '{{env.NODE_RED_API_KEY}}' exposes: - type: rest namespace: admin-rest port: 8080 description: REST adapter for Node-RED Admin API. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/auth/login name: auth-login description: REST surface for auth-login. operations: - method: GET name: getauthlogin description: Get the active authentication scheme call: admin.getauthlogin outputParameters: - type: object mapping: $. - path: /v1/auth/revoke name: auth-revoke description: REST surface for auth-revoke. operations: - method: POST name: postauthrevoke description: Revoke an access token call: admin.postauthrevoke outputParameters: - type: object mapping: $. - path: /v1/auth/token name: auth-token description: REST surface for auth-token. operations: - method: POST name: postauthtoken description: Exchange credentials for an access token call: admin.postauthtoken with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/diagnostics name: diagnostics description: REST surface for diagnostics. operations: - method: GET name: getdiagnostics description: Get the runtime diagnostics call: admin.getdiagnostics outputParameters: - type: object mapping: $. - path: /v1/flow name: flow description: REST surface for flow. operations: - method: POST name: postflow description: Add a flow to the active configuration call: admin.postflow outputParameters: - type: object mapping: $. - path: /v1/flow/{id} name: flow-id description: REST surface for flow-id. operations: - method: GET name: getflowbyid description: Get an individual flow configuration call: admin.getflowbyid outputParameters: - type: object mapping: $. - method: PUT name: putflowbyid description: Update an individual flow configuration call: admin.putflowbyid outputParameters: - type: object mapping: $. - method: DELETE name: deleteflowbyid description: Delete an individual flow configuration call: admin.deleteflowbyid outputParameters: - type: object mapping: $. - path: /v1/flows name: flows description: REST surface for flows. operations: - method: GET name: getflows description: Get the active flow configuration call: admin.getflows outputParameters: - type: object mapping: $. - method: POST name: postflows description: Set the active flow configuration call: admin.postflows outputParameters: - type: object mapping: $. - path: /v1/flows/state name: flows-state description: REST surface for flows-state. operations: - method: GET name: getflowsstate description: Get the active flow runtime state call: admin.getflowsstate outputParameters: - type: object mapping: $. - method: POST name: postflowsstate description: Set the active flow runtime state call: admin.postflowsstate outputParameters: - type: object mapping: $. - path: /v1/nodes name: nodes description: REST surface for nodes. operations: - method: GET name: getnodes description: Get a list of the installed nodes call: admin.getnodes outputParameters: - type: object mapping: $. - method: POST name: postnodes description: Install a new node module call: admin.postnodes outputParameters: - type: object mapping: $. - path: /v1/nodes/{module} name: nodes-module description: REST surface for nodes-module. operations: - method: GET name: getnodemodule description: Get a node module information call: admin.getnodemodule outputParameters: - type: object mapping: $. - method: PUT name: putnodemodule description: Enable or disable a node module call: admin.putnodemodule outputParameters: - type: object mapping: $. - method: DELETE name: deletenodemodule description: Remove a node module call: admin.deletenodemodule outputParameters: - type: object mapping: $. - path: /v1/nodes/{module}/{set} name: nodes-module-set description: REST surface for nodes-module-set. operations: - method: GET name: getnodemoduleset description: Get a node module set information call: admin.getnodemoduleset outputParameters: - type: object mapping: $. - method: PUT name: putnodemoduleset description: Enable or disable a node set call: admin.putnodemoduleset outputParameters: - type: object mapping: $. - path: /v1/settings name: settings description: REST surface for settings. operations: - method: GET name: getsettings description: Get the runtime settings call: admin.getsettings outputParameters: - type: object mapping: $. - type: mcp namespace: admin-mcp port: 9090 transport: http description: MCP adapter for Node-RED Admin API. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: get-active-authentication-scheme description: Get the active authentication scheme hints: readOnly: true destructive: false idempotent: true call: admin.getauthlogin outputParameters: - type: object mapping: $. - name: revoke-access-token description: Revoke an access token hints: readOnly: false destructive: false idempotent: false call: admin.postauthrevoke outputParameters: - type: object mapping: $. - name: exchange-credentials-access-token description: Exchange credentials for an access token hints: readOnly: false destructive: false idempotent: false call: admin.postauthtoken with: body: tools.body outputParameters: - type: object mapping: $. - name: get-runtime-diagnostics description: Get the runtime diagnostics hints: readOnly: true destructive: false idempotent: true call: admin.getdiagnostics outputParameters: - type: object mapping: $. - name: add-flow-active-configuration description: Add a flow to the active configuration hints: readOnly: false destructive: false idempotent: false call: admin.postflow outputParameters: - type: object mapping: $. - name: get-individual-flow-configuration description: Get an individual flow configuration hints: readOnly: true destructive: false idempotent: true call: admin.getflowbyid outputParameters: - type: object mapping: $. - name: update-individual-flow-configuration description: Update an individual flow configuration hints: readOnly: false destructive: false idempotent: true call: admin.putflowbyid outputParameters: - type: object mapping: $. - name: delete-individual-flow-configuration description: Delete an individual flow configuration hints: readOnly: false destructive: true idempotent: true call: admin.deleteflowbyid outputParameters: - type: object mapping: $. - name: get-active-flow-configuration description: Get the active flow configuration hints: readOnly: true destructive: false idempotent: true call: admin.getflows outputParameters: - type: object mapping: $. - name: set-active-flow-configuration description: Set the active flow configuration hints: readOnly: false destructive: false idempotent: false call: admin.postflows outputParameters: - type: object mapping: $. - name: get-active-flow-runtime-state description: Get the active flow runtime state hints: readOnly: true destructive: false idempotent: true call: admin.getflowsstate outputParameters: - type: object mapping: $. - name: set-active-flow-runtime-state description: Set the active flow runtime state hints: readOnly: false destructive: false idempotent: false call: admin.postflowsstate outputParameters: - type: object mapping: $. - name: get-list-installed-nodes description: Get a list of the installed nodes hints: readOnly: true destructive: false idempotent: true call: admin.getnodes outputParameters: - type: object mapping: $. - name: install-new-node-module description: Install a new node module hints: readOnly: false destructive: false idempotent: false call: admin.postnodes outputParameters: - type: object mapping: $. - name: get-node-module-information description: Get a node module information hints: readOnly: true destructive: false idempotent: true call: admin.getnodemodule outputParameters: - type: object mapping: $. - name: enable-disable-node-module description: Enable or disable a node module hints: readOnly: false destructive: false idempotent: true call: admin.putnodemodule outputParameters: - type: object mapping: $. - name: remove-node-module description: Remove a node module hints: readOnly: false destructive: true idempotent: true call: admin.deletenodemodule outputParameters: - type: object mapping: $. - name: get-node-module-set-information description: Get a node module set information hints: readOnly: true destructive: false idempotent: true call: admin.getnodemoduleset outputParameters: - type: object mapping: $. - name: enable-disable-node-set description: Enable or disable a node set hints: readOnly: false destructive: false idempotent: true call: admin.putnodemoduleset outputParameters: - type: object mapping: $. - name: get-runtime-settings description: Get the runtime settings hints: readOnly: true destructive: false idempotent: true call: admin.getsettings outputParameters: - type: object mapping: $.