Architecture
GraphQL Schema
schema {
query: Query
mutation: Mutation
subscription: Subscription
}
"""
Indicates that an Input Object is a OneOf Input Object (and thus requires
exactly one of its field be provided)
"""
directive @oneOf on INPUT_OBJECT
union CollectionItem = Collection | Metadata
union ContentItem = Collection | Metadata | Profile
union WorkflowExecution = WorkflowExecutionPlan | WorkflowJob
type Activities {
activity(id: String!): Activity
all: [Activity!]!
}
type ActivitiesMutation {
add(activity: ActivityInput!): Activity
delete(activityId: String!): Boolean!
edit(activity: ActivityInput!): Activity
}
type Activity {
childWorkflowId: String
configuration: JSON
description: String!
id: String!
inputs: [ActivityParameter!]!
name: String!
outputs: [ActivityParameter!]!
}
type ActivityParameter {
name: String!
type: ActivityParameterType!
}
type Bible {
abbreviation: String!
abbreviationLocal: String!
book(usfm: String!): BibleBook
books: [BibleBook!]!
chapter(usfm: String!): BibleChapter
description: String!
find(human: String!): [FindBibleResult!]!
languages: [BibleLanguage!]!
name: String!
nameLocal: String!
styles: JSON!
systemId: String!
}
type BibleBook {
abbreviation: String!
chapters: [BibleChapter!]!
human: String!
nameLong: String!
nameShort: String!
usfm: String!
}
type BibleChapter {
component: JSON!
human: String!
reference: BibleReference!
usfm: String!
verses: [BibleReference!]!
}
type BibleLanguage {
iso: String!
name: String!
nameLocal: String!
script: String!
scriptCode: String!
scriptDirection: String!
}
type BibleReference {
human: String!
usfm: String!
}
type CacheObject {
keys: [String!]!
name: String!
}
type CachesObject {
caches: [CacheObject!]!
}
type Categories {
all: [Category!]!
}
type Category {
id: String!
name: String!
}
type CategoryMutation {
add(category: CategoryInput!): Category!
delete(id: String!): Boolean!
edit(category: CategoryInput!, id: String!): Category!
}
type Collection {
attributes(filter: AttributesFilterInput): JSON
categories: [Category!]!
collections(limit: Int!, offset: Int!): [Collection!]!
collectionsCount: Int!
created: DateTime!
deleted: Boolean!
description: String
etag(addHeader: Boolean!): String
id: String!
itemAttributes: JSON
items(limit: Int!, offset: Int!): [CollectionItem!]!
itemsCount: Int!
labels: [String!]!
metadata(limit: Int!, offset: Int!): [Metadata!]!
metadataCount: Int!
metadataRelationships: [CollectionMetadataRelationship!]!
modified: DateTime!
name: String!
ordering: [Ordering!]
parentCollections(limit: Int!, offset: Int!): [Collection!]!
permissions: [Permission!]!
public: Boolean!
publicList: Boolean!
publicSupplementary: Boolean!
ready: DateTime
slug: String
supplementary(key: String, planId: String): [CollectionSupplementary!]!
systemAttributes: JSON
templateMetadata: Metadata
traitIds: [String!]!
type: CollectionType!
workflow: CollectionWorkflow!
}
type CollectionMetadataRelationship {
attributes: JSON
metadata: Metadata!
relationship: String
}
type CollectionMutation {
add(collection: CollectionInput!, collectionItemAttributes: JSON): Collection!
addBulk(collections: [CollectionChildInput!]!): [Collection!]!
addChildCollection(attributes: JSON, collectionId: String!, id: String!): Collection!
addChildMetadata(attributes: JSON, id: String!, metadataId: String!): Collection!
addMetadataRelationship(relationship: CollectionMetadataRelationshipInput!): CollectionMetadataRelationship!
addPermission(permission: PermissionInput!): Permission!
addSupplementary(supplementary: CollectionSupplementaryInput!): CollectionSupplementary!
delete(id: String!, recursive: Boolean): Boolean!
deleteMetadataRelationship(id: String!, metadataId: String!, relationship: String!): Boolean!
deletePermission(permission: PermissionInput!): Permission!
deleteSupplementary(id: String!): Boolean!
edit(collection: CollectionInput!, id: String!): Collection!
editMetadataRelationship(relationship: CollectionMetadataRelationshipInput!): Boolean!
mergeCollectionAttributes(attributes: JSON!, id: String!): Boolean!
mergeCollectionItemAttributes(attributes: JSON!, id: String!, itemId: String!): Boolean!
mergeMetadataItemAttributes(attributes: JSON!, id: String!, itemId: String!): Boolean!
mergeMetadataRelationshipAttributes(attributes: JSON!, collectionId: String!, metadataId: String!, relationship: String!): Boolean!
permanentlyDelete(collectionId: String!, recursive: Boolean): Boolean!
removeChildCollection(collectionId: String!, id: String!): Collection!
removeChildMetadata(id: String!, metadataId: String!): Collection!
setChildItemAttributes(attributes: JSON, childCollectionId: String, childMetadataId: String, id: String!): Collection!
setCollectionAttributes(attributes: JSON!, id: String!): Boolean!
setCollectionOrdering(id: String!, ordering: JSON!): Boolean!
setCollectionSystemAttributes(attributes: JSON!, id: String!): Boolean!
setPublic(id: String!, public: Boolean!): Collection!
setPublicList(id: String!, public: Boolean!): Collection!
setPublicSupplementary(id: String!, public: Boolean!): Collection!
setReady(id: String!): Boolean!
setSupplementaryContents(contentType: String!, file: Upload!, supplementaryId: String!): Boolean!
setSupplementaryTextContents(content: String!, contentType: String!, supplementaryId: String!): Boolean!
setSupplementaryUploaded(contentType: String!, len: Int!, supplementaryId: String!): Boolean!
setWorkflowState(state: CollectionWorkflowState!): Boolean!
setWorkflowStateComplete(state: CollectionWorkflowCompleteState!): Boolean!
}
type CollectionSupplementary {
attributes: JSON
collectionId: String!
content: CollectionSupplementaryContent!
created: String!
id: String!
key: String!
modified: String!
name: String!
planId: String
source: CollectionSupplementarySource!
uploaded: String
}
type CollectionSupplementaryContent {
json: JSON!
length: Int
text: String!
type: String!
urls: CollectionSupplementaryContentUrls!
}
type CollectionSupplementaryContentUrls {
download: SignedUrl!
upload: SignedUrl!
}
type CollectionSupplementarySource {
id: String!
identifier: String
}
type CollectionTemplate {
attributes: [TemplateAttribute!]!
configuration: JSON
defaultAttributes: JSON
filters: CollectionTemplateFilters
metadata: Metadata
ordering: [Ordering!]
}
type CollectionTemplateFilter {
filter: String!
name: String!
}
type CollectionTemplateFilters {
filters: [CollectionTemplateFilter!]!
}
type CollectionTemplates {
all: [CollectionTemplate!]!
}
type CollectionWorkflow {
deleteWorkflow: String
pending: String
plans: [WorkflowExecutionPlan!]!
running: Int!
state: String!
stateValid: DateTime
}
type Configuration {
description: String!
id: String!
key: String!
permissions: [ConfigurationPermission!]!
public: Boolean!
value: JSON
}
type ConfigurationPermission {
action: PermissionAction!
group: Group!
}
type Configurations {
all: [Configuration!]!
configuration(key: String!): Configuration
}
type ConfigurationsMutation {
deleteConfiguration(key: String!): String
setConfiguration(configuration: ConfigurationInput!): Configuration
}
type Content {
categories: Categories!
collection(id: String): Collection
collectionSupplementary(supplementaryId: String!): CollectionSupplementary
collectionTemplates: CollectionTemplates!
documentTemplates: DocumentTemplates!
findCollections(query: FindQueryInput!): [Collection!]!
findCollectionsCount(query: FindQueryInput!): Int!
findMetadata(query: FindQueryInput!): [Metadata!]!
findMetadataCount(query: FindQueryInput!): Int!
guideTemplates: GuideTemplates!
metadata(id: String!, version: Int): Metadata
metadataSupplementary(supplementaryId: String!): MetadataSupplementary
slug(slug: String!): ContentItem
sources: Sources!
}
type ContentMutation {
category: CategoryMutation!
collection: CollectionMutation!
metadata: MetadataMutation!
rebuildStorageSystemContent: Boolean!
sources: SourceMutation!
}
type Document {
content: JSON!
template: Metadata
title: String!
}
type DocumentTemplate {
attributes: [TemplateAttribute!]!
configuration: JSON
containers: [DocumentTemplateContainer!]!
content: JSON!
defaultAttributes: JSON
metadata: Metadata
schema: JSON
}
type DocumentTemplateContainer {
description: String!
id: String!
name: String!
supplementaryKey: String
type: DocumentTemplateContainerType!
workflows: [TemplateWorkflow!]!
}
type DocumentTemplates {
all: [DocumentTemplate!]!
}
type FilteredComponent {
content: JSON!
}
type FindBibleResult {
book: BibleBook!
chapter: BibleChapter
component: FilteredComponent
human: String!
usfm: String!
}
type Group {
id: String!
name: String!
type: GroupType!
}
type Groups {
all(limit: Int!, offset: Int!): [Group!]!
}
type GroupsMutation {
addGroup(description: String!, groupType: GroupType!, name: String!): Group!
}
type Guide {
recurrences: [DateTime!]
rrule: String
step(date: DateTime, stepId: Int): GuideStep
stepCount: Int!
steps(limit: Int, offset: Int): [GuideStep!]!
template: Metadata
type: GuideType!
}
type GuideStep {
date: DateTime
id: Int!
metadata: Metadata
modules: [GuideStepModule!]!
}
type GuideStepModule {
id: Int!
metadata: Metadata
}
type GuideTemplate {
rrule: String
steps: [GuideTemplateStep!]!
type: GuideType!
}
type GuideTemplateStep {
id: Int!
metadata: Metadata
modules: [GuideTemplateStepModule!]!
}
type GuideTemplateStepModule {
id: Int!
metadata: Metadata
}
type GuideTemplates {
all: [GuideTemplate!]!
}
type Login {
password(identifier: String!, password: String!): LoginResponse!
}
type LoginMutation {
password(identifier: String!, password: String!): LoginResponse!
refreshToken(refreshToken: String!): LoginResponse!
}
type LoginResponse {
principal: Principal!
profile: Profile
refreshToken: String!
token: Token!
}
type Metadata {
attributes(filter: AttributesFilterInput): JSON
bible: Bible
categories: [Category!]!
collectionTemplate: CollectionTemplate
content: MetadataContent!
created: DateTime!
deleted: Boolean!
document: Document
documentTemplate: DocumentTemplate
etag(addHeader: Boolean!): String
guide: Guide
guideTemplate: GuideTemplate
id: String!
itemAttributes: JSON
labels: [String!]!
languageTag: String!
modified: DateTime!
name: String!
parentCollections(limit: Int!, offset: Int!): [Collection!]!
parentId: String
permissions: [Permission!]!
profiles: [MetadataProfile!]!
public: Boolean!
publicContent: Boolean!
publicSupplementary: Boolean!
ready: DateTime
relationships(filter: [String!], inverse: Boolean): [MetadataRelationship!]!
slug: String
source: MetadataSource!
supplementary(key: String, planId: String): [MetadataSupplementary!]!
systemAttributes: JSON
traitIds: [String!]!
type: MetadataType!
uploaded: DateTime
version: Int!
workflow: MetadataWorkflow!
}
type MetadataContent {
json: JSON!
length: Int
text: String!
type: String!
urls: MetadataContentUrls!
}
type MetadataContentUrls {
download: SignedUrl!
upload: SignedUrl!
}
type MetadataMutation {
add(collectionItemAttributes: JSON, metadata: MetadataInput!): Metadata!
addBulk(metadatas: [MetadataChildInput!]!): [Metadata!]!
addCategory(categoryId: String!, metadataId: String!): Boolean!
addDocument(parentCollectionId: String!, templateId: String!, templateVersion: Int!): Metadata
addGuide(parentCollectionId: String!, templateId: String!, templateVersion: Int!): Metadata
addGuideStep(metadataId: String!, metadataVersion: Int!, sort: Int!, templateId: String!, templateStepId: Int!, templateVersion: Int!): GuideStep!
addGuideStepModule(metadataId: String!, metadataVersion: Int!, sort: Int!, stepId: Int!, templateId: String!, templateModuleId: Int!, templateStepId: Int!, templateVersion: Int!): GuideStepModule!
addPermission(permission: PermissionInput!): Permission!
addRelationship(relationship: MetadataRelationshipInput!): MetadataRelationship!
addSupplementary(supplementary: MetadataSupplementaryInput!): MetadataSupplementary!
addTrait(metadataId: String!, traitId: String!): [WorkflowExecutionPlan!]!
delete(metadataId: String!): Boolean!
deleteCategory(categoryId: String!, metadataId: String!): Boolean!
deleteContent(metadataId: String!): Boolean!
deleteGuide(metadataId: String!, metadataVersion: Int!): Boolean!
deleteGuideStep(metadataId: String!, metadataVersion: Int!, stepId: Int!): Boolean!
deletePermission(permission: PermissionInput!): Permission!
deleteRelationship(id1: String!, id2: String!, relationship: String!): Boolean!
deleteSupplementary(id: String!): Boolean!
deleteTrait(metadataId: String!, traitId: String!): [WorkflowExecutionPlan!]!
detachSupplementary(id: String!): Boolean!
edit(id: String!, metadata: MetadataInput!): Metadata!
editRelationship(relationship: MetadataRelationshipInput!): Boolean!
mergeMetadataAttributes(attributes: JSON!, id: String!): Boolean!
mergeMetadataRelationshipAttributes(attributes: JSON!, metadata1Id: String!, metadata2Id: String!, relationship: String!): Boolean!
permanentlyDelete(metadataId: String!): Boolean!
setGuideStartDate(date: DateTime!, metadataId: String!, metadataVersion: Int!): Metadata
setMetadataAttributes(attributes: JSON!, id: String!): Boolean!
setMetadataBible(bible: BibleInput!, id: String!, version: Int!): Boolean!
setMetadataContents(contentType: String, file: Upload!, id: String!): Boolean!
setMetadataDocument(document: DocumentInput!, id: String!, version: Int!): Boolean!
setMetadataJsonContents(content: JSON!, contentType: String, id: String!): Boolean!
setMetadataReady(configurations: [WorkflowConfigurationInput!], id: String!): Boolean!
setMetadataSystemAttributes(attributes: JSON!, id: String!): Boolean!
setMetadataTextContents(content: String!, contentType: String, id: String!): Boolean!
setMetadataUploaded(configurations: [WorkflowConfigurationInput!], contentType: String, id: String!, len: Int!, ready: Boolean): Boolean!
setPublic(id: String!, public: Boolean!): Metadata!
setPublicContent(id: String!, public: Boolean!): Metadata!
setPublicSupplementary(id: String!, public: Boolean!): Metadata!
setSupplementaryContents(contentType: String!, file: Upload!, supplementaryId: String!): Boolean!
setSupplementaryTextContents(content: String!, contentType: String!, supplementaryId: String!): Boolean!
setSupplementaryUploaded(contentType: String!, len: Int!, supplementaryId: String!): Boolean!
setWorkflowState(state: MetadataWorkflowState!): Boolean!
setWorkflowStateComplete(state: MetadataWorkflowCompleteState!): Boolean!
}
type MetadataProfile {
profile: Profile
relationship: String!
}
type MetadataRelationship {
attributes: JSON
id: String!
metadata: Metadata!
relationship: String!
}
type MetadataSource {
id: String
identifier: String
sourceUrl: String
}
type MetadataSupplementary {
attributes: JSON
content: MetadataSupplementaryContent!
created: String!
id: String!
key: String!
metadataId: String!
modified: String!
name: String!
planId: String
source: MetadataSupplementarySource!
uploaded: String
}
type MetadataSupplementaryContent {
json: JSON!
length: Int
text: String!
type: String!
urls: MetadataSupplementaryContentUrls!
}
type MetadataSupplementaryContentUrls {
download: SignedUrl!
upload: SignedUrl!
}
type MetadataSupplementarySource {
id: String!
identifier: String
}
type MetadataWorkflow {
deleteWorkflow: String
pending: String
plans: [WorkflowExecutionPlan!]!
running: Int!
state: String!
stateValid: DateTime
}
type Model {
configuration: JSON!
description: String!
id: String!
name: String!
type: String!
}
type Models {
all: [Model!]!
model(id: String!): Model
}
type ModelsMutation {
add(model: ModelInput!): Model
delete(id: String!): Boolean!
edit(id: String!, model: ModelInput!): Model
}
type Mutation {
clearCache: Boolean!
configurations: ConfigurationsMutation!
content: ContentMutation!
persistedQueries: PersistedQueriesMutation!
profiles: ProfilesMutation!
security: SecurityMutation!
workflows: WorkflowsMutation!
}
type Ordering {
field: String
location: AttributeLocation
order: Order!
path: [String!]
type: AttributeType
}
type Permission {
action: PermissionAction!
group: Group!
groupId: String!
}
type PersistedQueriesMutation {
add(application: String!, query: String!, sha256: String!): Boolean!
addAll(application: String!, queries: [PersistedQueryInput!]!): Boolean!
delete(application: String!, sha256: String!): Boolean!
deleteAll: Boolean!
}
type PersistedQueriesObject {
all: [PersistedQuery!]!
query(sha256: String!): PersistedQuery
}
type PersistedQuery {
application: String!
query: String!
sha256: String!
}
type Principal {
credentials: [PrincipalCredential!]!
groups: [Group!]!
id: String!
verified: Boolean!
}
type PrincipalCredential {
identifier: String!
type: CredentialType!
}
type PrincipalMutation {
identifier(identifier: String!): Boolean!
password(identifier: String, newPassword: String!, oldPassword: String!): Boolean!
}
type Principals {
all(limit: Int!, offset: Int!): [Principal!]!
current: Principal!
}
type Profile {
attributes: [ProfileAttribute!]!
collection: Collection
id: String!
name: String!
principal: Principal
slug: String
visibility: ProfileVisibility!
}
type ProfileAttribute {
attributes: JSON
confidence: Int!
expires: DateTime
id: String!
metadata: Metadata
priority: Int!
source: String!
typeId: String!
visibility: ProfileVisibility!
}
type ProfileAttributeType {
description: String!
id: String!
name: String!
visibility: ProfileVisibility!
}
type ProfileAttributeTypes {
all: [ProfileAttributeType!]!
}
type Profiles {
all(limit: Int!, offset: Int!): [Profile!]!
attributeTypes: ProfileAttributeTypes!
current: Profile
profile(id: String!): Profile
}
type ProfilesMutation {
add(profile: ProfileInput!): Profile
addAttributeType(attribute: ProfileAttributeTypeInput!): Boolean!
deleteAttribute(attributeId: String!, id: String): Boolean!
deleteAttributeType(attributeId: String!): Boolean!
edit(id: String, profile: ProfileInput!): Profile
editAttributeType(attribute: ProfileAttributeTypeInput!): Boolean!
}
type Prompt {
description: String!
id: String!
inputType: String!
name: String!
outputType: String!
schema: JSON
systemPrompt: String!
userPrompt: String!
}
type Prompts {
all: [Prompt!]!
prompt(id: String!): Prompt
}
type PromptsMutation {
add(prompt: PromptInput!): Prompt
delete(id: String!): Boolean!
edit(id: String!, prompt: PromptInput!): Prompt
}
type Query {
caches: CachesObject!
configurations: Configurations!
content: Content!
persistedQueries: PersistedQueriesObject!
profiles: Profiles!
search(query: SearchQuery!): SearchResultObject!
security: Security!
server: Server!
workflows: Workflows!
}
type SearchDocument {
collection: Collection
metadata: Metadata
profile: Profile
}
type SearchResultFacet {
count: Int!
field: String!
value: String!
}
type SearchResultObject {
documents: [SearchDocument!]!
estimatedHits: Int!
facets: [SearchResultFacet!]!
}
type Security {
actions: [String!]!
groups: Groups!
login: Login!
principal: Principal!
principals: Principals!
}
type SecurityMutation {
addPrincipalGroup(groupId: String!, principalId: String!): Boolean!
expireRefreshTokens: Boolean!
groups: GroupsMutation!
login: LoginMutation!
principal(id: String): PrincipalMutation!
removePrincipalGroup(groupId: String!, principalId: String!): Boolean!
signup: SignupMutation!
}
type Server {
now: DateTime!
}
type SignedUrl {
headers: [SignedUrlHeader!]!
url: String!
}
type SignedUrlHeader {
name: String!
value: String!
}
type SignupMutation {
password(identifier: String!, password: String!, profile: ProfileInput!): Principal!
passwordVerify(verificationToken: String!): Boolean!
}
type Source {
configuration: JSON!
description: String!
id: String!
name: String!
}
type SourceMutation {
add(source: SourceInput!): Source
}
type Sources {
all: [Source!]!
source(id: String!): Source
}
type StorageSystem {
configuration: JSON
description: String!
id: String!
models: [StorageSystemModel!]!
name: String!
type: StorageSystemType!
}
type StorageSystemModel {
configuration: JSON!
model: Model
modelId: String!
}
type StorageSystems {
all: [StorageSystem!]!
storageSystem(id: String!): StorageSystem
}
type StorageSystemsMutation {
add(storageSystem: StorageSystemInput!): StorageSystem
delete(id: String!): Boolean!
edit(id: String!, storageSystem: StorageSystemInput!): StorageSystem
}
type Subscription {
activity: String!
category: String!
collection: String!
collectionSupplementary: SupplementaryIdObject!
configuration: String!
metadata: String!
metadataSupplementary: SupplementaryIdObject!
model: String!
prompt: String!
state: String!
storageSystem: String!
trait: String!
transition: TransitionIdObject!
workflow: String!
workflowPlanFailed: WorkflowExecutionId!
workflowPlanFinished: WorkflowExecutionId!
workflowSchedule: String!
}
type SupplementaryIdObject {
contentId: String!
id: String!
key: String!
planId: String
}
type TemplateAttribute {
configuration: JSON
description: String!
key: String!
list: Boolean!
location: AttributeLocation!
name: String!
supplementaryKey: String
type: AttributeType!
ui: AttributeUiType!
workflows: [TemplateWorkflow!]!
}
type TemplateWorkflow {
autoRun: Boolean!
workflow: Workflow
}
type Token {
expiresAt: Int!
issuedAt: Int!
token: String!
}
type Trait {
contentTypes: [String!]!
deleteWorkflowId: String
description: String!
id: String!
name: String!
workflowIds: [String!]!
workflows: [Workflow!]!
}
type Traits {
all: [Trait!]!
trait(id: String!): Trait
}
type TraitsMutation {
add(model: TraitInput!): Trait
delete(id: String!): Boolean!
edit(model: TraitInput!): Trait
}
type Transition {
description: String!
fromStateId: String!
toStateId: String!
}
type TransitionIdObject {
fromStateId: String!
toStateId: String!
}
type Transitions {
all: [Transition!]!
transition(fromStateId: String!, toStateId: String!): Transition
}
type TransitionsMutation {
add(transition: TransitionInput!): Transition
delete(fromStateId: String!, toStateId: String!): Boolean!
edit(transition: TransitionInput!): Transition
}
type Workflow {
activities: [WorkflowActivity!]!
configuration: JSON!
description: String!
id: String!
name: String!
queue: String!
}
type WorkflowActivity {
activityId: String!
configuration: JSON
executionGroup: Int!
id: Int!
inputs: [WorkflowActivityParameter!]!
models: [WorkflowActivityModel!]!
outputs: [WorkflowActivityParameter!]!
prompts: [WorkflowActivityPrompt!]!
queue: String!
storageSystems: [WorkflowActivityStorageSystem!]!
}
type WorkflowActivityModel {
configuration: JSON
model: Model!
}
type WorkflowActivityParameter {
name: String!
value: String!
}
type WorkflowActivityPrompt {
configuration: JSON
prompt: Prompt!
}
type WorkflowActivityStorageSystem {
configuration: JSON
system: StorageSystem!
}
type WorkflowExecutionId {
id: String!
queue: String!
}
type WorkflowExecutionPlan {
active: [Int!]!
cancelled: Boolean!
collectionId: String
complete: [Int!]!
context: JSON
error: String
failed: [Int!]!
id: WorkflowExecutionId!
jobs: [WorkflowJob!]!
metadata: Metadata
metadataId: String
metadataVersion: Int
parent: WorkflowJobId
supplementaryId: String
workflow: Workflow!
}
type WorkflowJob {
activity: Activity!
children: [WorkflowExecutionId!]!
collection: Collection
collectionId: String
completedChildren: [WorkflowExecutionId!]!
context: JSON
error: String
failedChildren: [WorkflowExecutionId!]!
id: WorkflowJobId!
metadata: Metadata
metadataVersion: Int
models: [WorkflowActivityModel!]!
parent: WorkflowJobId
planId: WorkflowExecutionId!
profile: Profile
prompts: [WorkflowActivityPrompt!]!
storageSystems: [WorkflowActivityStorageSystem!]!
supplementaryId: String
workflow: Workflow!
workflowActivity: WorkflowActivity!
}
type WorkflowJobId {
id: String!
index: Int!
queue: String!
}
type WorkflowSchedule {
attributes: JSON
collection: Collection
configuration: JSON
enabled: Boolean!
ends: DateTime
id: String!
lastRun: DateTime
lastScheduled: DateTime
metadata: Metadata
nextRun: DateTime
rrule: String!
starts: DateTime!
workflow: Workflow
}
type WorkflowSchedules {
all: [WorkflowSchedule!]!
}
type WorkflowSchedulesMutation {
add(collectionId: String, metadataId: String, schedule: WorkflowScheduleInput!): WorkflowSchedule
delete(id: String!): Boolean!
}
type WorkflowState {
configuration: JSON
description: String!
entryWorkflowId: String
exitWorkflowId: String
id: String!
name: String!
type: WorkflowStateType!
workflowId: String
}
type WorkflowStates {
all: [WorkflowState!]!
state(id: String!): WorkflowState
}
type WorkflowStatesMutation {
add(state: WorkflowStateInput!): WorkflowState
delete(id: String!): Boolean!
edit(state: WorkflowStateInput!): WorkflowState
}
type Workflows {
activities: Activities!
all: [Workflow!]!
executionPlan(id: String!, queue: String!): WorkflowExecutionPlan
executions(limit: Int!, offset: Int!, queue: String!): [WorkflowExecution!]!
models: Models!
nextJob(queue: String!): WorkflowJob
prompts: Prompts!
schedules: WorkflowSchedules!
states: WorkflowStates!
storageSystems: StorageSystems!
testPlan(collectionId: String, configurations: [WorkflowConfigurationInput!], delayUntil: DateTime, metadataId: String, metadataVersion: Int, profileId: String, storageSystemIds: [String!], traitId: String, workflowId: String): WorkflowExecutionPlan
traits: Traits!
transitions: Transitions!
workflow(id: String!): Workflow
workflowActivity(id: Int!): WorkflowActivity
}
type WorkflowsMutation {
activities: ActivitiesMutation!
add(workflow: WorkflowInput!): Workflow!
beginTransition(configurations: [WorkflowConfigurationInput!], request: BeginTransitionInput!): Boolean!
cancelTransition(collectionId: String, metadataId: String, metadataVersion: Int): Boolean!
cancelWorkflows(collectionId: String, metadataId: String, metadataVersion: Int, workflowId: String!): Boolean!
delete(id: String!): Boolean!
edit(workflow: WorkflowInput!): Workflow!
enqueueChildWorkflow(configurations: [WorkflowConfigurationInput!], delayUntil: DateTime, jobId: WorkflowJobIdInput!, workflowId: String!): WorkflowExecutionId!
enqueueChildWorkflows(delayUntil: DateTime, jobId: WorkflowJobIdInput!, workflowIds: [String!]!): [WorkflowExecutionId!]!
enqueueWorkflow(collectionId: String, configurations: [WorkflowConfigurationInput!], delayUntil: DateTime, metadataId: String, profileId: String, version: Int, workflowId: String!): WorkflowExecutionId!
expireAll: Boolean!
findAndEnqueueWorkflow(configurations: [WorkflowConfigurationInput!], delayUntil: DateTime, query: FindQueryInput!, workflowId: String!): [WorkflowExecutionId!]!
models: ModelsMutation!
prompts: PromptsMutation!
retryAllFailed: Boolean!
schedules: WorkflowSchedulesMutation!
setExecutionPlanContext(context: JSON!, planId: WorkflowExecutionIdInput!): Boolean!
setExecutionPlanJobCheckin(jobId: WorkflowJobIdInput!): Boolean!
setExecutionPlanJobComplete(jobId: WorkflowJobIdInput!): Boolean!
setExecutionPlanJobContext(context: JSON!, jobId: WorkflowJobIdInput!): Boolean!
setExecutionPlanJobDelayed(delayedUntil: DateTime!, jobId: WorkflowJobIdInput!): Boolean!
setExecutionPlanJobFailed(error: String!, jobId: WorkflowJobIdInput!, tryAgain: Boolean!): Boolean!
states: WorkflowStatesMutation!
storageSystems: StorageSystemsMutation!
traits: TraitsMutation!
transitions: TransitionsMutation!
}
enum ActivityParameterType {
CONTEXT
SUPPLEMENTARY
SUPPLEMENTARY_ARRAY
}
enum AttributeLocation {
ITEM
RELATIONSHIP
}
enum AttributeType {
COLLECTION
DATE
DATE_TIME
FLOAT
INT
METADATA
PROFILE
STRING
}
enum AttributeUiType {
COLLECTION
FILE
IMAGE
INPUT
METADATA
PROFILE
TEXTAREA
}
enum CollectionType {
FOLDER
QUEUE
ROOT
STANDARD
SYSTEM
}
enum ContainerType {
COLUMN
DIV
PARAGRAPH
ROW
SPAN
TABLE
}
enum CredentialType {
OAUTH_2
PASSWORD
}
enum DocumentTemplateContainerType {
BIBLE
STANDARD
}
enum ExtensionFilterType {
COLLECTION_TEMPLATE
DOCUMENT
DOCUMENT_TEMPLATE
GUIDE
GUIDE_TEMPLATE
}
enum GroupType {
PRINCIPAL
SYSTEM
}
enum GuideType {
CALENDAR
CALENDAR_PROGRESS
LINEAR
LINEAR_PROGRESS
}
enum MetadataType {
STANDARD
VARIANT
}
enum Order {
ASCENDING
DESCENDING
}
enum PermissionAction {
DELETE
EDIT
EXECUTE
IMPERSONATE
LIST
MANAGE
VIEW
}
enum ProfileVisibility {
FRIENDS
FRIENDS_OF_FRIENDS
PUBLIC
SYSTEM
USER
}
enum StorageSystemType {
SEARCH
SUPPLEMENTARY
VECTOR
}
enum WorkflowStateType {
APPROVAL
APPROVED
DRAFT
FAILURE
PENDING
PROCESSING
PUBLISHED
}
"""
Implement the DateTime<Utc> scalar
The input/output is a string in RFC3339 format.
"""
scalar DateTime
"A scalar that can represent any JSON value."
scalar JSON
scalar Upload
input ActivityInput {
childWorkflowId: String
configuration: JSON
description: String!
id: String!
inputs: [ActivityParameterInput!]!
name: String!
outputs: [ActivityParameterInput!]!
}
input ActivityParameterInput {
name: String!
type: ActivityParameterType!
}
input AttributesFilterInput {
attributes: [String!]!
childAttributes: AttributesFilterInput
}
input BeginTransitionInput {
collectionId: String
metadataId: String
restart: Boolean
stateId: String!
stateValid: DateTime
status: String!
supplementaryId: String
version: Int
waitForCompletion: Boolean
}
input BibleInput {
abbreviation: String!
abbreviationLocal: String!
books: [BookInput!]!
description: String!
language: BibleLanguageInput!
name: String!
nameLocal: String!
styles: [StyleInput!]!
systemId: String!
}
input BibleLanguageInput {
iso: String!
name: String!
nameLocal: String!
script: String!
scriptCode: String!
scriptDirection: String!
}
input BookInput {
abbreviation: String!
chapters: [ChapterInput!]!
nameLong: String!
nameShort: String!
reference: ReferenceInput!
}
input BreakInput {
style: StyleInput
}
input CategoryInput {
name: String!
}
input ChapterInput {
component: ComponentInput!
reference: ReferenceInput!
}
input CollectionChildInput {
attributes: JSON
collection: CollectionInput!
}
input CollectionInput {
attributes: JSON
categoryIds: [String!]
collectionType: CollectionType
collections: [CollectionChildInput!]
description: String
labels: [String!]
metadata: [MetadataChildInput!]
name: String!
ordering: [OrderingInput!]
parentCollectionId: String
slug: String
state: CollectionWorkflowInput
templateMetadataId: String
templateMetadataVersion: Int
traitIds: [String!]
}
input CollectionMetadataRelationshipInput {
attributes: JSON
id: String!
metadataId: String!
relationship: String
}
input CollectionSupplementaryInput {
attributes: JSON
collectionId: String!
contentLength: Int
contentType: String!
key: String!
name: String!
planId: String!
sourceId: String
sourceIdentifier: String
}
input CollectionTemplateFilterInput {
filter: String!
name: String!
}
input CollectionTemplateFiltersInput {
filters: [CollectionTemplateFilterInput!]!
}
input CollectionTemplateInput {
attributes: [TemplateAttributeInput!]!
configuration: JSON
defaultAttributes: JSON
filters: CollectionTemplateFiltersInput
ordering: [OrderingInput!]
}
input CollectionWorkflowCompleteState {
collectionId: String!
status: String!
}
input CollectionWorkflowInput {
deleteWorkflowId: String
state: String!
}
input CollectionWorkflowState {
collectionId: String!
immediate: Boolean!
stateId: String!
status: String!
}
input ComponentContainerInput {
components: [ComponentInput!]!
style: StyleInput
type: ContainerType!
}
input ComponentInput {
break: BreakInput
container: ComponentContainerInput
end: VerseEndInput
start: VerseStartInput
text: TextInput
}
input ConfigurationInput {
description: String!
key: String!
permissions: [PermissionInput!]!
public: Boolean!
value: JSON!
}
input DocumentInput {
content: JSON!
templateMetadataId: String
templateMetadataVersion: Int
title: String!
}
input DocumentTemplateContainerInput {
containerType: DocumentTemplateContainerType
description: String!
id: String!
name: String!
supplementaryKey: String
workflows: [TemplateWorkflowInput!]!
}
input DocumentTemplateInput {
attributes: [TemplateAttributeInput!]!
configuration: JSON
containers: [DocumentTemplateContainerInput!]
content: JSON!
defaultAttributes: JSON
schema: JSON
}
input FindAttributeInput {
key: String!
value: String!
}
input FindAttributesInput {
attributes: [FindAttributeInput!]!
}
input FindQueryInput {
attributes: [FindAttributesInput!]!
categoryIds: [String!]
collectionType: CollectionType
contentTypes: [String!]
extensionFilter: ExtensionFilterType
limit: Int
offset: Int
ordering: [OrderingInput!]
}
input GuideInput {
guideType: GuideType!
rrule: String
steps: [GuideStepInput!]!
templateMetadataId: String
templateMetadataVersion: Int
}
input GuideStepInput {
metadata: MetadataInput
modules: [GuideStepModuleInput!]!
stepMetadataId: String
stepMetadataVersion: Int
}
input GuideStepModuleInput {
metadata: MetadataInput
moduleMetadataId: String
moduleMetadataVersion: Int
}
input GuideTemplateInput {
rrule: String!
steps: [GuideTemplateStepInput!]!
type: GuideType!
}
input GuideTemplateStepInput {
modules: [GuideTemplateStepModuleInput!]!
templateMetadataId: String!
templateMetadataVersion: Int!
}
input GuideTemplateStepModuleInput {
templateMetadataId: String!
templateMetadataVersion: Int!
}
input MetadataChildInput {
attributes: JSON
metadata: MetadataInput!
}
input MetadataInput {
attributes: JSON
categoryIds: [String!]
collectionTemplate: CollectionTemplateInput
contentLength: Int
contentType: String!
document: DocumentInput
documentTemplate: DocumentTemplateInput
guide: GuideInput
guideTemplate: GuideTemplateInput
labels: [String!]
languageTag: String!
metadataType: MetadataType
name: String!
parentCollectionId: String
parentId: String
profiles: [MetadataProfileInput!]
slug: String
source: MetadataSourceInput
state: MetadataWorkflowInput
traitIds: [String!]
version: Int
}
input MetadataProfileInput {
profileId: String!
relationship: String!
}
input MetadataRelationshipInput {
attributes: JSON
id1: String!
id2: String!
relationship: String
}
input MetadataSourceInput {
id: String
identifier: String
sourceUrl: String
}
input MetadataSupplementaryInput {
attributes: JSON
contentLength: Int
contentType: String!
key: String!
metadataId: String!
name: String!
planId: String!
sourceId: String
sourceIdentifier: String
}
input MetadataWorkflowCompleteState {
metadataId: String!
status: String!
}
input MetadataWorkflowInput {
deleteWorkflowId: String
state: String!
}
input MetadataWorkflowState {
immediate: Boolean!
metadataId: String!
stateId: String!
status: String!
}
input ModelInput {
configuration: JSON!
description: String!
name: String!
type: String!
}
input OrderingInput {
field: String
location: AttributeLocation
order: Order!
path: [String!]
type: AttributeType
}
input PermissionInput {
action: PermissionAction!
entityId: String!
groupId: String!
}
input PersistedQueryInput {
query: String!
sha256: String!
}
input ProfileAttributeInput {
attributes: JSON
confidence: Int!
expiration: DateTime
id: String
metadataId: String
metadataSupplementary: String
priority: Int!
source: String!
typeId: String!
visibility: ProfileVisibility!
}
input ProfileAttributeTypeInput {
description: String!
id: String!
name: String!
visibility: ProfileVisibility!
}
input ProfileInput {
attributes: [ProfileAttributeInput!]!
name: String!
slug: String
visibility: ProfileVisibility!
}
input PromptInput {
description: String!
inputType: String!
name: String!
outputType: String!
schema: JSON
systemPrompt: String!
userPrompt: String!
}
input ReferenceInput {
usfm: String!
}
input SearchQuery {
facets: [String!]
filter: String
limit: Int
offset: Int
query: String!
sort: [String!]
storageSystemId: String
storageSystemName: String
}
input SourceInput {
configuration: JSON!
description: String!
name: String!
}
input StorageSystemInput {
configuration: JSON
description: String!
models: [StorageSystemModelInput!]!
name: String!
type: StorageSystemType!
}
input StorageSystemModelInput {
configuration: JSON!
modelId: String!
}
input StyleInput {
align: String
fontWeight: String
id: String!
reference: Boolean!
textIndent: TextIndentInput
}
input TemplateAttributeInput {
configuration: JSON
description: String!
key: String!
list: Boolean!
location: AttributeLocation
name: String!
supplementaryKey: String
type: AttributeType!
ui: AttributeUiType!
workflows: [TemplateWorkflowInput!]!
}
input TemplateWorkflowInput {
autoRun: Boolean!
workflowId: String!
}
input TextIndentInput {
size: Float!
unit: String!
}
input TextInput {
style: StyleInput
text: String!
}
input TraitInput {
contentTypes: [String!]!
deleteWorkflowId: String
description: String!
id: String!
name: String!
workflowIds: [String!]!
}
input TransitionInput {
description: String!
fromStateId: String!
toStateId: String!
}
input VerseEndInput {
reference: ReferenceInput!
}
input VerseStartInput {
reference: ReferenceInput!
}
input WorkflowActivityInput {
activityId: String!
configuration: JSON
description: String!
executionGroup: Int!
inputs: [WorkflowActivityParameterInput!]!
models: [WorkflowActivityModelInput!]!
outputs: [WorkflowActivityParameterInput!]!
prompts: [WorkflowActivityPromptInput!]!
queue: String!
storageSystems: [WorkflowActivityStorageSystemInput!]!
}
input WorkflowActivityModelInput {
configuration: JSON
modelId: String!
}
input WorkflowActivityParameterInput {
name: String!
value: String!
}
input WorkflowActivityPromptInput {
configuration: JSON
promptId: String!
}
input WorkflowActivityStorageSystemInput {
configuration: JSON
systemId: String!
}
input WorkflowConfigurationInput {
activityId: String!
configuration: JSON!
}
input WorkflowExecutionIdInput {
id: String!
queue: String!
}
input WorkflowInput {
activities: [WorkflowActivityInput!]!
configuration: JSON!
description: String!
id: String!
name: String!
queue: String!
}
input WorkflowJobIdInput {
id: String!
index: Int!
queue: String!
}
input WorkflowScheduleInput {
attributes: JSON
configuration: JSON
enabled: Boolean!
ends: DateTime
rrule: String!
workflowId: String!
}
input WorkflowStateInput {
configuration: JSON!
description: String!
entryWorkflowId: String
exitWorkflowId: String
id: String!
name: String!
type: WorkflowStateType!
workflowId: String
}