naftiko: 1.0.0-alpha2 info: label: fabric Customers — Profiles description: 'fabric Customers — Profiles. 8 operations. Lead operation: Add a New Customer. Self-contained Naftiko capability covering one fabric business surface.' tags: - Fabric - Profiles created: '2026-05-25' modified: '2026-05-25' binds: - namespace: env keys: FABRIC_ACCESS_TOKEN: FABRIC_ACCESS_TOKEN capability: consumes: - type: http namespace: customers-customers baseUri: https://api.fabric.inc/v3 description: fabric Customers — Profiles consumed operations from fabric-customers-openapi.yml. resources: - name: customers path: /Customers operations: - name: add-a-new-customer method: POST description: 'Add a New Customer' outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: get-customers method: GET description: 'Get Customers' outputRawFormat: json outputParameters: - name: result type: object value: $. - name: customers-customerid path: /customers/{customerId} operations: - name: get-customer-details method: GET description: 'Get Customer Details' outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: customerId in: path type: string required: true - name: update-customer-details method: PUT description: 'Update Customer Details' outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: customerId in: path type: string required: true - name: body in: body type: object description: Request body (JSON). required: true - name: partially-update-customer-details method: PATCH description: 'Partially Update Customer Details' outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: customerId in: path type: string required: true - name: body in: body type: object description: Request body (JSON). required: true - name: delete-customer method: DELETE description: 'Delete Customer' outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: customerId in: path type: string required: true - name: customers-customerid-actions-update-status path: /customers/{customerId}/actions/update-status operations: - name: update-customer-status method: POST description: 'Update Customer Status' outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: customerId in: path type: string required: true - name: body in: body type: object description: Request body (JSON). required: true - name: customers-search path: /customers/search operations: - name: search-for-customer method: POST description: 'Search for Customer' outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true authentication: type: bearer value: '{{env.FABRIC_ACCESS_TOKEN}}' placement: header exposes: - type: rest namespace: customers-customers-rest port: 8080 description: REST adapter for fabric Customers — Profiles. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/Customers name: customers description: REST surface for customers. operations: - method: POST name: add-a-new-customer description: 'Add a New Customer' call: customers-customers.add-a-new-customer with: body: rest.body outputParameters: - type: object mapping: $. - method: GET name: get-customers description: 'Get Customers' call: customers-customers.get-customers outputParameters: - type: object mapping: $. - path: /v1/customers/{customerId} name: customers-customerid description: REST surface for customers-customerid. operations: - method: GET name: get-customer-details description: 'Get Customer Details' call: customers-customers.get-customer-details with: customerId: rest.path.customerId outputParameters: - type: object mapping: $. - method: PUT name: update-customer-details description: 'Update Customer Details' call: customers-customers.update-customer-details with: customerId: rest.path.customerId body: rest.body outputParameters: - type: object mapping: $. - method: PATCH name: partially-update-customer-details description: 'Partially Update Customer Details' call: customers-customers.partially-update-customer-details with: customerId: rest.path.customerId body: rest.body outputParameters: - type: object mapping: $. - method: DELETE name: delete-customer description: 'Delete Customer' call: customers-customers.delete-customer with: customerId: rest.path.customerId outputParameters: - type: object mapping: $. - path: /v1/customers/{customerId}/actions/update-status name: customers-customerid-actions-update-status description: REST surface for customers-customerid-actions-update-status. operations: - method: POST name: update-customer-status description: 'Update Customer Status' call: customers-customers.update-customer-status with: customerId: rest.path.customerId body: rest.body outputParameters: - type: object mapping: $. - path: /v1/customers/search name: customers-search description: REST surface for customers-search. operations: - method: POST name: search-for-customer description: 'Search for Customer' call: customers-customers.search-for-customer with: body: rest.body outputParameters: - type: object mapping: $. - type: mcp namespace: customers-customers-mcp port: 9090 transport: http description: MCP adapter for fabric Customers — Profiles. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: fabric-add-a-new-customer description: 'Add a New Customer' hints: readOnly: false destructive: false idempotent: false call: customers-customers.add-a-new-customer with: body: tools.body outputParameters: - type: object mapping: $. - name: fabric-get-customers description: 'Get Customers' hints: readOnly: true destructive: false idempotent: true call: customers-customers.get-customers outputParameters: - type: object mapping: $. - name: fabric-get-customer-details description: 'Get Customer Details' hints: readOnly: true destructive: false idempotent: true call: customers-customers.get-customer-details with: customerId: tools.customerId outputParameters: - type: object mapping: $. - name: fabric-update-customer-details description: 'Update Customer Details' hints: readOnly: false destructive: false idempotent: true call: customers-customers.update-customer-details with: customerId: tools.customerId body: tools.body outputParameters: - type: object mapping: $. - name: fabric-partially-update-customer-details description: 'Partially Update Customer Details' hints: readOnly: false destructive: false idempotent: false call: customers-customers.partially-update-customer-details with: customerId: tools.customerId body: tools.body outputParameters: - type: object mapping: $. - name: fabric-delete-customer description: 'Delete Customer' hints: readOnly: false destructive: true idempotent: true call: customers-customers.delete-customer with: customerId: tools.customerId outputParameters: - type: object mapping: $. - name: fabric-update-customer-status description: 'Update Customer Status' hints: readOnly: false destructive: false idempotent: false call: customers-customers.update-customer-status with: customerId: tools.customerId body: tools.body outputParameters: - type: object mapping: $. - name: fabric-search-for-customer description: 'Search for Customer' hints: readOnly: false destructive: false idempotent: false call: customers-customers.search-for-customer with: body: tools.body outputParameters: - type: object mapping: $.