openapi: 3.0.3
info:
title: Ditto HTTP RPC API Keys Sync API
version: 4.0.0
description: The Ditto HTTP RPC API provides a RESTful interface for interacting with Ditto's distributed data store. It enables you to query, insert, update and delete data across your Ditto network while maintaining strong consistency guarantees.
servers:
- url: '{base_url}/api/v4'
description: The Ditto Big Peer acts as a central synchronization point and data store in your Ditto network. It coordinates data replication between peers and provides a consistent view of your data.
variables:
base_url:
default: https://YOUR_CLOUD_URL_ENDPOINT
description: Your Cloud URL Endpoint from the Ditto Portal (Connect via HTTP), prefixed with https:// to form the base URL.
security:
- api_key_or_jwt_token: []
tags:
- name: Sync
paths:
/sync/remote_execute:
post:
description: Execute a DQL statement on specific connected peers in your Ditto network. This powerful feature allows you to query and manipulate data directly on edge devices that match your specified criteria.
operationId: remote_execute_endpoint
requestBody:
description: Specify both the peer selection criteria (using SYNC CONTEXT) and the DQL statement to execute on matching peers. This enables targeted operations on specific devices or groups of devices in your network.
content:
application/json:
schema:
$ref: '#/components/schemas/RemoteExecuteRequest'
required: true
responses:
'200':
description: The remote execution request was processed successfully. Returns results from each matching peer, including any data retrieved, errors encountered, and execution statistics.
content:
application/json:
schema:
$ref: '#/components/schemas/RemoteExecuteResponse'
application/cbor:
schema:
$ref: '#/components/schemas/RemoteExecuteResponse'
'400':
description: The request was invalid. This could be due to incorrect SYNC CONTEXT syntax, invalid DQL statement, or other parameter validation failures. Check the error message for specific details.
content:
application/json:
schema:
$ref: '#/components/schemas/RpcError'
application/cbor:
schema:
$ref: '#/components/schemas/RpcError'
'401':
description: Authentication failed. Ensure you're providing a valid API key or JWT token with appropriate permissions for remote execution.
content:
application/json:
schema:
$ref: '#/components/schemas/RpcError'
application/cbor:
schema:
$ref: '#/components/schemas/RpcError'
'500':
description: An unexpected server error occurred while processing the remote execution request. This could be due to network issues, peer connectivity problems, or internal errors.
content:
application/json:
schema:
$ref: '#/components/schemas/RpcError'
application/cbor:
schema:
$ref: '#/components/schemas/RpcError'
deprecated: false
tags:
- Sync
components:
schemas:
RemoteExecuteError:
type: object
required:
- description
properties:
description:
type: string
RemoteExecuteResponse:
type: object
description: Response from executing a remote query across specified peers. Contains results and any errors that occurred.
required:
- result
properties:
error:
$ref: '#/components/schemas/RemoteExecuteError'
description: Any error that prevented the remote query from executing successfully
result:
type: array
items:
$ref: '#/components/schemas/RemoteExecutePeerItem'
description: Array of results from each peer that executed the query
RemoteExecutePeerItem:
type: object
description: Represents the response data returned from executing a query on a specific peer in the network. Contains query results, timing information, and any errors or warnings that occurred.
properties:
elapsedMilliseconds:
$ref: '#/components/schemas/AnyValue'
description: The time taken to execute the query on this peer in milliseconds
error:
$ref: '#/components/schemas/RemoteExecuteError'
description: Any error that occurred while executing the query on this peer
items:
type: array
items:
$ref: '#/components/schemas/AnyValue'
description: The array of results returned from executing the query on this peer
peer:
$ref: '#/components/schemas/AnyValue'
description: Information identifying the specific peer that executed the query
totalWarningsCount:
$ref: '#/components/schemas/AnyValue'
description: Total number of warnings generated during query execution on this peer
warnings:
type: array
items:
$ref: '#/components/schemas/AnyValue'
description: Array of warnings generated during query execution on this peer
AnyValue: {}
RemoteExecuteRequest:
type: object
description: Request object for executing a DQL query remotely on specific peers in the network. The query must include a SYNC CONTEXT clause to specify target peers.
required:
- statement
properties:
args:
$ref: '#/components/schemas/AnyValue'
description: Optional parameterized arguments to use in the query statement
statement:
type: string
description: A DQL statement that must include a SYNC CONTEXT clause to specify target peers. See https://docs.ditto.live/dql-guide for syntax details.
example:
statement: SYNC CONTEXT ( PEERS WHERE peerKeyString = 'pkAg' ) SELECT * FROM cars WHERE _id = '1'
RpcError:
type: object
description: Error response returned when an API request fails
required:
- message
properties:
message:
type: string
description: Human-readable description of what went wrong
example:
message: Some kind of human readable description of the error
securitySchemes:
api_key_or_jwt_token:
type: http
scheme: bearer
bearerFormat: API Key or JWT
description: Authentication using either an API key or JWT token in the Authorization header
externalDocs:
url: https://docs.ditto.live/http/installation/
description: For more detailed instructions on how to use this API and the Ditto SDK, please see the documentation.