Exacta Maestro™ GraphQL Schema
This document describes the organization of Exacta Maestro™'s GraphQL API.
Core GraphQL Concepts
GraphQL APIs are organized into hierarchical schemas. The operations and data provided by a schema are described by types and fields. Types describe objects in the schema, and fields describe properties of those objects. A field may be a scalar value (string, number, boolean, etc.) or another type.
The root of the schema is labeled with the GraphQL keyword schema. A schema has one to three fields:
- query: Required. Contains operations which retrieve but do not modify data
- mutation: Optional. Contains operations which modify data.
- subscription: Optional. Not used by Exacta Maestro™.
In GraphQL schema syntax, a schema is defined as
schema {
query: Query
mutation: Mutation
subscription: Subscription
}
In the above example, Query, Mutation, and Subscription are types of the fields query, mutation, and subscription, respectively. The server hosting the schema defines the fields within these root types.
Exacta Maestro™ Fields
Exacta Maestro™'s GraphQL schema adds another layer of organization between the query and mutation types and Exacta Maestro™ operations. Many independent services compose Exacta Maestro™, so the GraphQL schema identifies the service targeted by an operation as a top-level field. For example, AgentHub and TaskAssignment are two Exacta Maestro™ services. Our GraphQL schema is defined as follows:
schema {
query: Query
mutation: Mutation
}
type Query {
agentHubQuery: AgentHubQuery
taskAssigmentQuery: TaskAssignmentQuery
}
type Mutation {
agentHubMutation: AgentHubMutation
taskAssignmentMutation: TaskAssignmentMutation
}
type AgentHubQuery {
getAgents: [Agent]
getAgentTypeByAgentId: AgentType
# Other AgentHub query fields
}
type TaskAssignmentQuery {
task: TaskModel
taskGroup: TaskGroup
# Other Task Assignment query fields
}
type AgentHubMutation {
addAgent: Boolean
# Other AgentHub mutation fields
}
type TaskAssignmentMutation {
createMission: MissionTask
createTaskGroup: TaskGroup
# Other TaskAssignment mutation fields
}
See the API Reference for Exacta Maestro™'s full schema.