Moesif · Capability

Management API — Workspaces

Management API — Workspaces. 14 operations. Lead operation: Get new Workspace Token. Self-contained Naftiko capability covering one Moesif business surface.

Run with Naftiko MoesifWorkspaces

What You Can Do

GET
Getworkspacetoken — Get new Workspace Token
/v1/workspaces/access-token
GET
Getpublicworkspace — Get a Public Workspace
/v1/workspaces/public/{id}
POST
Createworkspace — Create New Workspace
/v1//workspaces
GET
Getworkspaces — Get Workspaces
/v1//workspaces
GET
Getworkspacetemplates — Get Workspace Templates
/v1//workspaces/templates
POST
Updateworkspace — Update a Workspace
/v1//workspaces/{id}
GET
Getworkspace — Get a Workspace
/v1//workspaces/{id}
DELETE
Deleteworkspace — Delete a Workspace
/v1//workspaces/{id}
POST
Createcomment — Create a New Comment
/v1//workspaces/{id}/comments
GET
Getcomments — Get all Comments
/v1//workspaces/{id}/comments
POST
Updatecomment — Update Existing Comment
/v1//workspaces/{id}/comments/{commentid}
DELETE
Deletecomment — Delete a Comment
/v1//workspaces/{id}/comments/{commentid}
POST
Addaclpermissions — Add ACL permission
/v1//workspaces/{id}/policy/acl
DELETE
Deleteaclpermissions — Delete ACL permission
/v1//workspaces/{id}/policy/acl

MCP Tools

get-new-workspace-token

Get new Workspace Token

read-only idempotent
get-public-workspace

Get a Public Workspace

read-only idempotent
create-new-workspace

Create New Workspace

get-workspaces

Get Workspaces

read-only idempotent
get-workspace-templates

Get Workspace Templates

read-only idempotent
update-workspace

Update a Workspace

get-workspace

Get a Workspace

read-only idempotent
delete-workspace

Delete a Workspace

idempotent
create-new-comment

Create a New Comment

get-all-comments

Get all Comments

read-only idempotent
update-existing-comment

Update Existing Comment

delete-comment

Delete a Comment

idempotent
add-acl-permission

Add ACL permission

delete-acl-permission

Delete ACL permission

idempotent

Capability Spec

moesif-workspaces.yaml Raw ↑
naftiko: 1.0.0-alpha2
info:
  label: Management API — Workspaces
  description: 'Management API — Workspaces. 14 operations. Lead operation: Get new Workspace Token. Self-contained Naftiko
    capability covering one Moesif business surface.'
  tags:
  - Moesif
  - Workspaces
  created: '2026-05-19'
  modified: '2026-05-19'
binds:
- namespace: env
  keys:
    MOESIF_API_KEY: MOESIF_API_KEY
capability:
  consumes:
  - type: http
    namespace: moesif-workspaces
    baseUri: https://api.moesif.com/v1
    description: Management API — Workspaces business capability. Self-contained, no shared references.
    resources:
    - name: workspaces-access_token
      path: /workspaces/access_token
      operations:
      - name: getworkspacetoken
        method: GET
        description: Get new Workspace Token
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: workspaces-public-id
      path: /workspaces/public/{id}
      operations:
      - name: getpublicworkspace
        method: GET
        description: Get a Public Workspace
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: id
          in: path
          type: string
          required: true
    - name: ~-workspaces
      path: /~/workspaces
      operations:
      - name: createworkspace
        method: POST
        description: Create New Workspace
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: orgId
          in: path
          type: string
          required: true
        - name: app_id
          in: query
          type: string
        - name: expiration
          in: query
          type: string
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
      - name: getworkspaces
        method: GET
        description: Get Workspaces
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: orgId
          in: path
          type: string
          required: true
        - name: app_id
          in: query
          type: string
        - name: take
          in: query
          type: integer
          required: true
        - name: before_id
          in: query
          type: string
        - name: '`type`'
          in: query
          type: string
        - name: access
          in: query
          type: array
          required: true
    - name: ~-workspaces-templates
      path: /~/workspaces/templates
      operations:
      - name: getworkspacetemplates
        method: GET
        description: Get Workspace Templates
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: orgId
          in: path
          type: string
          required: true
        - name: app_id
          in: query
          type: string
    - name: ~-workspaces-id
      path: /~/workspaces/{id}
      operations:
      - name: updateworkspace
        method: POST
        description: Update a Workspace
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: orgId
          in: path
          type: string
          required: true
        - name: app_id
          in: query
          type: string
        - name: id
          in: path
          type: string
          required: true
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
      - name: getworkspace
        method: GET
        description: Get a Workspace
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: orgId
          in: path
          type: string
          required: true
        - name: app_id
          in: query
          type: string
        - name: id
          in: path
          type: string
          required: true
      - name: deleteworkspace
        method: DELETE
        description: Delete a Workspace
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: orgId
          in: path
          type: string
          required: true
        - name: app_id
          in: query
          type: string
        - name: id
          in: path
          type: string
          required: true
    - name: ~-workspaces-id-comments
      path: /~/workspaces/{id}/comments
      operations:
      - name: createcomment
        method: POST
        description: Create a New Comment
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: orgId
          in: path
          type: string
          required: true
        - name: app_id
          in: query
          type: string
        - name: id
          in: path
          type: string
          required: true
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
      - name: getcomments
        method: GET
        description: Get all Comments
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: orgId
          in: path
          type: string
          required: true
        - name: app_id
          in: query
          type: string
        - name: id
          in: path
          type: string
          required: true
    - name: ~-workspaces-id-comments-commentId
      path: /~/workspaces/{id}/comments/{commentId}
      operations:
      - name: updatecomment
        method: POST
        description: Update Existing Comment
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: orgId
          in: path
          type: string
          required: true
        - name: app_id
          in: query
          type: string
        - name: id
          in: path
          type: string
          required: true
        - name: commentId
          in: path
          type: string
          required: true
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
      - name: deletecomment
        method: DELETE
        description: Delete a Comment
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: orgId
          in: path
          type: string
          required: true
        - name: app_id
          in: query
          type: string
        - name: id
          in: path
          type: string
          required: true
        - name: commentId
          in: path
          type: string
          required: true
    - name: ~-workspaces-id-policy-acl
      path: /~/workspaces/{id}/policy/acl
      operations:
      - name: addaclpermissions
        method: POST
        description: Add ACL permission
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: orgId
          in: path
          type: string
          required: true
        - name: app_id
          in: query
          type: string
        - name: id
          in: path
          type: string
          required: true
        - name: grantee
          in: query
          type: string
        - name: permission
          in: query
          type: string
      - name: deleteaclpermissions
        method: DELETE
        description: Delete ACL permission
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: orgId
          in: path
          type: string
          required: true
        - name: app_id
          in: query
          type: string
        - name: id
          in: path
          type: string
          required: true
        - name: grantee
          in: query
          type: string
          required: true
    authentication:
      type: bearer
      token: '{{env.MOESIF_API_KEY}}'
  exposes:
  - type: rest
    namespace: moesif-workspaces-rest
    port: 8080
    description: REST adapter for Management API — Workspaces. One Spectral-compliant resource per consumed operation, prefixed
      with /v1.
    resources:
    - path: /v1/workspaces/access-token
      name: workspaces-access-token
      description: REST surface for workspaces-access_token.
      operations:
      - method: GET
        name: getworkspacetoken
        description: Get new Workspace Token
        call: moesif-workspaces.getworkspacetoken
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/workspaces/public/{id}
      name: workspaces-public-id
      description: REST surface for workspaces-public-id.
      operations:
      - method: GET
        name: getpublicworkspace
        description: Get a Public Workspace
        call: moesif-workspaces.getpublicworkspace
        with:
          id: rest.id
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1//workspaces
      name: workspaces
      description: REST surface for ~-workspaces.
      operations:
      - method: POST
        name: createworkspace
        description: Create New Workspace
        call: moesif-workspaces.createworkspace
        with:
          orgId: rest.orgId
          app_id: rest.app_id
          expiration: rest.expiration
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
      - method: GET
        name: getworkspaces
        description: Get Workspaces
        call: moesif-workspaces.getworkspaces
        with:
          orgId: rest.orgId
          app_id: rest.app_id
          take: rest.take
          before_id: rest.before_id
          '`type`': rest.`type`
          access: rest.access
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1//workspaces/templates
      name: workspaces-templates
      description: REST surface for ~-workspaces-templates.
      operations:
      - method: GET
        name: getworkspacetemplates
        description: Get Workspace Templates
        call: moesif-workspaces.getworkspacetemplates
        with:
          orgId: rest.orgId
          app_id: rest.app_id
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1//workspaces/{id}
      name: workspaces-id
      description: REST surface for ~-workspaces-id.
      operations:
      - method: POST
        name: updateworkspace
        description: Update a Workspace
        call: moesif-workspaces.updateworkspace
        with:
          orgId: rest.orgId
          app_id: rest.app_id
          id: rest.id
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
      - method: GET
        name: getworkspace
        description: Get a Workspace
        call: moesif-workspaces.getworkspace
        with:
          orgId: rest.orgId
          app_id: rest.app_id
          id: rest.id
        outputParameters:
        - type: object
          mapping: $.
      - method: DELETE
        name: deleteworkspace
        description: Delete a Workspace
        call: moesif-workspaces.deleteworkspace
        with:
          orgId: rest.orgId
          app_id: rest.app_id
          id: rest.id
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1//workspaces/{id}/comments
      name: workspaces-id-comments
      description: REST surface for ~-workspaces-id-comments.
      operations:
      - method: POST
        name: createcomment
        description: Create a New Comment
        call: moesif-workspaces.createcomment
        with:
          orgId: rest.orgId
          app_id: rest.app_id
          id: rest.id
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
      - method: GET
        name: getcomments
        description: Get all Comments
        call: moesif-workspaces.getcomments
        with:
          orgId: rest.orgId
          app_id: rest.app_id
          id: rest.id
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1//workspaces/{id}/comments/{commentid}
      name: workspaces-id-comments-commentid
      description: REST surface for ~-workspaces-id-comments-commentId.
      operations:
      - method: POST
        name: updatecomment
        description: Update Existing Comment
        call: moesif-workspaces.updatecomment
        with:
          orgId: rest.orgId
          app_id: rest.app_id
          id: rest.id
          commentId: rest.commentId
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
      - method: DELETE
        name: deletecomment
        description: Delete a Comment
        call: moesif-workspaces.deletecomment
        with:
          orgId: rest.orgId
          app_id: rest.app_id
          id: rest.id
          commentId: rest.commentId
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1//workspaces/{id}/policy/acl
      name: workspaces-id-policy-acl
      description: REST surface for ~-workspaces-id-policy-acl.
      operations:
      - method: POST
        name: addaclpermissions
        description: Add ACL permission
        call: moesif-workspaces.addaclpermissions
        with:
          orgId: rest.orgId
          app_id: rest.app_id
          id: rest.id
          grantee: rest.grantee
          permission: rest.permission
        outputParameters:
        - type: object
          mapping: $.
      - method: DELETE
        name: deleteaclpermissions
        description: Delete ACL permission
        call: moesif-workspaces.deleteaclpermissions
        with:
          orgId: rest.orgId
          app_id: rest.app_id
          id: rest.id
          grantee: rest.grantee
        outputParameters:
        - type: object
          mapping: $.
  - type: mcp
    namespace: moesif-workspaces-mcp
    port: 9090
    transport: http
    description: MCP adapter for Management API — Workspaces. One tool per consumed operation, routed inline through this
      capability's consumes block.
    tools:
    - name: get-new-workspace-token
      description: Get new Workspace Token
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: moesif-workspaces.getworkspacetoken
      outputParameters:
      - type: object
        mapping: $.
    - name: get-public-workspace
      description: Get a Public Workspace
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: moesif-workspaces.getpublicworkspace
      with:
        id: tools.id
      outputParameters:
      - type: object
        mapping: $.
    - name: create-new-workspace
      description: Create New Workspace
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: moesif-workspaces.createworkspace
      with:
        orgId: tools.orgId
        app_id: tools.app_id
        expiration: tools.expiration
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: get-workspaces
      description: Get Workspaces
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: moesif-workspaces.getworkspaces
      with:
        orgId: tools.orgId
        app_id: tools.app_id
        take: tools.take
        before_id: tools.before_id
        '`type`': tools.`type`
        access: tools.access
      outputParameters:
      - type: object
        mapping: $.
    - name: get-workspace-templates
      description: Get Workspace Templates
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: moesif-workspaces.getworkspacetemplates
      with:
        orgId: tools.orgId
        app_id: tools.app_id
      outputParameters:
      - type: object
        mapping: $.
    - name: update-workspace
      description: Update a Workspace
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: moesif-workspaces.updateworkspace
      with:
        orgId: tools.orgId
        app_id: tools.app_id
        id: tools.id
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: get-workspace
      description: Get a Workspace
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: moesif-workspaces.getworkspace
      with:
        orgId: tools.orgId
        app_id: tools.app_id
        id: tools.id
      outputParameters:
      - type: object
        mapping: $.
    - name: delete-workspace
      description: Delete a Workspace
      hints:
        readOnly: false
        destructive: true
        idempotent: true
      call: moesif-workspaces.deleteworkspace
      with:
        orgId: tools.orgId
        app_id: tools.app_id
        id: tools.id
      outputParameters:
      - type: object
        mapping: $.
    - name: create-new-comment
      description: Create a New Comment
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: moesif-workspaces.createcomment
      with:
        orgId: tools.orgId
        app_id: tools.app_id
        id: tools.id
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: get-all-comments
      description: Get all Comments
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: moesif-workspaces.getcomments
      with:
        orgId: tools.orgId
        app_id: tools.app_id
        id: tools.id
      outputParameters:
      - type: object
        mapping: $.
    - name: update-existing-comment
      description: Update Existing Comment
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: moesif-workspaces.updatecomment
      with:
        orgId: tools.orgId
        app_id: tools.app_id
        id: tools.id
        commentId: tools.commentId
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: delete-comment
      description: Delete a Comment
      hints:
        readOnly: false
        destructive: true
        idempotent: true
      call: moesif-workspaces.deletecomment
      with:
        orgId: tools.orgId
        app_id: tools.app_id
        id: tools.id
        commentId: tools.commentId
      outputParameters:
      - type: object
        mapping: $.
    - name: add-acl-permission
      description: Add ACL permission
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: moesif-workspaces.addaclpermissions
      with:
        orgId: tools.orgId
        app_id: tools.app_id
        id: tools.id
        grantee: tools.grantee
        permission: tools.permission
      outputParameters:
      - type: object
        mapping: $.
    - name: delete-acl-permission
      description: Delete ACL permission
      hints:
        readOnly: false
        destructive: true
        idempotent: true
      call: moesif-workspaces.deleteaclpermissions
      with:
        orgId: tools.orgId
        app_id: tools.app_id
        id: tools.id
        grantee: tools.grantee
      outputParameters:
      - type: object
        mapping: $.