Skip to main content

AppMutations

No description

type AppMutations {
createApp(
name: String!
description: String!
): AppData
updateApp(
publicId: String!
name: String!
description: String!
): App
setAppPaused(
publicId: String!
paused: Boolean!
): App
deleteApp(
publicId: String!
confirmReleased: Boolean!
): Boolean
writeAppFile(
publicId: String!
path: String!
content: String!
): AppFile
deleteAppFile(
publicId: String!
path: String!
): Boolean
renameAppFile(
publicId: String!
from: String!
to: String!
): AppFile
releaseApp(
publicId: String!
): AppData
startAppBuild(
publicId: String!
): AppBuild
mintAppTicket(
appHostId: String!
): String
setAppAgents(
publicId: String!
agentPublicIds: [String!]!
): [AppAgent!]
setAppEndpoints(
publicId: String!
processPublicIds: [String!]!
): [AppEndpoint!]
}

Fields​

AppMutations.createApp ● AppData object​

Create an app: two origins (draft and release), a draft version, and the starter scaffold

AppMutations.createApp.name ● String! non-null scalar​
AppMutations.createApp.description ● String! non-null scalar​

AppMutations.updateApp ● App object​

Rename an app or change its description

AppMutations.updateApp.publicId ● String! non-null scalar​
AppMutations.updateApp.name ● String! non-null scalar​
AppMutations.updateApp.description ● String! non-null scalar​

AppMutations.setAppPaused ● App object​

Pause an app: its release origin answers 503 while its draft stays editable

AppMutations.setAppPaused.publicId ● String! non-null scalar​
AppMutations.setAppPaused.paused ● Boolean! non-null scalar​

AppMutations.deleteApp ● Boolean scalar​

Delete an app, its versions, files and origins

AppMutations.deleteApp.publicId ● String! non-null scalar​
AppMutations.deleteApp.confirmReleased ● Boolean! non-null scalar​

Required to delete a RELEASED app: doing so takes down a URL people may have bookmarked

AppMutations.writeAppFile ● AppFile object​

Create or replace one file in the app's DRAFT. No mutation names a version: a released version is unreachable from every write path

AppMutations.writeAppFile.publicId ● String! non-null scalar​
AppMutations.writeAppFile.path ● String! non-null scalar​

Repo-relative, under src/ or public/. src/honeybase/ is reserved for the generated SDK

AppMutations.writeAppFile.content ● String! non-null scalar​

AppMutations.deleteAppFile ● Boolean scalar​

Delete one file from the app's draft

AppMutations.deleteAppFile.publicId ● String! non-null scalar​
AppMutations.deleteAppFile.path ● String! non-null scalar​

AppMutations.renameAppFile ● AppFile object​

Move one file within the app's draft

AppMutations.renameAppFile.publicId ● String! non-null scalar​
AppMutations.renameAppFile.from ● String! non-null scalar​
AppMutations.renameAppFile.to ● String! non-null scalar​

AppMutations.releaseApp ● AppData object​

Release the draft: stamp it, point the app at it, and clone a fresh draft. Refused unless the draft matches a build that succeeded

AppMutations.releaseApp.publicId ● String! non-null scalar​

AppMutations.startAppBuild ● AppBuild object​

Queue a build of the app's draft and return its row immediately. Watch it with subscriptions.apps.watchAppBuild

AppMutations.startAppBuild.publicId ● String! non-null scalar​

AppMutations.mintAppTicket ● String scalar​

Mint a single-use, short-lived ticket that signs the caller in to one of their app's origins. The app never sees the Honeybase session

AppMutations.mintAppTicket.appHostId ● String! non-null scalar​

Which of the app's two origins (draft or release) to sign in to

AppMutations.setAppAgents ● [AppAgent!] list object​

Replace the agents this app may invoke. Requires canManageReleases, not just build access: every user of the app can then spend the organization's AI budget through them

AppMutations.setAppAgents.publicId ● String! non-null scalar​
AppMutations.setAppAgents.agentPublicIds ● [String!]! non-null scalar​

The COMPLETE list of agents this app may invoke. Anything omitted is undeclared

AppMutations.setAppEndpoints ● [AppEndpoint!] list object​

Replace the endpoints this app may invoke. Requires canManageReleases and canBuildWorkflows: declaring is a grant, and only someone who may run an endpoint may hand it to an app

AppMutations.setAppEndpoints.publicId ● String! non-null scalar​
AppMutations.setAppEndpoints.processPublicIds ● [String!]! non-null scalar​

The COMPLETE list of endpoints (process public ids) this app may invoke. Anything omitted is undeclared, and an app session calling an undeclared endpoint is refused with 403 app_endpoint_not_declared

Returned By​

apps mutation