Common Types
Types shared across multiple services. Each service page links here for shared message definitions.
Messages
Edge
An edge in the property graph.
| Field | Type | Description |
|---|---|---|
edge_id | uint64 | — |
edge_type | string | — |
source_node_id | uint64 | — |
target_node_id | uint64 | — |
properties | map<string, PropertyValue> | — |
element_id | string | Canonical opaque identifier for the edge endpoints (concatenated source and target element_ids in canonical order). Edges in CoordiNode are typed property bags between two nodes, not first-class entities — this field exists for parity with Neo4j relationships, not as a stable handle. |
EdgeId
Unique identifier for an edge in the graph.
| Field | Type | Description |
|---|---|---|
id | uint64 | — |
HlcTimestamp
Hybrid Logical Clock timestamp.
| Field | Type | Description |
|---|---|---|
wall_time | uint64 | — |
logical | uint32 | — |
Node
A node in the property graph.
| Field | Type | Description |
|---|---|---|
node_id | uint64 | Raw 64-bit node identifier. Preserved for Neo4j v4 driver compatibility and direct internal addressing. New client code SHOULD prefer element_id. |
labels | string[] | — |
properties | map<string, PropertyValue> | — |
element_id | string | Canonical opaque identifier: 13-character Crockford base32 encoding of node_id (bijective). Stable across schema changes, restarts, replication. Use this as the primary node reference in application code per ADR-022. |
NodeId
Unique identifier for a node in the graph.
| Field | Type | Description |
|---|---|---|
id | uint64 | — |
PaginationRequest
Cursor-based pagination request parameters.
| Field | Type | Description |
|---|---|---|
page_size | int32 | Maximum number of results to return. |
page_token | string | Opaque cursor from a previous response. |
PaginationResponse
Cursor-based pagination response metadata.
| Field | Type | Description |
|---|---|---|
next_page_token | string | Opaque cursor for the next page. Empty if no more results. |
total_count | int64 | Total count of matching results (if available, -1 if unknown). |
PropertyList
A list of property values (homogeneous arrays).
| Field | Type | Description |
|---|---|---|
values | PropertyValue[] | — |
PropertyMap
A map of string keys to property values.
| Field | Type | Description |
|---|---|---|
entries | map<string, PropertyValue> | — |
PropertyValue
A typed property value (oneof for all supported types).
| Field | Type | Description |
|---|---|---|
int_value | int64 | — |
float_value | double | — |
string_value | string | — |
bool_value | bool | — |
bytes_value | bytes | — |
timestamp_value | HlcTimestamp | — |
vector_value | Vector | — |
list_value | PropertyList | — |
map_value | PropertyMap | — |
JSON encoding (REST API)
PropertyValue is a oneof — in JSON, encode it as an object with exactly one key matching the camelCase proto field name:
{ "stringValue": "hello" }
{ "intValue": "42" }
{ "floatValue": 0.95 }
{ "boolValue": true }
{ "bytesValue": "aGVsbG8=" }
{ "vectorValue": { "values": [0.1, 0.2, 0.3] } }
{ "listValue": { "values": [{"stringValue": "a"}, {"stringValue": "b"}] } }
{ "mapValue": { "entries": { "key": {"intValue": "1"} } } }Vector parameters: use
vectorValue, notlistValue.vectorValuemaps to the dedicatedVectorproto type and enables vector index pushdown in the query planner.
Vector
A dense float vector for vector search.
| Field | Type | Description |
|---|---|---|
values | float[] | — |
Enums
ServingStatus
| Value | Number | Description |
|---|---|---|
SERVING_STATUS_UNSPECIFIED | 0 | — |
SERVING_STATUS_SERVING | 1 | — |
SERVING_STATUS_NOT_SERVING | 2 | — |
TraversalDirection
| Value | Number | Description |
|---|---|---|
TRAVERSAL_DIRECTION_UNSPECIFIED | 0 | — |
TRAVERSAL_DIRECTION_OUTBOUND | 1 | — |
TRAVERSAL_DIRECTION_INBOUND | 2 | — |
TRAVERSAL_DIRECTION_BOTH | 3 | — |
