Windmill · Capability

Windmill API — folder

Windmill API — folder. 11 operations. Lead operation: Add Owner to Folder. Self-contained Naftiko capability covering one Windmill business surface.

Run with Naftiko Windmillfolder

What You Can Do

POST
Addownertofolder — Add Owner to Folder
/v1/w/{workspace}/folders/addowner/{name}
POST
Createfolder — Create Folder
/v1/w/{workspace}/folders/create
DELETE
Deletefolder — Delete Folder
/v1/w/{workspace}/folders/delete/{name}
GET
Existsfolder — Exists Folder
/v1/w/{workspace}/folders/exists/{name}
GET
Getfolder — Get Folder
/v1/w/{workspace}/folders/get/{name}
GET
Getfolderusage — Get Folder Usage
/v1/w/{workspace}/folders/getusage/{name}
GET
Listfolders — List Folders
/v1/w/{workspace}/folders/list
GET
Listfoldernames — List Folder Names
/v1/w/{workspace}/folders/listnames
POST
Removeownertofolder — Remove Owner to Folder
/v1/w/{workspace}/folders/removeowner/{name}
POST
Updatefolder — Update Folder
/v1/w/{workspace}/folders/update/{name}
GET
Getfolderpermissionhistory — Get Folder Permission History
/v1/w/{workspace}/folders-history/get/{name}

MCP Tools

add-owner-folder

Add Owner to Folder

create-folder

Create Folder

delete-folder

Delete Folder

idempotent
exists-folder

Exists Folder

read-only idempotent
get-folder

Get Folder

read-only idempotent
get-folder-usage

Get Folder Usage

read-only idempotent
list-folders

List Folders

read-only idempotent
list-folder-names

List Folder Names

read-only idempotent
remove-owner-folder

Remove Owner to Folder

update-folder

Update Folder

get-folder-permission-history

Get Folder Permission History

read-only idempotent

Capability Spec

windmill-folder.yaml Raw ↑
naftiko: 1.0.0-alpha2
info:
  label: Windmill API — folder
  description: 'Windmill API — folder. 11 operations. Lead operation: Add Owner to Folder. Self-contained Naftiko capability
    covering one Windmill business surface.'
  tags:
  - Windmill
  - folder
  created: '2026-05-19'
  modified: '2026-05-19'
binds:
- namespace: env
  keys:
    WINDMILL_API_KEY: WINDMILL_API_KEY
capability:
  consumes:
  - type: http
    namespace: windmill-folder
    baseUri: ''
    description: Windmill API — folder business capability. Self-contained, no shared references.
    resources:
    - name: w-workspace-folders-addowner-name
      path: /w/{workspace}/folders/addowner/{name}
      operations:
      - name: addownertofolder
        method: POST
        description: Add Owner to Folder
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: w-workspace-folders-create
      path: /w/{workspace}/folders/create
      operations:
      - name: createfolder
        method: POST
        description: Create Folder
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: w-workspace-folders-delete-name
      path: /w/{workspace}/folders/delete/{name}
      operations:
      - name: deletefolder
        method: DELETE
        description: Delete Folder
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: w-workspace-folders-exists-name
      path: /w/{workspace}/folders/exists/{name}
      operations:
      - name: existsfolder
        method: GET
        description: Exists Folder
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: w-workspace-folders-get-name
      path: /w/{workspace}/folders/get/{name}
      operations:
      - name: getfolder
        method: GET
        description: Get Folder
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: w-workspace-folders-getusage-name
      path: /w/{workspace}/folders/getusage/{name}
      operations:
      - name: getfolderusage
        method: GET
        description: Get Folder Usage
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: w-workspace-folders-list
      path: /w/{workspace}/folders/list
      operations:
      - name: listfolders
        method: GET
        description: List Folders
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: w-workspace-folders-listnames
      path: /w/{workspace}/folders/listnames
      operations:
      - name: listfoldernames
        method: GET
        description: List Folder Names
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: only_member_of
          in: query
          type: boolean
          description: only list the folders the user is member of (default false)
    - name: w-workspace-folders-removeowner-name
      path: /w/{workspace}/folders/removeowner/{name}
      operations:
      - name: removeownertofolder
        method: POST
        description: Remove Owner to Folder
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: w-workspace-folders-update-name
      path: /w/{workspace}/folders/update/{name}
      operations:
      - name: updatefolder
        method: POST
        description: Update Folder
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: w-workspace-folders_history-get-name
      path: /w/{workspace}/folders_history/get/{name}
      operations:
      - name: getfolderpermissionhistory
        method: GET
        description: Get Folder Permission History
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    authentication:
      type: bearer
      token: '{{env.WINDMILL_API_KEY}}'
  exposes:
  - type: rest
    namespace: windmill-folder-rest
    port: 8080
    description: REST adapter for Windmill API — folder. One Spectral-compliant resource per consumed operation, prefixed
      with /v1.
    resources:
    - path: /v1/w/{workspace}/folders/addowner/{name}
      name: w-workspace-folders-addowner-name
      description: REST surface for w-workspace-folders-addowner-name.
      operations:
      - method: POST
        name: addownertofolder
        description: Add Owner to Folder
        call: windmill-folder.addownertofolder
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/w/{workspace}/folders/create
      name: w-workspace-folders-create
      description: REST surface for w-workspace-folders-create.
      operations:
      - method: POST
        name: createfolder
        description: Create Folder
        call: windmill-folder.createfolder
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/w/{workspace}/folders/delete/{name}
      name: w-workspace-folders-delete-name
      description: REST surface for w-workspace-folders-delete-name.
      operations:
      - method: DELETE
        name: deletefolder
        description: Delete Folder
        call: windmill-folder.deletefolder
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/w/{workspace}/folders/exists/{name}
      name: w-workspace-folders-exists-name
      description: REST surface for w-workspace-folders-exists-name.
      operations:
      - method: GET
        name: existsfolder
        description: Exists Folder
        call: windmill-folder.existsfolder
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/w/{workspace}/folders/get/{name}
      name: w-workspace-folders-get-name
      description: REST surface for w-workspace-folders-get-name.
      operations:
      - method: GET
        name: getfolder
        description: Get Folder
        call: windmill-folder.getfolder
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/w/{workspace}/folders/getusage/{name}
      name: w-workspace-folders-getusage-name
      description: REST surface for w-workspace-folders-getusage-name.
      operations:
      - method: GET
        name: getfolderusage
        description: Get Folder Usage
        call: windmill-folder.getfolderusage
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/w/{workspace}/folders/list
      name: w-workspace-folders-list
      description: REST surface for w-workspace-folders-list.
      operations:
      - method: GET
        name: listfolders
        description: List Folders
        call: windmill-folder.listfolders
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/w/{workspace}/folders/listnames
      name: w-workspace-folders-listnames
      description: REST surface for w-workspace-folders-listnames.
      operations:
      - method: GET
        name: listfoldernames
        description: List Folder Names
        call: windmill-folder.listfoldernames
        with:
          only_member_of: rest.only_member_of
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/w/{workspace}/folders/removeowner/{name}
      name: w-workspace-folders-removeowner-name
      description: REST surface for w-workspace-folders-removeowner-name.
      operations:
      - method: POST
        name: removeownertofolder
        description: Remove Owner to Folder
        call: windmill-folder.removeownertofolder
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/w/{workspace}/folders/update/{name}
      name: w-workspace-folders-update-name
      description: REST surface for w-workspace-folders-update-name.
      operations:
      - method: POST
        name: updatefolder
        description: Update Folder
        call: windmill-folder.updatefolder
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/w/{workspace}/folders-history/get/{name}
      name: w-workspace-folders-history-get-name
      description: REST surface for w-workspace-folders_history-get-name.
      operations:
      - method: GET
        name: getfolderpermissionhistory
        description: Get Folder Permission History
        call: windmill-folder.getfolderpermissionhistory
        outputParameters:
        - type: object
          mapping: $.
  - type: mcp
    namespace: windmill-folder-mcp
    port: 9090
    transport: http
    description: MCP adapter for Windmill API — folder. One tool per consumed operation, routed inline through this capability's
      consumes block.
    tools:
    - name: add-owner-folder
      description: Add Owner to Folder
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: windmill-folder.addownertofolder
      with:
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: create-folder
      description: Create Folder
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: windmill-folder.createfolder
      with:
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: delete-folder
      description: Delete Folder
      hints:
        readOnly: false
        destructive: true
        idempotent: true
      call: windmill-folder.deletefolder
      outputParameters:
      - type: object
        mapping: $.
    - name: exists-folder
      description: Exists Folder
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: windmill-folder.existsfolder
      outputParameters:
      - type: object
        mapping: $.
    - name: get-folder
      description: Get Folder
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: windmill-folder.getfolder
      outputParameters:
      - type: object
        mapping: $.
    - name: get-folder-usage
      description: Get Folder Usage
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: windmill-folder.getfolderusage
      outputParameters:
      - type: object
        mapping: $.
    - name: list-folders
      description: List Folders
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: windmill-folder.listfolders
      outputParameters:
      - type: object
        mapping: $.
    - name: list-folder-names
      description: List Folder Names
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: windmill-folder.listfoldernames
      with:
        only_member_of: tools.only_member_of
      outputParameters:
      - type: object
        mapping: $.
    - name: remove-owner-folder
      description: Remove Owner to Folder
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: windmill-folder.removeownertofolder
      with:
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: update-folder
      description: Update Folder
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: windmill-folder.updatefolder
      with:
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: get-folder-permission-history
      description: Get Folder Permission History
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: windmill-folder.getfolderpermissionhistory
      outputParameters:
      - type: object
        mapping: $.