naftiko: 1.0.0-alpha2 info: label: Oracle Database Oracle SODA (Simple Oracle Document Access) REST API — Documents description: 'Oracle Database Oracle SODA (Simple Oracle Document Access) REST API — Documents. 7 operations. Lead operation: Oracle Database Get documents from a collection. Self-contained Naftiko capability covering one Oracle Database business surface.' tags: - Oracle Database - Documents created: '2026-05-19' modified: '2026-05-19' binds: - namespace: env keys: ORACLE_DATABASE_API_KEY: ORACLE_DATABASE_API_KEY capability: consumes: - type: http namespace: soda-documents baseUri: https://{host}:{port}/ords/{schema}/soda/{version} description: Oracle Database Oracle SODA (Simple Oracle Document Access) REST API — Documents business capability. Self-contained, no shared references. resources: - name: collection path: /{collection}/ operations: - name: getcollection method: GET description: Oracle Database Get documents from a collection outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: limit in: query type: integer description: Maximum number of documents to return - name: offset in: query type: integer description: Number of documents to skip (default 0) - name: fields in: query type: string description: Control which fields are returned - name: totalResults in: query type: boolean description: Include total count in response (may be slow on large collections) - name: fromID in: query type: string description: Start after this key (ascending order) - name: toID in: query type: string description: Stop before this key (descending order) - name: since in: query type: string description: Only return documents modified after this timestamp - name: until in: query type: string description: Only return documents modified before this timestamp - name: q in: query type: string description: QBE filter specification as a JSON object - name: insertdocument method: POST description: Oracle Database Insert a new document outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: putdocumentnokey method: PUT description: Oracle Database Insert or replace document (no key in URL) outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: collection-key path: /{collection}/{key} operations: - name: getdocument method: GET description: Oracle Database Get a document by key outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: If-Modified-Since in: header type: string description: Return 304 if document has not been modified since this timestamp - name: If-None-Match in: header type: string description: Return 304 if document etag matches this value - name: putdocument method: PUT description: Oracle Database Replace or insert a document by key outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: patchdocument method: PATCH description: Oracle Database Patch a document using JSON Patch outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: deletedocument method: DELETE description: Oracle Database Delete a document by key outputRawFormat: json outputParameters: - name: result type: object value: $. authentication: type: bearer token: '{{env.ORACLE_DATABASE_API_KEY}}' exposes: - type: rest namespace: soda-documents-rest port: 8080 description: REST adapter for Oracle Database Oracle SODA (Simple Oracle Document Access) REST API — Documents. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/{collection} name: collection description: REST surface for collection. operations: - method: GET name: getcollection description: Oracle Database Get documents from a collection call: soda-documents.getcollection with: limit: rest.limit offset: rest.offset fields: rest.fields totalResults: rest.totalResults fromID: rest.fromID toID: rest.toID since: rest.since until: rest.until q: rest.q outputParameters: - type: object mapping: $. - method: POST name: insertdocument description: Oracle Database Insert a new document call: soda-documents.insertdocument with: body: rest.body outputParameters: - type: object mapping: $. - method: PUT name: putdocumentnokey description: Oracle Database Insert or replace document (no key in URL) call: soda-documents.putdocumentnokey with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/{collection}/{key} name: collection-key description: REST surface for collection-key. operations: - method: GET name: getdocument description: Oracle Database Get a document by key call: soda-documents.getdocument with: If-Modified-Since: rest.If-Modified-Since If-None-Match: rest.If-None-Match outputParameters: - type: object mapping: $. - method: PUT name: putdocument description: Oracle Database Replace or insert a document by key call: soda-documents.putdocument with: body: rest.body outputParameters: - type: object mapping: $. - method: PATCH name: patchdocument description: Oracle Database Patch a document using JSON Patch call: soda-documents.patchdocument with: body: rest.body outputParameters: - type: object mapping: $. - method: DELETE name: deletedocument description: Oracle Database Delete a document by key call: soda-documents.deletedocument outputParameters: - type: object mapping: $. - type: mcp namespace: soda-documents-mcp port: 9090 transport: http description: MCP adapter for Oracle Database Oracle SODA (Simple Oracle Document Access) REST API — Documents. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: oracle-database-get-documents-collection description: Oracle Database Get documents from a collection hints: readOnly: true destructive: false idempotent: true call: soda-documents.getcollection with: limit: tools.limit offset: tools.offset fields: tools.fields totalResults: tools.totalResults fromID: tools.fromID toID: tools.toID since: tools.since until: tools.until q: tools.q outputParameters: - type: object mapping: $. - name: oracle-database-insert-new-document description: Oracle Database Insert a new document hints: readOnly: false destructive: false idempotent: false call: soda-documents.insertdocument with: body: tools.body outputParameters: - type: object mapping: $. - name: oracle-database-insert-replace-document description: Oracle Database Insert or replace document (no key in URL) hints: readOnly: false destructive: false idempotent: true call: soda-documents.putdocumentnokey with: body: tools.body outputParameters: - type: object mapping: $. - name: oracle-database-get-document-key description: Oracle Database Get a document by key hints: readOnly: true destructive: false idempotent: true call: soda-documents.getdocument with: If-Modified-Since: tools.If-Modified-Since If-None-Match: tools.If-None-Match outputParameters: - type: object mapping: $. - name: oracle-database-replace-insert-document description: Oracle Database Replace or insert a document by key hints: readOnly: false destructive: false idempotent: true call: soda-documents.putdocument with: body: tools.body outputParameters: - type: object mapping: $. - name: oracle-database-patch-document-using description: Oracle Database Patch a document using JSON Patch hints: readOnly: false destructive: false idempotent: true call: soda-documents.patchdocument with: body: tools.body outputParameters: - type: object mapping: $. - name: oracle-database-delete-document-key description: Oracle Database Delete a document by key hints: readOnly: false destructive: true idempotent: true call: soda-documents.deletedocument outputParameters: - type: object mapping: $.