gRPC interface for external QNTX domain plugins.
Proto file: plugin/grpc/protocol/domain.proto
| Method | Request | Response | Streaming |
|---|---|---|---|
| Metadata | Empty | MetadataResponse | No |
| Initialize | InitializeRequest | Empty | No |
| Shutdown | Empty | Empty | No |
| HandleHTTP | HTTPRequest | HTTPResponse | No |
| HandleWebSocket | WebSocketMessage | WebSocketMessage | Bidirectional |
| Health | Empty | HealthResponse | No |
| ConfigSchema | Empty | ConfigSchemaResponse | No |
Metadata returns plugin metadata
EmptyMetadataResponseInitialize initializes the plugin
InitializeRequestEmptyShutdown shuts down the plugin
EmptyEmptyHandleHTTP handles an HTTP request
HTTPRequestHTTPResponseHandleWebSocket handles a WebSocket connection (bidirectional streaming)
WebSocketMessageWebSocketMessageHealth checks plugin health
EmptyHealthResponseConfigSchema returns the configuration schema for this plugin
EmptyConfigSchemaResponse| Field | Type | Description |
|---|---|---|
| name | string | - |
| version | string | - |
| qntx_version | string | - |
| description | string | - |
| author | string | - |
| license | string | - |
| Field | Type | Description |
|---|---|---|
| ats_store_endpoint | string | Service endpoints the plugin can call back to QNTX core Format: "host:port" for TCP (e.g., "localhost:50051") Note: Database access is not provided - database is a hard boundary. Plugins should use attestations via ats_store_endpoint instead. ats_store_endpoint: gRPC endpoint for ATSStoreService Provides: Attestation creation, querying, and management |
| queue_endpoint | string | queue_endpoint: gRPC endpoint for QueueService Provides: Async job enqueue, status, and management |
| auth_token | string | auth_token: Simple token for authenticating with service endpoints Plugins must include this token in all service RPC calls |
| config | map<string, string> | Plugin-specific configuration values Simple types (string, int, bool) passed as string representations Complex types (maps, slices) JSON-encoded as strings Plugins should parse and validate values appropriate to their schema |
| Field | Type | Description |
|---|---|---|
| method | string | - |
| path | string | - |
| headers | HTTPHeader | - |
| body | bytes | - |
| Field | Type | Description |
|---|---|---|
| status_code | int32 | - |
| headers | HTTPHeader | - |
| body | bytes | - |
HTTPHeader represents an HTTP header with support for multiple values. HTTP headers can have multiple values (e.g., Set-Cookie, Accept).
| Field | Type | Description |
|---|---|---|
| name | string | - |
| values | string | - |
| Field | Type | Description |
|---|---|---|
| healthy | bool | - |
| message | string | - |
| details | map<string, string> | - |
| Field | Type | Description |
|---|---|---|
| fields | map<string, ConfigFieldSchema> | Map of config field name to schema definition |
| Field | Type | Description |
|---|---|---|
| type | string | Field type: "string", "number", "boolean", "array" |
| description | string | Human-readable description of what this field does |
| default_value | string | Default value (as string representation) |
| required | bool | Whether this field is required |
| min_value | string | For number types: minimum value (optional) |
| max_value | string | For number types: maximum value (optional) |
| pattern | string | For string types: validation pattern (regex, optional) |
| element_type | string | For array types: element type (optional) |