naftiko: 1.0.0-alpha2 info: label: Port API — Integrations description: 'Port API — Integrations. 7 operations. Lead operation: Get all integrations. Self-contained Naftiko capability covering one Port business surface.' tags: - Port - Integrations created: '2026-05-19' modified: '2026-05-19' binds: - namespace: env keys: PORT_API_KEY: PORT_API_KEY capability: consumes: - type: http namespace: port-integrations baseUri: '' description: Port API — Integrations business capability. Self-contained, no shared references. resources: - name: v1-integration path: /v1/integration operations: - name: get method: GET description: Get all integrations outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: actionsProcessingEnabled in: query type: boolean description: filter by integrations that has actions processing enabled - name: v1-integration-metadata path: /v1/integration/metadata operations: - name: get method: GET description: Get all integrations meta-data (member view) outputRawFormat: json outputParameters: - name: result type: object value: $. - name: v1-integration-identifier path: /v1/integration/{identifier} operations: - name: get method: GET description: Get an integration outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: byField in: query type: string description: The field used to identify the integration. When set to `logIngestId`, the `identifier` parameter should be changed accordingly. - name: isPolling in: query type: boolean description: Whether to return the integration in polling mode. - name: oceanCoreVersion in: query type: string description: The version of the core to use. - name: identifier in: path type: string description: The unique identifier of the resource you want to operate on. required: true - name: patch method: PATCH description: Update an integration outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: identifier in: path type: string description: The unique identifier of the resource you want to operate on. required: true - name: body in: body type: object description: Request body (JSON). required: false - name: delete method: DELETE description: Delete an integration outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: identifier in: path type: string description: The unique identifier of the resource you want to operate on. required: true - name: v1-integration-identifier-config path: /v1/integration/{identifier}/config operations: - name: patch method: PATCH description: Update an integration's config outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: identifier in: path type: string description: The unique identifier of the resource you want to operate on. required: true - name: body in: body type: object description: Request body (JSON). required: true - name: v1-integration-identifier-logs path: /v1/integration/{identifier}/logs operations: - name: get method: GET description: Get an integration's event logs outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: limit in: query type: number description: The number of logs to fetch per page. - name: timestamp in: query type: string description: The date of time from which to fetch the logs, in `ISO format IE 2022-04-23T18:25:43.511Z`. - name: log_id in: query type: string description: The identifier of the log. - name: direction in: query type: string description: Determines whether to fetch logs before or after the specified timestamp. - name: event_id in: query type: string description: Filter logs belonging to a specific event. - name: levels in: query type: array description: Filter logs by severity level. - name: etl_phases in: query type: array description: Filter logs by ETL phases. - name: kinds in: query type: array description: Filter logs by kinds (e.g `pull-request`, `branch` for GitHub, `issue` for Jira, etc.) - name: identifier in: path type: string description: The unique identifier of the resource you want to operate on. required: true authentication: type: apikey key: Authorization value: '{{env.PORT_API_KEY}}' placement: header exposes: - type: rest namespace: port-integrations-rest port: 8080 description: REST adapter for Port API — Integrations. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/v1/integration name: v1-integration description: REST surface for v1-integration. operations: - method: GET name: get description: Get all integrations call: port-integrations.get with: actionsProcessingEnabled: rest.actionsProcessingEnabled outputParameters: - type: object mapping: $. - path: /v1/v1/integration/metadata name: v1-integration-metadata description: REST surface for v1-integration-metadata. operations: - method: GET name: get description: Get all integrations meta-data (member view) call: port-integrations.get outputParameters: - type: object mapping: $. - path: /v1/v1/integration/{identifier} name: v1-integration-identifier description: REST surface for v1-integration-identifier. operations: - method: GET name: get description: Get an integration call: port-integrations.get with: byField: rest.byField isPolling: rest.isPolling oceanCoreVersion: rest.oceanCoreVersion identifier: rest.identifier outputParameters: - type: object mapping: $. - method: PATCH name: patch description: Update an integration call: port-integrations.patch with: identifier: rest.identifier body: rest.body outputParameters: - type: object mapping: $. - method: DELETE name: delete description: Delete an integration call: port-integrations.delete with: identifier: rest.identifier outputParameters: - type: object mapping: $. - path: /v1/v1/integration/{identifier}/config name: v1-integration-identifier-config description: REST surface for v1-integration-identifier-config. operations: - method: PATCH name: patch description: Update an integration's config call: port-integrations.patch with: identifier: rest.identifier body: rest.body outputParameters: - type: object mapping: $. - path: /v1/v1/integration/{identifier}/logs name: v1-integration-identifier-logs description: REST surface for v1-integration-identifier-logs. operations: - method: GET name: get description: Get an integration's event logs call: port-integrations.get with: limit: rest.limit timestamp: rest.timestamp log_id: rest.log_id direction: rest.direction event_id: rest.event_id levels: rest.levels etl_phases: rest.etl_phases kinds: rest.kinds identifier: rest.identifier outputParameters: - type: object mapping: $. - type: mcp namespace: port-integrations-mcp port: 9090 transport: http description: MCP adapter for Port API — Integrations. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: get-all-integrations description: Get all integrations hints: readOnly: true destructive: false idempotent: true call: port-integrations.get with: actionsProcessingEnabled: tools.actionsProcessingEnabled outputParameters: - type: object mapping: $. - name: get-all-integrations-meta-data description: Get all integrations meta-data (member view) hints: readOnly: true destructive: false idempotent: true call: port-integrations.get outputParameters: - type: object mapping: $. - name: get-integration description: Get an integration hints: readOnly: true destructive: false idempotent: true call: port-integrations.get with: byField: tools.byField isPolling: tools.isPolling oceanCoreVersion: tools.oceanCoreVersion identifier: tools.identifier outputParameters: - type: object mapping: $. - name: update-integration description: Update an integration hints: readOnly: false destructive: false idempotent: true call: port-integrations.patch with: identifier: tools.identifier body: tools.body outputParameters: - type: object mapping: $. - name: delete-integration description: Delete an integration hints: readOnly: false destructive: true idempotent: true call: port-integrations.delete with: identifier: tools.identifier outputParameters: - type: object mapping: $. - name: update-integration-s-config description: Update an integration's config hints: readOnly: false destructive: false idempotent: true call: port-integrations.patch with: identifier: tools.identifier body: tools.body outputParameters: - type: object mapping: $. - name: get-integration-s-event-logs description: Get an integration's event logs hints: readOnly: true destructive: false idempotent: true call: port-integrations.get with: limit: tools.limit timestamp: tools.timestamp log_id: tools.log_id direction: tools.direction event_id: tools.event_id levels: tools.levels etl_phases: tools.etl_phases kinds: tools.kinds identifier: tools.identifier outputParameters: - type: object mapping: $.