naftiko: 1.0.0-alpha2 info: label: Core — workspace description: 'Core — workspace. 8 operations. Lead operation: Check availability for workspace namespace and slug. Self-contained Naftiko capability covering one business surface.' tags: - Scalar - workspace created: '2026-05-20' modified: '2026-05-20' binds: - namespace: env keys: SCALAR_API_KEY: SCALAR_API_KEY capability: consumes: - type: http namespace: core-workspace baseUri: https://example.com description: Core — workspace business capability. Self-contained, no shared references. resources: - name: workspaces-namespace path: /workspaces/{namespace} operations: - name: postworkspacesnamespace method: POST description: Creates a new workspace outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: namespace in: path type: string description: path parameter namespace. required: true - name: body in: body type: object description: Request body (JSON). required: true - name: workspaces-namespace-slug path: /workspaces/{namespace}/{slug} operations: - name: patchworkspacesnamespaceslug method: PATCH description: Update team workspace metadata outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: namespace in: path type: string description: path parameter namespace. required: true - name: slug in: path type: string description: path parameter slug. required: true - name: body in: body type: object description: Request body (JSON). required: true - name: deleteworkspacesnamespaceslug method: DELETE description: Delete a team workspace outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: namespace in: path type: string description: path parameter namespace. required: true - name: slug in: path type: string description: path parameter slug. required: true - name: workspaces-namespace-slug-version path: /workspaces/{namespace}/{slug}/version operations: - name: postworkspacesnamespaceslugversion method: POST description: Create or update a workspace JSON version outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: namespace in: path type: string description: path parameter namespace. required: true - name: slug in: path type: string description: path parameter slug. required: true - name: body in: body type: object description: Request body (JSON). required: true - name: workspaces-namespace-slug-access-group path: /workspaces/{namespace}/{slug}/access/{group} operations: - name: postworkspacesnamespaceslugaccessgroup method: POST description: Adds an access group to a workspace outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: namespace in: path type: string description: path parameter namespace. required: true - name: slug in: path type: string description: path parameter slug. required: true - name: group in: path type: string description: path parameter group. required: true - name: body in: body type: object description: Request body (JSON). required: true - name: deleteworkspacesnamespaceslugaccessgroup method: DELETE description: Removes an access group from a workspace outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: namespace in: path type: string description: path parameter namespace. required: true - name: slug in: path type: string description: path parameter slug. required: true - name: group in: path type: string description: path parameter group. required: true - name: workspaces-namespace-slug-available path: /workspaces/{namespace}/{slug}/available operations: - name: getworkspacesnamespaceslugavailable method: GET description: Check availability for workspace namespace and slug outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: namespace in: path type: string description: path parameter namespace. required: true - name: slug in: path type: string description: path parameter slug. required: true - name: workspaces-namespace-slug-version-version path: /workspaces/{namespace}/{slug}/version/{version} operations: - name: deleteworkspacesnamespaceslugversionversion method: DELETE description: Delete a team workspace version outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: namespace in: path type: string description: path parameter namespace. required: true - name: slug in: path type: string description: path parameter slug. required: true - name: version in: path type: string description: path parameter version. required: true exposes: - type: rest namespace: core-workspace-rest port: 8080 description: REST adapter for Core — workspace. One resource per consumed operation, prefixed with /v1. resources: - path: /v1/workspaces/{namespace} name: workspaces-namespace description: REST surface for workspaces-namespace. operations: - method: POST name: postworkspacesnamespace description: Creates a new workspace call: core-workspace.postworkspacesnamespace with: namespace: rest.namespace body: rest.body outputParameters: - type: object mapping: $. - path: /v1/workspaces/{namespace}/{slug} name: workspaces-namespace-slug description: REST surface for workspaces-namespace-slug. operations: - method: PATCH name: patchworkspacesnamespaceslug description: Update team workspace metadata call: core-workspace.patchworkspacesnamespaceslug with: namespace: rest.namespace slug: rest.slug body: rest.body outputParameters: - type: object mapping: $. - method: DELETE name: deleteworkspacesnamespaceslug description: Delete a team workspace call: core-workspace.deleteworkspacesnamespaceslug with: namespace: rest.namespace slug: rest.slug outputParameters: - type: object mapping: $. - path: /v1/workspaces/{namespace}/{slug}/version name: workspaces-namespace-slug-version description: REST surface for workspaces-namespace-slug-version. operations: - method: POST name: postworkspacesnamespaceslugversion description: Create or update a workspace JSON version call: core-workspace.postworkspacesnamespaceslugversion with: namespace: rest.namespace slug: rest.slug body: rest.body outputParameters: - type: object mapping: $. - path: /v1/workspaces/{namespace}/{slug}/access/{group} name: workspaces-namespace-slug-access-group description: REST surface for workspaces-namespace-slug-access-group. operations: - method: POST name: postworkspacesnamespaceslugaccessgroup description: Adds an access group to a workspace call: core-workspace.postworkspacesnamespaceslugaccessgroup with: namespace: rest.namespace slug: rest.slug group: rest.group body: rest.body outputParameters: - type: object mapping: $. - method: DELETE name: deleteworkspacesnamespaceslugaccessgroup description: Removes an access group from a workspace call: core-workspace.deleteworkspacesnamespaceslugaccessgroup with: namespace: rest.namespace slug: rest.slug group: rest.group outputParameters: - type: object mapping: $. - path: /v1/workspaces/{namespace}/{slug}/available name: workspaces-namespace-slug-available description: REST surface for workspaces-namespace-slug-available. operations: - method: GET name: getworkspacesnamespaceslugavailable description: Check availability for workspace namespace and slug call: core-workspace.getworkspacesnamespaceslugavailable with: namespace: rest.namespace slug: rest.slug outputParameters: - type: object mapping: $. - path: /v1/workspaces/{namespace}/{slug}/version/{version} name: workspaces-namespace-slug-version-version description: REST surface for workspaces-namespace-slug-version-version. operations: - method: DELETE name: deleteworkspacesnamespaceslugversionversion description: Delete a team workspace version call: core-workspace.deleteworkspacesnamespaceslugversionversion with: namespace: rest.namespace slug: rest.slug version: rest.version outputParameters: - type: object mapping: $. - type: mcp namespace: core-workspace-mcp port: 9090 transport: http description: MCP adapter for Core — workspace. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: scalar-postworkspacesnamespace description: Creates a new workspace hints: readOnly: false destructive: false idempotent: false call: core-workspace.postworkspacesnamespace with: namespace: tools.namespace body: tools.body outputParameters: - type: object mapping: $. - name: scalar-patchworkspacesnamespaceslug description: Update team workspace metadata hints: readOnly: false destructive: false idempotent: false call: core-workspace.patchworkspacesnamespaceslug with: namespace: tools.namespace slug: tools.slug body: tools.body outputParameters: - type: object mapping: $. - name: scalar-deleteworkspacesnamespaceslug description: Delete a team workspace hints: readOnly: false destructive: true idempotent: true call: core-workspace.deleteworkspacesnamespaceslug with: namespace: tools.namespace slug: tools.slug outputParameters: - type: object mapping: $. - name: scalar-postworkspacesnamespaceslugversion description: Create or update a workspace JSON version hints: readOnly: false destructive: false idempotent: false call: core-workspace.postworkspacesnamespaceslugversion with: namespace: tools.namespace slug: tools.slug body: tools.body outputParameters: - type: object mapping: $. - name: scalar-postworkspacesnamespaceslugaccessgroup description: Adds an access group to a workspace hints: readOnly: false destructive: false idempotent: false call: core-workspace.postworkspacesnamespaceslugaccessgroup with: namespace: tools.namespace slug: tools.slug group: tools.group body: tools.body outputParameters: - type: object mapping: $. - name: scalar-deleteworkspacesnamespaceslugaccessgroup description: Removes an access group from a workspace hints: readOnly: false destructive: true idempotent: true call: core-workspace.deleteworkspacesnamespaceslugaccessgroup with: namespace: tools.namespace slug: tools.slug group: tools.group outputParameters: - type: object mapping: $. - name: scalar-getworkspacesnamespaceslugavailable description: Check availability for workspace namespace and slug hints: readOnly: true destructive: false idempotent: true call: core-workspace.getworkspacesnamespaceslugavailable with: namespace: tools.namespace slug: tools.slug outputParameters: - type: object mapping: $. - name: scalar-deleteworkspacesnamespaceslugversionversion description: Delete a team workspace version hints: readOnly: false destructive: true idempotent: true call: core-workspace.deleteworkspacesnamespaceslugversionversion with: namespace: tools.namespace slug: tools.slug version: tools.version outputParameters: - type: object mapping: $.