# App Authoring

Custom apps, dashboards, data schemas, records and clips.

## Operations

```graphql
# App Authoring (app-authoring)
# Custom apps, dashboards, data schemas, records and clips.
# Query
compileSchemaXML: String!  # Compile standalone XML schema syntax into JSON Schema without persisting it; host restrictions apply when embedded
dataRecordsBySchema: DataRecordConnection!  # List data records for a schema with pagination
dataRecordsByTaggable: DataRecordConnection!  # List data records tagged to a specific entity with pagination
dataSchemas: DataSchemaConnection!  # List all data schemas for the current tenant with pagination
generateDefaultDataQuery: String  # Generate a default GraphQL data query for an event topic
getAPIClientDefinition: APIClientDefinition  # Read a tenant API definition and its current compilation status
getCustomApp: CustomAppState  # Fetch a custom app by ID
getCustomAppByHandle: CustomAppState  # Fetch a custom app by handle
getCustomAppVersion: CustomAppVersionState  # Fetch a custom app version by ID
getCustomDataContainer: CustomDataContainerState  # Fetch a custom data container by ID
getDashboard: DashboardState  # Fetch a dashboard by ID with its cards
getDashboardCard: DashboardCardState  # Fetch a single dashboard card
getDataClip: DataClipState  # Get a data clip by ID
getDataRecord: DataRecordState  # Fetch a data record by ID
getDataSchema: DataSchemaState  # Fetch a data schema by ID
getDataSchemaByName: DataSchemaState  # Fetch a data schema by name
getExternalSchema: ExternalSchemaState  # Fetch an external schema by ID
getMagicQueryGraphQL: MagicQueryOperation!  # Resolves a Magic Query string to the real GraphQL operation and variables it runs, so consumers can graduate from the façade to raw GraphQL
getMagicQuerySchema: MagicQuerySchema!  # Returns the input JSON Schema and output introspection for a Magic Query noun, so consumers (especially LLMs) can learn its contract before calling magicQuery
getProtobufSchema: ProtobufSchemaState  # Fetch a protobuf schema by ID
getProtobufSchemaByName: ProtobufSchemaState  # Fetch a protobuf schema by name
getSharedResource: SharedResourceEnvelope  # Fetch a single catalog template's metadata by id
helpChapter: HelpChapter  # Read a chapter of the current published manual edition
helpChapters: [HelpChapterInfo!]!  # List human-facing manual chapters from the running deployment
iacGuides: [IaCGuide!]!  # Every authoring guide, for a tool that syncs them to a folder
iacSchema: IaCSchemaDocument!  # The infrastructure-only view of this schema, for declarative tooling
iacSchemaDocument: IaCSchemaDocumentPayload!  # Fetch the JSON Schema document a SCHEMA-kind validator references, for declarative tooling
iacValidate: IaCValidationResult!  # Validate an infrastructure artifact
listAPIClientDefinitions: APIClientDefinitionConnection!  # List tenant API definitions, optionally restricted to one uploaded schema
listCustomAppTeams: CustomAppTeamConnection!  # List custom app team bindings
listCustomAppUsers: CustomAppUserConnection!  # List custom app user bindings
listCustomAppVersions: CustomAppVersionConnection!  # List versions for a custom app
listCustomApps: CustomAppConnection!  # List custom apps with pagination and filtering
listCustomDataContainersByApp: CustomDataContainerConnection!  # List containers for a custom app with pagination
listCustomDataContainersByTaggable: CustomDataContainerConnection!  # List containers tagged to a specific entity with pagination
listDashboards: DashboardConnection!  # List dashboards visible to the current user
listDataChangeEventTopics: [DataChangeEventGroup!]!  # List all valid data change event topics, grouped by resource
listDataClips: DataClipConnection!  # List data clips for the current tenant
listDataRecords: DataRecordConnection!  # List data records with pagination
listDataSchemas: DataSchemaConnection!  # List data schemas with pagination
listExternalSchemaEntries: ExternalSchemaEntryConnection!  # List entries for an external schema
listExternalSchemas: ExternalSchemaConnection!  # List external schemas with pagination and filtering
listMagicQueries: [MagicQueryInfo!]!  # Lists every available Magic Query noun with a short description and its options — the discovery entry point
listProtobufSchemas: ProtobufSchemaConnection!  # List protobuf schemas with pagination
magicQuery: JSON!  # Executes a Magic Query string and returns the predefined query's JSON result
ping: String!  # Health check endpoint
previewDataClip: ReportQueryPayload!  # Preview a MicroSQL query without saving (returns tabular results)
renderSchemaXML: String!  # Render JSON Schema as native XML without dropping unsupported keywords or changing a saved document
schemaAuthoringCatalog: JSON!  # Compiler-owned vocabulary for the standalone XML JSON Schema dialect, including native form annotations
searchHelp: HelpSearchResult!  # Search human-facing manuals using shared semantic and text retrieval
searchSchemaFields: [SchemaDocSearchResult!]!  # Semantic search over GraphQL fields on types
searchSchemaMutations: [SchemaDocSearchResult!]!  # Semantic search over GraphQL mutation operations
searchSchemaQueries: [SchemaDocSearchResult!]!  # Semantic search over GraphQL query operations
searchSchemaTypes: [SchemaDocSearchResult!]!  # Semantic search over GraphQL types (objects, inputs, enums)
sharedResourceInstallations: [SharedResourceInstallationState!]!  # Every catalog template this tenant has installed, with the version installed — the basis for detecting available upgrades
sharedResources: SharedResourceConnection!  # Browse the shared-resource catalog served by ControlApp, with optional type, text and category filters
# Mutation
attachCustomAppTeam: AttachCustomAppTeamPayload!  # Attach a team to a custom app
attachCustomAppUser: AttachCustomAppUserPayload!  # Attach a user to a custom app
createCustomApp: UpsertCustomAppPayload!  # Create a new custom app
createCustomAppSession: CustomAppSession!  # Create a session token for a custom app
createCustomAppVersion: CreateCustomAppVersionPayload!  # Create a new version snapshot of a custom app
createCustomDataContainer: UpsertCustomDataContainerPayload!  # Create a custom data container
createDashboard: UpsertDashboardPayload!  # Create a new dashboard
createDashboardCard: UpsertDashboardCardPayload!  # Create a card on a dashboard
createDataClip: UpsertDataClipPayload!  # Create a new data clip
createDataRecord: UpsertDataRecordPayload!  # Create a new data record
createDataSchema: UpsertDataSchemaPayload!  # Create a new data schema
createExternalSchema: UpsertExternalSchemaPayload!  # Create a new external schema
createProtobufSchema: UpsertProtobufSchemaPayload!  # Create a new protobuf schema
deleteAPIClientDefinition: DeletePayload!  # Delete an API definition only when its current revision matches
deleteCustomApp: DeletePayload!  # Delete a custom app
deleteCustomAppVersion: DeletePayload!  # Delete a custom app version
deleteCustomDataContainer: DeletePayload!  # Delete a custom data container
deleteDashboard: DeletePayload!  # Delete a dashboard and all its cards
deleteDashboardCard: DeleteDashboardCardPayload!  # Delete a card from a dashboard
deleteDataClip: DeletePayload!  # Delete a data clip
deleteDataRecord: DeletePayload!  # Delete a data record
deleteDataSchema: DeletePayload!  # Delete a data schema
deleteExternalSchema: DeletePayload!  # Delete an external schema and all its entries
deleteProtobufSchema: DeletePayload!  # Delete a protobuf schema
detachCustomAppTeam: DetachCustomAppTeamPayload!  # Detach a team from a custom app
detachCustomAppUser: DetachCustomAppUserPayload!  # Detach a user from a custom app
exportDashboard: ExportDashboardPayload!  # Export a dashboard and its cards to YAML or JSON
importDashboard: ImportDashboardPayload!  # Import a dashboard from YAML or JSON, creating a new dashboard
installSharedResource: InstallSharedResourcePayload!  # Install a catalog template into the calling tenant, creating or updating the corresponding domain resource and recording the installation with ControlApp
publishCustomApp: UpsertCustomAppPayload!  # Publish a specific version of a custom app, making it visible to end users
rollDataClipShareToken: RollShareTokenPayload!  # Roll/regenerate the share token for a data clip, invalidating old links
saveAPIClientDefinition: SaveAPIClientDefinitionPayload!  # Create or replace an API definition and compile its types without I/O
setCustomAppEngineVersion: UpsertCustomAppPayload!  # Upgrade a custom app's engine to v2 after a script-shape lint
updateCustomApp: UpsertCustomAppPayload!  # Update a custom app
updateCustomDataContainer: UpsertCustomDataContainerPayload!  # Update a custom data container
updateDashboard: UpsertDashboardPayload!  # Update a dashboard
updateDashboardCard: UpsertDashboardCardPayload!  # Update a dashboard card in place
updateDashboardLayout: UpdateDashboardLayoutPayload!  # Bulk update card positions after drag/resize operations
updateDataClip: UpsertDataClipPayload!  # Update a data clip
updateDataRecord: UpsertDataRecordPayload!  # Update a data record
updateDataSchema: UpsertDataSchemaPayload!  # Update a data schema
updateExternalSchema: UpsertExternalSchemaPayload!  # Update an external schema
updateProtobufSchema: UpsertProtobufSchemaPayload!  # Update a protobuf schema
upsertCustomApp: UpsertCustomAppPayload!  # Create or update a custom app
upsertCustomDataContainer: UpsertCustomDataContainerPayload!  # Create or update a custom data container
upsertDashboard: UpsertDashboardPayload!  # Create or update a dashboard
upsertDashboardCard: UpsertDashboardCardPayload!  # Create or update a card within a dashboard
upsertDataClip: UpsertDataClipPayload!  # Create or update a data clip
upsertDataRecord: UpsertDataRecordPayload!  # Create or update a data record
upsertDataSchema: UpsertDataSchemaPayload!  # Create or update a data schema
upsertExternalSchema: UpsertExternalSchemaPayload!  # Create or update an external schema
upsertProtobufSchema: UpsertProtobufSchemaPayload!  # Create or update a protobuf schema
# Subscription
dataChangeEvents: DataChangeEvent!  # Subscribe to real-time data change events

# Call describe_operation(name) for arguments and input types.
```

## Exact schema

Download [complete SDL](/schemas/app-authoring.graphql) (155812 bytes). Use the SDL to validate operations; the digest omits argument signatures.

## Guides
