Windmill · Capability

Windmill API — oauth

Windmill API — oauth. 13 operations. Lead operation: Connect Callback. Self-contained Naftiko capability covering one Windmill business surface.

Run with Naftiko Windmilloauth

What You Can Do

POST
Connectcallback — Connect Callback
/v1/oauth/connect-callback/{client-name}
POST
Connectclientcredentials — Connect OAuth Using Client Credentials
/v1/oauth/connect-client-credentials/{client}
POST
Connectslackcallbackinstance — Connect Slack Callback Instance
/v1/oauth/connect-slack-callback
POST
Connectslackinstance — Connect Slack Instance (non-interactive; Pre-minted Bot Token)
/v1/oauth/connect-slack-instance
GET
Getoauthconnect — Get Oauth Connect
/v1/oauth/get-connect/{client}
GET
Listoauthconnects — List Oauth Connects
/v1/oauth/list-connects
GET
Listoauthlogins — List Oauth Logins
/v1/oauth/list-logins
POST
Connectslackcallback — Connect Slack Callback
/v1/w/{workspace}/oauth/connect-slack-callback
POST
Createaccount — Create OAuth Account
/v1/w/{workspace}/oauth/create-account
POST
Disconnectaccount — Disconnect Account
/v1/w/{workspace}/oauth/disconnect/{id}
POST
Disconnectslack — Disconnect Slack
/v1/w/{workspace}/oauth/disconnect-slack
POST
Disconnectteams — Disconnect Teams
/v1/w/{workspace}/oauth/disconnect-teams
POST
Refreshtoken — Refresh Token
/v1/w/{workspace}/oauth/refresh-token/{id}

MCP Tools

connect-callback

Connect Callback

connect-oauth-using-client-credentials

Connect OAuth Using Client Credentials

connect-slack-callback-instance

Connect Slack Callback Instance

connect-slack-instance-non-interactive

Connect Slack Instance (non-interactive; Pre-minted Bot Token)

get-oauth-connect

Get Oauth Connect

read-only idempotent
list-oauth-connects

List Oauth Connects

read-only idempotent
list-oauth-logins

List Oauth Logins

read-only idempotent
connect-slack-callback

Connect Slack Callback

create-oauth-account

Create OAuth Account

disconnect-account

Disconnect Account

disconnect-slack

Disconnect Slack

disconnect-teams

Disconnect Teams

refresh-token

Refresh Token

Capability Spec

windmill-oauth.yaml Raw ↑
naftiko: 1.0.0-alpha2
info:
  label: Windmill API — oauth
  description: 'Windmill API — oauth. 13 operations. Lead operation: Connect Callback. Self-contained Naftiko capability covering
    one Windmill business surface.'
  tags:
  - Windmill
  - oauth
  created: '2026-05-19'
  modified: '2026-05-19'
binds:
- namespace: env
  keys:
    WINDMILL_API_KEY: WINDMILL_API_KEY
capability:
  consumes:
  - type: http
    namespace: windmill-oauth
    baseUri: ''
    description: Windmill API — oauth business capability. Self-contained, no shared references.
    resources:
    - name: oauth-connect_callback-client_name
      path: /oauth/connect_callback/{client_name}
      operations:
      - name: connectcallback
        method: POST
        description: Connect Callback
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: oauth-connect_client_credentials-client
      path: /oauth/connect_client_credentials/{client}
      operations:
      - name: connectclientcredentials
        method: POST
        description: Connect OAuth Using Client Credentials
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: client
          in: path
          type: string
          description: OAuth client name
          required: true
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: oauth-connect_slack_callback
      path: /oauth/connect_slack_callback
      operations:
      - name: connectslackcallbackinstance
        method: POST
        description: Connect Slack Callback Instance
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: oauth-connect_slack_instance
      path: /oauth/connect_slack_instance
      operations:
      - name: connectslackinstance
        method: POST
        description: Connect Slack Instance (non-interactive; Pre-minted Bot Token)
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: oauth-get_connect-client
      path: /oauth/get_connect/{client}
      operations:
      - name: getoauthconnect
        method: GET
        description: Get Oauth Connect
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: client
          in: path
          type: string
          description: client name
          required: true
    - name: oauth-list_connects
      path: /oauth/list_connects
      operations:
      - name: listoauthconnects
        method: GET
        description: List Oauth Connects
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: oauth-list_logins
      path: /oauth/list_logins
      operations:
      - name: listoauthlogins
        method: GET
        description: List Oauth Logins
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: w-workspace-oauth-connect_slack_callback
      path: /w/{workspace}/oauth/connect_slack_callback
      operations:
      - name: connectslackcallback
        method: POST
        description: Connect Slack Callback
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: w-workspace-oauth-create_account
      path: /w/{workspace}/oauth/create_account
      operations:
      - name: createaccount
        method: POST
        description: Create OAuth Account
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: w-workspace-oauth-disconnect-id
      path: /w/{workspace}/oauth/disconnect/{id}
      operations:
      - name: disconnectaccount
        method: POST
        description: Disconnect Account
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: w-workspace-oauth-disconnect_slack
      path: /w/{workspace}/oauth/disconnect_slack
      operations:
      - name: disconnectslack
        method: POST
        description: Disconnect Slack
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: w-workspace-oauth-disconnect_teams
      path: /w/{workspace}/oauth/disconnect_teams
      operations:
      - name: disconnectteams
        method: POST
        description: Disconnect Teams
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: w-workspace-oauth-refresh_token-id
      path: /w/{workspace}/oauth/refresh_token/{id}
      operations:
      - name: refreshtoken
        method: POST
        description: Refresh Token
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    authentication:
      type: bearer
      token: '{{env.WINDMILL_API_KEY}}'
  exposes:
  - type: rest
    namespace: windmill-oauth-rest
    port: 8080
    description: REST adapter for Windmill API — oauth. One Spectral-compliant resource per consumed operation, prefixed with
      /v1.
    resources:
    - path: /v1/oauth/connect-callback/{client-name}
      name: oauth-connect-callback-client-name
      description: REST surface for oauth-connect_callback-client_name.
      operations:
      - method: POST
        name: connectcallback
        description: Connect Callback
        call: windmill-oauth.connectcallback
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/oauth/connect-client-credentials/{client}
      name: oauth-connect-client-credentials-client
      description: REST surface for oauth-connect_client_credentials-client.
      operations:
      - method: POST
        name: connectclientcredentials
        description: Connect OAuth Using Client Credentials
        call: windmill-oauth.connectclientcredentials
        with:
          client: rest.client
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/oauth/connect-slack-callback
      name: oauth-connect-slack-callback
      description: REST surface for oauth-connect_slack_callback.
      operations:
      - method: POST
        name: connectslackcallbackinstance
        description: Connect Slack Callback Instance
        call: windmill-oauth.connectslackcallbackinstance
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/oauth/connect-slack-instance
      name: oauth-connect-slack-instance
      description: REST surface for oauth-connect_slack_instance.
      operations:
      - method: POST
        name: connectslackinstance
        description: Connect Slack Instance (non-interactive; Pre-minted Bot Token)
        call: windmill-oauth.connectslackinstance
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/oauth/get-connect/{client}
      name: oauth-get-connect-client
      description: REST surface for oauth-get_connect-client.
      operations:
      - method: GET
        name: getoauthconnect
        description: Get Oauth Connect
        call: windmill-oauth.getoauthconnect
        with:
          client: rest.client
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/oauth/list-connects
      name: oauth-list-connects
      description: REST surface for oauth-list_connects.
      operations:
      - method: GET
        name: listoauthconnects
        description: List Oauth Connects
        call: windmill-oauth.listoauthconnects
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/oauth/list-logins
      name: oauth-list-logins
      description: REST surface for oauth-list_logins.
      operations:
      - method: GET
        name: listoauthlogins
        description: List Oauth Logins
        call: windmill-oauth.listoauthlogins
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/w/{workspace}/oauth/connect-slack-callback
      name: w-workspace-oauth-connect-slack-callback
      description: REST surface for w-workspace-oauth-connect_slack_callback.
      operations:
      - method: POST
        name: connectslackcallback
        description: Connect Slack Callback
        call: windmill-oauth.connectslackcallback
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/w/{workspace}/oauth/create-account
      name: w-workspace-oauth-create-account
      description: REST surface for w-workspace-oauth-create_account.
      operations:
      - method: POST
        name: createaccount
        description: Create OAuth Account
        call: windmill-oauth.createaccount
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/w/{workspace}/oauth/disconnect/{id}
      name: w-workspace-oauth-disconnect-id
      description: REST surface for w-workspace-oauth-disconnect-id.
      operations:
      - method: POST
        name: disconnectaccount
        description: Disconnect Account
        call: windmill-oauth.disconnectaccount
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/w/{workspace}/oauth/disconnect-slack
      name: w-workspace-oauth-disconnect-slack
      description: REST surface for w-workspace-oauth-disconnect_slack.
      operations:
      - method: POST
        name: disconnectslack
        description: Disconnect Slack
        call: windmill-oauth.disconnectslack
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/w/{workspace}/oauth/disconnect-teams
      name: w-workspace-oauth-disconnect-teams
      description: REST surface for w-workspace-oauth-disconnect_teams.
      operations:
      - method: POST
        name: disconnectteams
        description: Disconnect Teams
        call: windmill-oauth.disconnectteams
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/w/{workspace}/oauth/refresh-token/{id}
      name: w-workspace-oauth-refresh-token-id
      description: REST surface for w-workspace-oauth-refresh_token-id.
      operations:
      - method: POST
        name: refreshtoken
        description: Refresh Token
        call: windmill-oauth.refreshtoken
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
  - type: mcp
    namespace: windmill-oauth-mcp
    port: 9090
    transport: http
    description: MCP adapter for Windmill API — oauth. One tool per consumed operation, routed inline through this capability's
      consumes block.
    tools:
    - name: connect-callback
      description: Connect Callback
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: windmill-oauth.connectcallback
      with:
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: connect-oauth-using-client-credentials
      description: Connect OAuth Using Client Credentials
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: windmill-oauth.connectclientcredentials
      with:
        client: tools.client
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: connect-slack-callback-instance
      description: Connect Slack Callback Instance
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: windmill-oauth.connectslackcallbackinstance
      with:
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: connect-slack-instance-non-interactive
      description: Connect Slack Instance (non-interactive; Pre-minted Bot Token)
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: windmill-oauth.connectslackinstance
      with:
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: get-oauth-connect
      description: Get Oauth Connect
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: windmill-oauth.getoauthconnect
      with:
        client: tools.client
      outputParameters:
      - type: object
        mapping: $.
    - name: list-oauth-connects
      description: List Oauth Connects
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: windmill-oauth.listoauthconnects
      outputParameters:
      - type: object
        mapping: $.
    - name: list-oauth-logins
      description: List Oauth Logins
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: windmill-oauth.listoauthlogins
      outputParameters:
      - type: object
        mapping: $.
    - name: connect-slack-callback
      description: Connect Slack Callback
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: windmill-oauth.connectslackcallback
      with:
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: create-oauth-account
      description: Create OAuth Account
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: windmill-oauth.createaccount
      with:
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: disconnect-account
      description: Disconnect Account
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: windmill-oauth.disconnectaccount
      outputParameters:
      - type: object
        mapping: $.
    - name: disconnect-slack
      description: Disconnect Slack
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: windmill-oauth.disconnectslack
      outputParameters:
      - type: object
        mapping: $.
    - name: disconnect-teams
      description: Disconnect Teams
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: windmill-oauth.disconnectteams
      outputParameters:
      - type: object
        mapping: $.
    - name: refresh-token
      description: Refresh Token
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: windmill-oauth.refreshtoken
      with:
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.