| Field | Type | Label | Description | 
| filter | Filter | 
 | |
| aggregate | Aggregate | 
 | |
| field | string | 
 | 
| Field | Validations | 
| filter | 
 | 
| field | 
 | 
AuthTarget is the payload/input to Authorizer expressions
| Field | Type | Label | Description | 
| user | Doc | user is the user making the request | |
| target | google.protobuf.Struct | target is the request/response represented as a Struct | |
| headers | AuthTarget.HeadersEntry | repeated | headers are the request headers | 
| Field | Validations | 
| user | 
 | 
| Field | Type | Label | Description | 
| key | string | 
 | |
| value | string | 
 | 
Authorizer is a graph primitive used for authorizing inbound requests and/or responses(see AuthTarget)
| Field | Type | Label | Description | 
| name | string | name is the unique name of the authorizer | |
| method | string | method is the rpc method that will invoke the authorizer | |
| expression | string | expression is the boolean CEL expression that evaluates either the request or response body | |
| target_requests | bool | target_responses sets the authorizer to evaluate request bodies | |
| target_responses | bool | target_responses sets the authorizer to evaluate response bodies | 
| Field | Validations | 
| name | 
 | 
| method | 
 | 
| expression | 
 | 
Authorizers is an array of authorizer
| Field | Type | Label | Description | 
| authorizers | Authorizer | repeated | 
 | 
Boolean is a simple boolean value
| Field | Type | Label | Description | 
| value | bool | 
 | 
ConnectFilter is used to fetch connections related to a single noted
| Field | Type | Label | Description | 
| doc_ref | Ref | doc_ref is the ref to the target doc. (validator.field) = {msg_exists : true}] | |
| gtype | string | gtype is the type of connections to return. (validator.field) = {regex : "^.{1,225}$"} | |
| expression | string | expression is a CEL expression used to filter connections/modes | |
| limit | uint64 | limit is the maximum number of items to return. (validator.field) = {int_gt : 0} | |
| sort | string | custom sorting of the results. (validator.field) = {regex : "((^|, )(|ref.gid|ref.gtype|^attributes.(.*)))+$"} | |
| seek | string | seek to a specific key for pagination | |
| reverse | bool | reverse the results | 
| Field | Validations | 
| doc_ref | 
 | 
| gtype | 
 | 
| limit | 
 | 
| sort | 
 | 
Connection is a graph primitive that represents a relationship between two docs
| Field | Type | Label | Description | 
| ref | Ref | ref is the ref to the connection | |
| attributes | google.protobuf.Struct | attributes are k/v pairs | |
| directed | bool | directed is false if the connection is bi-directional | |
| from | Ref | from is the doc ref that is the source of the connection | |
| to | Ref | to is the doc ref that is the destination of the connection | 
| Field | Validations | 
| ref | 
 | 
| from | 
 | 
| to | 
 | 
ConnectionConstructor is used to create an Connection
| Field | Type | Label | Description | 
| ref | RefConstructor | ref is the ref to the new Connection. If an id isn't present, one will be generated. | |
| attributes | google.protobuf.Struct | attributes are k/v pairs | |
| directed | bool | directed is false if the connection is bi-directional | |
| from | Ref | from is the doc ref that is the root of the connection | |
| to | Ref | to is the doc ref that is the destination of the connection | 
| Field | Validations | 
| ref | 
 | 
| from | 
 | 
| to | 
 | 
ConnectionConstructors is an array of ConnectionConstructor
| Field | Type | Label | Description | 
| connections | ConnectionConstructor | repeated | 
 | 
Connections is an array of Connection
| Field | Type | Label | Description | 
| connections | Connection | repeated | 
 | 
| seek_next | string | 
 | 
Constraint a graph primitive used to validate custom doc/connection constraints
| Field | Type | Label | Description | 
| name | string | 
 | |
| gtype | string | 
 | |
| expression | string | 
 | |
| target_docs | bool | if target_docs is true, this validator will be applied to documents. | |
| target_connections | bool | if target_connections is true, this validator will be applied to connections. | 
| Field | Validations | 
| name | 
 | 
| gtype | 
 | 
| expression | 
 | 
| Field | Type | Label | Description | 
| constraints | Constraint | repeated | 
 | 
Doc is a Graph primitive representing a single entity/resource. It is connected to other docs via Connections
| Field | Type | Label | Description | 
| ref | Ref | ref is the ref to the doc | |
| attributes | google.protobuf.Struct | k/v pairs | 
| Field | Validations | 
| ref | 
 | 
DocConstructor is used to create a doc
| Field | Type | Label | Description | 
| ref | RefConstructor | ref is the ref to the new Doc. If an id isn't present, one will be generated. | |
| attributes | google.protobuf.Struct | arbitrary k/v pairs | 
| Field | Validations | 
| ref | 
 | 
DocConstructor is used to create a batch of docs
| Field | Type | Label | Description | 
| docs | DocConstructor | repeated | docs is an array of doc constructors | 
Docs is an array of docs
| Field | Type | Label | Description | 
| docs | Doc | repeated | docs is an array of docs | 
| seek_next | string | 
 | 
Edit patches the attributes of a Doc or Connection
| Field | Type | Label | Description | 
| ref | Ref | ref is the ref to the target doc/connection to patch | |
| attributes | google.protobuf.Struct | attributes are k/v pairs used to overwrite k/v pairs on a doc/connection | 
| Field | Validations | 
| ref | 
 | 
EditFilter is used to patch/edit docs/connections
| Field | Type | Label | Description | 
| filter | Filter | filter is used to filter docs/connections to patch | |
| attributes | google.protobuf.Struct | attributes are k/v pairs used to overwrite k/v pairs on all docs/connections that pass the filter | 
ExistsFilter is used as input into all Exists(boolean) related queries.
| Field | Type | Label | Description | 
| gtype | string | 
 | |
| expression | string | 
 | |
| seek | string | seek to a specific key for pagination | |
| reverse | bool | reverse the results | |
| index | string | search in a specific index | 
| Field | Validations | 
| gtype | 
 | 
| expression | 
 | 
| Field | Type | Label | Description | 
| expression | string | expression is a CEL expression used to filter connections/nodes | 
Filter is a generic filter using Common Expression Language
| Field | Type | Label | Description | 
| gtype | string | gtype is the doc/connection type to be filtered | |
| expression | string | expression is a CEL expression used to filter connections/modes | |
| limit | uint64 | limit is the maximum number of items to return | |
| sort | string | custom sorting of the results. | |
| seek | string | seek to a specific key for pagination | |
| reverse | bool | reverse the results | |
| index | string | search in a specific index | 
| Field | Validations | 
| gtype | 
 | 
| limit | 
 | 
| sort | 
 | 
| Field | Type | Label | Description | 
| open_id_discovery | string | open id connect discovery uri ex: https://accounts.google.com/.well-known/openid-configuration (env: GRAPHIK_OPEN_ID) | |
| storage_path | string | persistant storage ref (env: GRAPHIK_STORAGE_PATH) | |
| allow_headers | string | repeated | cors allow headers (env: GRAPHIK_ALLOW_HEADERS) | 
| allow_methods | string | repeated | cors allow methods (env: GRAPHIK_ALLOW_METHODS) | 
| allow_origins | string | repeated | cors allow origins (env: GRAPHIK_ALLOW_ORIGINS) | 
| root_users | string | repeated | root user is a list of email addresses that bypass authorizers. (env: GRAPHIK_ROOT_USERS) | 
| tls_cert | string | 
 | |
| tls_key | string | 
 | |
| require_request_authorizers | bool | 
 | |
| require_response_authorizers | bool | 
 | |
| join_raft | string | 
 | |
| raft_peer_id | string | 
 | |
| listen_port | int64 | 
 | |
| raft_secret | string | 
 | |
| debug | bool | 
 | |
| environment | string | 
 | |
| raft_advertise | string | 
 | |
| raft_max_pool | int64 | 
 | |
| mutual_tls | bool | 
 | |
| ca_cert | string | 
 | |
| enable_ui | bool | 
 | 
Graph is an array of docs and connections
| Field | Type | Label | Description | 
| docs | Docs | docs are docs present in the graph | |
| connections | Connections | connections are connections present in the graph | 
Index is a secondary index
| Field | Type | Label | Description | 
| name | string | 
 | |
| gtype | string | gtype is the doc/connection type to be filtered | |
| expression | string | expression is a CEL expression used to filter connections/modes | |
| target_docs | bool | if target_docs is true, this index will be applied to documents. | |
| target_connections | bool | if target_connections is true, this index will be applied to connections. | 
| Field | Validations | 
| name | 
 | 
| gtype | 
 | 
| expression | 
 | 
IndexConstructor is used to construct Indexes
| Field | Type | Label | Description | 
| name | string | name is the unique name of the Index | |
| gtype | string | gtype is the doc/connection type to be filtered | |
| expression | string | expression is a CEL expression used to filter connections/modes | |
| target_docs | bool | if target_docs is true, this index will be applied to documents. | |
| target_connections | bool | if target_connections is true, this index will be applied to connections. | 
| Field | Validations | 
| name | 
 | 
| gtype | 
 | 
| expression | 
 | 
Indexes is an array of Index
| Field | Type | Label | Description | 
| indexes | Index | repeated | 
 | 
Message is received on PubSub subscriptions
| Field | Type | Label | Description | 
| channel | string | channel is the channel the message was sent to | |
| data | google.protobuf.Struct | data is the data sent with the message | |
| user | Ref | user is the sender that triggered/sent the message | |
| timestamp | google.protobuf.Timestamp | timestamp is when the message was sent | |
| method | string | 
 | 
| Field | Validations | 
| channel | 
 | 
| data | 
 | 
| user | 
 | 
| timestamp | 
 | 
| method | 
 | 
Number is a simple double/float64 value
| Field | Type | Label | Description | 
| value | double | 
 | 
OutboundMessage is a message to be published to a pubsub channel
| Field | Type | Label | Description | 
| channel | string | channel is the target channel to send the message to | |
| data | google.protobuf.Struct | data is the data to send with the message | 
| Field | Validations | 
| channel | 
 | 
| data | 
 | 
| Field | Type | Label | Description | 
| node_id | string | 
 | |
| addr | string | 
 | 
Pong returns PONG if the server is healthy
| Field | Type | Label | Description | 
| message | string | message returns PONG if healthy | 
| Field | Type | Label | Description | 
| user | Doc | 
 | |
| method | string | 
 | |
| set_docs | Doc | repeated | 
 | 
| set_connections | Connection | repeated | 
 | 
| del_docs | Ref | repeated | 
 | 
| del_connections | Ref | repeated | 
 | 
| set_indexes | Indexes | 
 | |
| set_authorizers | Authorizers | 
 | |
| set_constraints | Constraints | 
 | |
| send_message | Message | 
 | |
| set_triggers | Triggers | 
 | 
| Field | Type | Label | Description | 
| leader | string | 
 | |
| membership | Membership | 
 | |
| peers | Peer | repeated | 
 | 
| stats | RaftState.StatsEntry | repeated | 
 | 
| Field | Type | Label | Description | 
| key | string | 
 | |
| value | string | 
 | 
Ref describes a doc/connection type & id
| Field | Type | Label | Description | 
| gtype | string | gtype is the type of the doc/connection ex: pet | |
| gid | string | gid is the unique id of the doc/connection within the context of it's type | 
| Field | Validations | 
| gtype | 
 | 
| gid | 
 | 
RefConstructor creates a new Ref
| Field | Type | Label | Description | 
| gtype | string | gtype is the type of the doc/connection ex: pet | |
| gid | string | gid is the unique id of the doc/connection within the context of it's type | 
| Field | Validations | 
| gtype | 
 | 
Refs is an array of refs
| Field | Type | Label | Description | 
| refs | Ref | repeated | 
 | 
Schema returns registered connection & doc types
| Field | Type | Label | Description | 
| connection_types | string | repeated | connection_types are the types of connections in the graph | 
| doc_types | string | repeated | doc_types are the types of docs in the graph | 
| authorizers | Authorizers | 
 | |
| constraints | Constraints | 
 | |
| indexes | Indexes | 
 | |
| triggers | Triggers | 
 | 
| Field | Type | Label | Description | 
| filter | Filter | 
 | |
| gtype | string | 
 | |
| attributes | google.protobuf.Struct | attributes are k/v pairs | |
| directed | bool | directed is false if the connection is bi-directional | |
| from | Ref | from is the doc ref that is the root of the connection | 
| Field | Validations | 
| from | 
 | 
| Field | Type | Label | Description | 
| filter | Filter | 
 | |
| gtype | string | 
 | |
| attributes | google.protobuf.Struct | attributes are k/v pairs | |
| directed | bool | directed is false if the connection is bi-directional | 
StreamFilter is used to filter messages in a pubsub channel
| Field | Type | Label | Description | 
| channel | string | channel is the target channel to filter from | |
| expression | string | expression is CEL expression used to filter messages | |
| min | google.protobuf.Timestamp | minimum message timestamp to stream (optional) | |
| max | google.protobuf.Timestamp | maximum message timestamp to stream (optional) | 
| Field | Validations | 
| channel | 
 | 
| Field | Type | Label | Description | 
| doc | Doc | 
 | |
| traversal_path | Ref | repeated | 
 | 
| depth | uint64 | 
 | |
| hops | uint64 | 
 | 
| Field | Type | Label | Description | 
| traversals | Traversal | repeated | 
 | 
| Field | Type | Label | Description | 
| root | Ref | 
 | |
| doc_expression | string | 
 | |
| connection_expression | string | 
 | |
| limit | uint64 | 
 | |
| sort | string | custom sorting of the results. (validator.field) = {regex : "((^|, )(|ref.gid|ref.gtype|^attributes.(.*)))+$"} | |
| reverse | bool | 
 | |
| algorithm | Algorithm | 
 | |
| max_depth | uint64 | maximum degree/depth of nodes to be visited during traversal | |
| max_hops | uint64 | maximum number of nodes to be visited during traversal | 
| Field | Validations | 
| root | 
 | 
| limit | 
 | 
| sort | 
 | 
| max_depth | 
 | 
| max_hops | 
 | 
| Field | Type | Label | Description | 
| doc_expression | string | 
 | |
| connection_expression | string | 
 | |
| limit | uint64 | 
 | |
| sort | string | custom sorting of the results. (validator.field) = {regex : "((^|, )(|ref.gid|ref.gtype|^attributes.(.*)))+$"} | |
| reverse | bool | 
 | |
| algorithm | Algorithm | 
 | |
| max_depth | uint64 | maximum degree/depth of nodes to be visited during traversal | |
| max_hops | uint64 | maximum number of nodes to be visited during traversal | 
| Field | Validations | 
| limit | 
 | 
| sort | 
 | 
| max_depth | 
 | 
| max_hops | 
 | 
Trigger may be used to automatically mutate the attributes of documents/connections before they are commited to the database
| Field | Type | Label | Description | 
| name | string | name is the unique name of the authorizer | |
| gtype | string | gtype is the type of doc/connection will invoke the trigger | |
| trigger | string | trigger is the arrow syntax expression that mutates the doc/connection before it is stored ref: https://github.com/graphikDB/trigger | |
| target_docs | bool | if target_docs is true, this trigger will be applied to documents. | |
| target_connections | bool | if target_connections is true, this trigger will be applied to connections. | 
| Field | Validations | 
| name | 
 | 
| gtype | 
 | 
| trigger | 
 | 
Triggers is an array of Trigger
| Field | Type | Label | Description | 
| triggers | Trigger | repeated | 
 | 
| Field | Type | Label | Description | 
| oauth_client_id | string | 
 | |
| oauth_client_secret | string | 
 | |
| oauth_authorization_url | string | 
 | |
| oauth_token_url | string | 
 | |
| oauth_redirect_url | string | 
 | |
| oauth_scopes | string | repeated | 
 | 
| session_secret | string | 
 | 
| Name | Number | Description | 
| COUNT | 0 | |
| SUM | 1 | |
| AVG | 2 | |
| MAX | 3 | |
| MIN | 4 | |
| PROD | 5 | 
| Name | Number | Description | 
| BFS | 0 | BFS is short for the breadth-first search algorithm | 
| DFS | 1 | DFS is short for the depth-first search algorithm | 
| Name | Number | Description | 
| UNKNOWN | 0 | |
| FOLLOWER | 1 | |
| CANDIDATE | 2 | |
| LEADER | 3 | |
| SHUTDOWN | 4 | 
DatabaseService is the primary database service
| Method Name | Request Type | Response Type | Description | 
| GetSchema | .google.protobuf.Empty | Schema | GetSchema gets schema about the Graph doc & connection types | 
| SetAuthorizers | Authorizers | .google.protobuf.Empty | SetAuthorizers sets all of the authorizers in the graph database | 
| SetIndexes | Indexes | .google.protobuf.Empty | SetIndexes sets all of the indexes in the graph database | 
| SetConstraints | Constraints | .google.protobuf.Empty | SetConstraints sets all of the constraints in the graph database | 
| SetTriggers | Triggers | .google.protobuf.Empty | SetTriggers sets all of the triggers in the graph database | 
| Me | .google.protobuf.Empty | Doc | Me returns a Doc of the currently logged in user | 
| CreateDoc | DocConstructor | Doc | CreateDoc creates a doc in the graph | 
| CreateDocs | DocConstructors | Docs | CreateDocs creates a batch of docs in the graph | 
| PutDoc | Doc | Doc | PutDoc create-or-replaces a Doc in the graph | 
| PutDocs | Docs | Docs | PutDocs puts a batch of docs in the graph | 
| GetDoc | Ref | Doc | GetDoc gets a single doc in the graph | 
| SearchDocs | Filter | Docs | SearchDocs searches the graph for docs | 
| Traverse | TraverseFilter | Traversals | Traverse executes a depth first search of the graph for docs | 
| TraverseMe | TraverseMeFilter | Traversals | TraverseMe executes a graph traversal searching for docs related to the currently logged in user | 
| EditDoc | Edit | Doc | EditDoc patches/edits a docs attributes | 
| EditDocs | EditFilter | Docs | EditDocs patches a batch of docs attributes that pass the patch filter | 
| DelDoc | Ref | .google.protobuf.Empty | DelDoc deletes a doc & all of it's connected connections | 
| DelDocs | Filter | .google.protobuf.Empty | DelDocs deletes a batch of docs that pass the filter | 
| ExistsDoc | ExistsFilter | Boolean | ExistsDoc searches for a Doc and returns a Boolean indicating if it exists in the graph | 
| ExistsConnection | ExistsFilter | Boolean | ExistsConnection searches for a Connection and returns a Boolean indicating if it exists in the graph | 
| HasDoc | Ref | Boolean | HasDoc searches for the Doc by Ref returns a Boolean indicating if it exists in the graph | 
| HasConnection | Ref | Boolean | HasConnection searches for the Connection by Ref returns a Boolean indicating if it exists in the graph | 
| CreateConnection | ConnectionConstructor | Connection | CreateConnection creates an connection in the graph | 
| CreateConnections | ConnectionConstructors | Connections | CreateConnections creates a batch of connections in the graph | 
| PutConnection | Connection | Connection | PutConnection create-or-replaces a Connection in the graph | 
| PutConnections | Connections | Connections | PutConnections puts a batch of connections in the graph | 
| SearchAndConnect | SearchConnectFilter | Connections | searches for documents and forms connections based on whether they pass a filter | 
| SearchAndConnectMe | SearchConnectMeFilter | Connections | SearchAndConnectMe searches for documents and forms connections from the origin user to the document based on whether they pass a filter | 
| GetConnection | Ref | Connection | GetConnection gets a single connection in the graph | 
| SearchConnections | Filter | Connections | SearchConnections searches the graph for connections | 
| EditConnection | Edit | Connection | EditConnection patches an connections attributes | 
| EditConnections | EditFilter | Connections | EditConnections patches a batch of connections attributes that pass the patch filter | 
| DelConnection | Ref | .google.protobuf.Empty | DelConnection deletes an connection from the graph | 
| DelConnections | Filter | .google.protobuf.Empty | DelConnections deletes a batch of connections that pass the filter | 
| ConnectionsFrom | ConnectFilter | Connections | ConnectionsFrom returns connections that source from the given doc ref that pass the filter | 
| ConnectionsTo | ConnectFilter | Connections | ConnectionsTo returns connections that point to the given doc ref that pass the filter | 
| AggregateDocs | AggFilter | Number | AggregateDocs executes an aggregation function against the graph | 
| AggregateConnections | AggFilter | Number | |
| Broadcast | OutboundMessage | .google.protobuf.Empty | Broadcast broadcasts a message to a pubsub channel | 
| Stream | StreamFilter | Message stream | Stream subscribes to messages on a pubsub channel | 
| PushDocConstructors | DocConstructor stream | Doc stream | PushDocConstructors streams DocConstructor to the server, creating them as they're sent and streaming the new doc to the client | 
| PushConnectionConstructors | ConnectionConstructor stream | Connection stream | PushConnectionConstructors streams ConnectionConstructor to the server, creating them as they're sent and streaming the new connection to the client | 
| SeedDocs | Doc stream | .google.protobuf.Empty | |
| SeedConnections | Connection stream | .google.protobuf.Empty | 
| Method Name | Request Type | Response Type | Description | 
| Ping | .google.protobuf.Empty | Pong | Ping returns PONG if the server is health | 
| JoinCluster | Peer | .google.protobuf.Empty | |
| ClusterState | .google.protobuf.Empty | RaftState | 
| .proto Type | Notes | C++ | Java | Python | Go | C# | PHP | Ruby | 
| double | double | double | float | float64 | double | float | Float | |
| float | float | float | float | float32 | float | float | Float | |
| int32 | Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint32 instead. | int32 | int | int | int32 | int | integer | Bignum or Fixnum (as required) | 
| int64 | Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint64 instead. | int64 | long | int/long | int64 | long | integer/string | Bignum | 
| uint32 | Uses variable-length encoding. | uint32 | int | int/long | uint32 | uint | integer | Bignum or Fixnum (as required) | 
| uint64 | Uses variable-length encoding. | uint64 | long | int/long | uint64 | ulong | integer/string | Bignum or Fixnum (as required) | 
| sint32 | Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int32s. | int32 | int | int | int32 | int | integer | Bignum or Fixnum (as required) | 
| sint64 | Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int64s. | int64 | long | int/long | int64 | long | integer/string | Bignum | 
| fixed32 | Always four bytes. More efficient than uint32 if values are often greater than 2^28. | uint32 | int | int | uint32 | uint | integer | Bignum or Fixnum (as required) | 
| fixed64 | Always eight bytes. More efficient than uint64 if values are often greater than 2^56. | uint64 | long | int/long | uint64 | ulong | integer/string | Bignum | 
| sfixed32 | Always four bytes. | int32 | int | int | int32 | int | integer | Bignum or Fixnum (as required) | 
| sfixed64 | Always eight bytes. | int64 | long | int/long | int64 | long | integer/string | Bignum | 
| bool | bool | boolean | boolean | bool | bool | boolean | TrueClass/FalseClass | |
| string | A string must always contain UTF-8 encoded or 7-bit ASCII text. | string | String | str/unicode | string | string | string | String (UTF-8) | 
| bytes | May contain any arbitrary sequence of bytes. | string | ByteString | str | []byte | ByteString | string | String (ASCII-8BIT) |