naftiko: 1.0.0-alpha2 info: label: Salesforce REST API — Composite description: 'Salesforce REST API — Composite. 6 operations. Lead operation: Salesforce Execute a Composite Request With Dependent Subrequests. Self-contained Naftiko capability covering one Salesforce business surface.' tags: - Salesforce - Composite created: '2026-05-19' modified: '2026-05-19' binds: - namespace: env keys: SALESFORCE_API_KEY: SALESFORCE_API_KEY capability: consumes: - type: http namespace: rest-composite baseUri: https://{instance}.salesforce.com/services/data/v{version} description: Salesforce REST API — Composite business capability. Self-contained, no shared references. resources: - name: composite path: /composite operations: - name: executecompositerequest method: POST description: Salesforce Execute a Composite Request With Dependent Subrequests outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: composite-batch path: /composite/batch operations: - name: executebatchrequest method: POST description: Salesforce Execute a Batch of Requests outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: composite-sobjects path: /composite/sobjects operations: - name: collectionscreate method: POST description: Salesforce Sobject Collections Create outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: collectionsupdate method: PATCH description: Salesforce Sobject Collections Update outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: collectionsdelete method: DELETE description: Salesforce Sobject Collections Delete outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: ids in: query type: string description: Comma-separated list of up to 200 record IDs to delete. required: true - name: allOrNone in: query type: boolean description: If true, all records must be deleted successfully or none are committed. Defaults to false. - name: composite-sobjects-sobjectType path: /composite/sobjects/{sobjectType} operations: - name: collectionsretrieve method: GET description: Salesforce Sobject Collections Retrieve outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: ids in: query type: string description: Comma-separated list of up to 2000 record IDs to retrieve. required: true - name: fields in: query type: string description: Comma-separated list of field names to return for each record. Returns all accessible fields if not specified. authentication: type: bearer token: '{{env.SALESFORCE_API_KEY}}' exposes: - type: rest namespace: rest-composite-rest port: 8080 description: REST adapter for Salesforce REST API — Composite. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/composite name: composite description: REST surface for composite. operations: - method: POST name: executecompositerequest description: Salesforce Execute a Composite Request With Dependent Subrequests call: rest-composite.executecompositerequest with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/composite/batch name: composite-batch description: REST surface for composite-batch. operations: - method: POST name: executebatchrequest description: Salesforce Execute a Batch of Requests call: rest-composite.executebatchrequest with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/composite/sobjects name: composite-sobjects description: REST surface for composite-sobjects. operations: - method: POST name: collectionscreate description: Salesforce Sobject Collections Create call: rest-composite.collectionscreate with: body: rest.body outputParameters: - type: object mapping: $. - method: PATCH name: collectionsupdate description: Salesforce Sobject Collections Update call: rest-composite.collectionsupdate with: body: rest.body outputParameters: - type: object mapping: $. - method: DELETE name: collectionsdelete description: Salesforce Sobject Collections Delete call: rest-composite.collectionsdelete with: ids: rest.ids allOrNone: rest.allOrNone outputParameters: - type: object mapping: $. - path: /v1/composite/sobjects/{sobjecttype} name: composite-sobjects-sobjecttype description: REST surface for composite-sobjects-sobjectType. operations: - method: GET name: collectionsretrieve description: Salesforce Sobject Collections Retrieve call: rest-composite.collectionsretrieve with: ids: rest.ids fields: rest.fields outputParameters: - type: object mapping: $. - type: mcp namespace: rest-composite-mcp port: 9090 transport: http description: MCP adapter for Salesforce REST API — Composite. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: salesforce-execute-composite-request-dependent description: Salesforce Execute a Composite Request With Dependent Subrequests hints: readOnly: false destructive: false idempotent: false call: rest-composite.executecompositerequest with: body: tools.body outputParameters: - type: object mapping: $. - name: salesforce-execute-batch-requests description: Salesforce Execute a Batch of Requests hints: readOnly: false destructive: false idempotent: false call: rest-composite.executebatchrequest with: body: tools.body outputParameters: - type: object mapping: $. - name: salesforce-sobject-collections-create description: Salesforce Sobject Collections Create hints: readOnly: false destructive: false idempotent: false call: rest-composite.collectionscreate with: body: tools.body outputParameters: - type: object mapping: $. - name: salesforce-sobject-collections-update description: Salesforce Sobject Collections Update hints: readOnly: false destructive: false idempotent: true call: rest-composite.collectionsupdate with: body: tools.body outputParameters: - type: object mapping: $. - name: salesforce-sobject-collections-delete description: Salesforce Sobject Collections Delete hints: readOnly: false destructive: true idempotent: true call: rest-composite.collectionsdelete with: ids: tools.ids allOrNone: tools.allOrNone outputParameters: - type: object mapping: $. - name: salesforce-sobject-collections-retrieve description: Salesforce Sobject Collections Retrieve hints: readOnly: true destructive: false idempotent: true call: rest-composite.collectionsretrieve with: ids: tools.ids fields: tools.fields outputParameters: - type: object mapping: $.