Skip to content
Open console

Enter a topic to search documentation.

    Resource schemas

    Generated fields and validation rules for app-studio workspace resources.

    Compatibility and access

    Generated from product commit 6f341b4e6d35 . This is a source snapshot, not a guarantee that your deployment runs this version.

    These resource schemas describe provider configuration. Check your deployed API discovery for the schema installed in your hub. Use the intended workspace context and an identity permitted to read or change the resource. Required fields below are required within their containing object; optional parent objects may be omitted.

    Download complete schemas , including nested validation rules and status definitions. This page covers Kubernetes-style resources; provider HTTP actions and runtime behavior are separate contracts. Return to API reference for those interfaces and related guides.

    Project (v1alpha1)

    API: ai.faros.sh/v1alpha1 · Resource: projects · Scope: Cluster

    Source schema

    Terminal
    kubectl explain projects.ai.faros.sh --api-version=ai.faros.sh/v1alpha1 --recursive

    FieldTypeRequired in parentDescription and constraints
    specobjectNoProjectSpec defines user-authored Project state.
    spec.descriptionstringNoDescription is a short project summary. maxLength: 2048
    spec.displayNamestringYesDisplayName is the human-readable project title. minLength: 1; maxLength: 128
    spec.environmentsarray[object]NoEnvironments describe provider-backed runtime capabilities for this Project. App Studio owns the binding contract; providers own runtime implementation details.
    spec.environments[].autoDeploybooleanNoAutoDeploy marks artifact environments that should deploy automatically.
    spec.environments[].bindingsarray[object]NoBindings connect this environment to provider capabilities.
    spec.environments[].bindings[].allowedActionsarray[object]NoAllowedActions is the versioned allow-list for non-owning provider references. Owning providerResource bindings may leave this empty; the integration gateway requires an explicitly declared action before it forwards a call.
    spec.environments[].bindings[].allowedActions[].grantedAtstringNoGrantedAt is the server time at which the catalog-backed grant was verified. Clients cannot set or replace this audit value.
    spec.environments[].bindings[].allowedActions[].grantedBystringNoGrantedBy is the authenticated caller recorded by the server when the action grant is verified against the provider catalog. Clients cannot set or replace this audit value.
    spec.environments[].bindings[].allowedActions[].namestringYesName is the provider-neutral action name (for example query_table). minLength: 1; maxLength: 63
    spec.environments[].bindings[].allowedActions[].revokedbooleanNoRevoked disables this action without removing the integration binding, allowing an operator to retain the audit history while closing access.
    spec.environments[].bindings[].allowedActions[].revokedAtstringNoRevokedAt is the server time at which the active action grant was revoked. Clients cannot set or replace this audit value.
    spec.environments[].bindings[].allowedActions[].revokedBystringNoRevokedBy is the authenticated caller recorded by the server when an active action grant is revoked. Clients cannot set or replace this audit value.
    spec.environments[].bindings[].allowedActions[].schemaDigeststringYesSchemaDigest identifies the exact provider action schema that the caller reviewed and consented to. Digests are immutable action-catalog content addresses; digest-less grants are never accepted. minLength: 71; maxLength: 71; pattern: “^sha256:[a-f0-9]{64}$”
    spec.environments[].bindings[].allowedActions[].versionstringYesVersion identifies the versioned action contract (for example v1). minLength: 1; maxLength: 32
    spec.environments[].bindings[].kindstringYesenum: [“providerResource”, “providerReference”]
    spec.environments[].bindings[].namestringYesminLength: 1; maxLength: 63
    spec.environments[].bindings[].providerstringYesminLength: 1; maxLength: 63
    spec.environments[].bindings[].resourceRefobjectNoNo description supplied by the source schema.
    spec.environments[].bindings[].resourceRef.apiVersionstringNoNo description supplied by the source schema.
    spec.environments[].bindings[].resourceRef.kindstringNoNo description supplied by the source schema.
    spec.environments[].bindings[].resourceRef.namestringNoNo description supplied by the source schema.
    spec.environments[].bindings[].resourceRef.resourcestringNoNo description supplied by the source schema.
    spec.environments[].bindings[].valuesobjectNoValues is provider-owned configuration. App Studio treats it as an opaque contract payload.
    spec.environments[].modestringNoMode distinguishes artifact-based environments from live development runtimes. Empty means artifact for backward compatibility.
    spec.environments[].namestringYesName is a stable environment identifier such as development or test. minLength: 1; maxLength: 63
    spec.environments[].promotionstringNoPromotion controls how changes move into this environment.
    spec.memoryobjectNoMemory stores durable context the AI should consider for this project. It is edited explicitly through the API in the MVP.
    spec.memory.constraintsarray[string]NoNo description supplied by the source schema.
    spec.memory.goalsarray[string]NoNo description supplied by the source schema.
    spec.memory.requirementsarray[string]NoNo description supplied by the source schema.
    spec.repositoryobjectNoRepository records the Code provider repository backing this Project.
    spec.repository.adoptedbooleanNoAdopted marks a binding built from an EXISTING Repository CR (repository import). The Project reconciler creates the Repository CR for non-adopted bindings only — an adopted repository is never (re)created on the project’s behalf.
    spec.repository.connectionRefstringNoConnectionRef names the Code provider Connection used by the Repository. maxLength: 253
    spec.repository.namestringNoName is the repository name on the git host. maxLength: 253
    spec.repository.repositoryRefstringYesRepositoryRef names the Repository resource in the same workspace. minLength: 1; maxLength: 253
    spec.sharingobjectNoSharing captures App Studio access policy intent for previews and published apps. Empty policies are interpreted as private.
    spec.sharing.previewobjectNoPreview controls who may access the mutable development preview. Private requires platform sign-in and workspace access; public allows anyone with the URL. The legacy shared value is normalized to private by App Studio.
    spec.sharing.preview.modestringNoMode is the requested preview visibility. Empty means private. enum: [“private”, “public”]
    spec.sharing.publishingobjectNoPublishing controls who may access published app instances once the publishing runtime exists.
    spec.sharing.publishing.modestringNoMode is the requested visibility for this channel. Empty means private. enum: [“private”, “shared”, “public”]
    spec.templateobjectNoTemplate names the infrastructure Template whose instance backs this Project’s development environment (docs/app-studio-template-sandboxes.md). When set, the development binding is generated from the Template’s instanceCRD with farosMode: development, and file sync routes per the Template’s declared development components. Empty means the project has no development environment yet — one must be selected before any development runtime surface (sync, preview, logs) works.
    spec.template.namestringYesName is the Template’s catalog name (e.g. “application”). minLength: 1; maxLength: 253
    statusobjectNoProjectStatus defines the observed Project state.
    status.environmentsarray[object]NoEnvironments reports provider-observed environment state.
    status.environments[].bindingsarray[object]NoNo description supplied by the source schema.
    status.environments[].bindings[].namestringNoNo description supplied by the source schema.
    status.environments[].bindings[].outputsobjectNoNo description supplied by the source schema.
    status.environments[].bindings[].phasestringNoNo description supplied by the source schema.
    status.environments[].bindings[].previewURLstringNoNo description supplied by the source schema.
    status.environments[].bindings[].providerstringNoNo description supplied by the source schema.
    status.environments[].bindings[].urlstringNoNo description supplied by the source schema.
    status.environments[].modestringNoNo description supplied by the source schema.
    status.environments[].namestringNoNo description supplied by the source schema.
    status.environments[].phasestringNoNo description supplied by the source schema.
    status.phasestringNoPhase is Ready for MVP-created Projects.
    status.updatedAtstringNoUpdatedAt reflects the latest API mutation affecting metadata or memory.

    Session (v1alpha1)

    API: ai.faros.sh/v1alpha1 · Resource: sessions · Scope: Cluster

    Source schema

    Terminal
    kubectl explain sessions.ai.faros.sh --api-version=ai.faros.sh/v1alpha1 --recursive

    FieldTypeRequired in parentDescription and constraints
    specobjectYesNo description supplied by the source schema.
    spec.actorIDstringNoActorID records the user the thread belongs to.
    spec.projectRefstringYesProjectRef names the Project this conversation belongs to. minLength: 1
    spec.threadIDstringYesThreadID is the store’s thread identifier this Session projects. minLength: 1
    statusobjectNoNo description supplied by the source schema.
    status.activeTurnIDstringNoActiveTurnID is the in-flight turn, empty when idle.
    status.activeTurnStatusstringNoActiveTurnStatus is the in-flight turn’s state.
    status.phasestringNoPhase mirrors the thread status (active, archived).
    status.titlestringNoTitle is the thread’s display title.
    status.updatedAtstringNoUpdatedAt is the thread’s last store update the mirror observed.

    Studio (v1alpha1)

    API: ai.faros.sh/v1alpha1 · Resource: studios · Scope: Cluster

    Source schema

    Terminal
    kubectl explain studios.ai.faros.sh --api-version=ai.faros.sh/v1alpha1 --recursive

    FieldTypeRequired in parentDescription and constraints
    specobjectNoNo description supplied by the source schema.
    spec.browserobjectNoBrowser configures the workspace’s shared headless browser, used for development-preview inspection. One Playwright instance for the whole workspace, provisioned through the infrastructure provider exactly like Search — no per-project browser, and app-studio owns no browser image.
    spec.browser.disabledbooleanNoDisabled turns preview browser inspection off for this workspace.
    spec.browser.resourceRefobjectNoResourceRef is the fully-resolved instance the reconciler creates, written by the API from the browser Template’s instanceCRD. Same self-contained contract as StudioSearch.ResourceRef.
    spec.browser.resourceRef.apiVersionstringNoNo description supplied by the source schema.
    spec.browser.resourceRef.kindstringNoNo description supplied by the source schema.
    spec.browser.resourceRef.namestringNoNo description supplied by the source schema.
    spec.browser.resourceRef.resourcestringNoNo description supplied by the source schema.
    spec.browser.sizestringNoSize is the browser’s memory bucket, passed to the template. enum: [“small”, “medium”, “large”]
    spec.searchobjectNoSearch configures the workspace’s web-search backend.
    spec.search.disabledbooleanNoDisabled turns web search off for every project in this workspace.
    spec.search.resourceRefobjectNoResourceRef is the fully-resolved instance the reconciler creates, written by the API from the searxng Template’s instanceCRD. The reconciler never reads Templates itself — they ride virtual storage with their own identity, so a self-contained spec keeps the control loop dependency-free (the same contract Project bindings use).
    spec.search.resourceRef.apiVersionstringNoNo description supplied by the source schema.
    spec.search.resourceRef.kindstringNoNo description supplied by the source schema.
    spec.search.resourceRef.namestringNoNo description supplied by the source schema.
    spec.search.resourceRef.resourcestringNoNo description supplied by the source schema.
    spec.search.sizestringNoSize is the backend’s memory bucket, passed to the template. enum: [“small”, “medium”, “large”]
    statusobjectNoNo description supplied by the source schema.
    status.browserobjectNoBrowser reports the shared headless browser backend.
    status.browser.instancestringNoInstance names the backing infrastructure instance.
    status.browser.phasestringNoPhase is Ready, Pending, or Disabled.
    status.browser.reasonstringNoReason explains a non-Ready phase.
    status.browser.resourcestringNoResource is the instance’s plural resource.
    status.phasestringNoPhase is Ready when every enabled service is Ready.
    status.searchobjectNoSearch reports the shared search backend.
    status.search.instancestringNoInstance names the backing infrastructure instance.
    status.search.phasestringNoPhase is Ready, Pending, or Disabled.
    status.search.reasonstringNoReason explains a non-Ready phase.
    status.search.resourcestringNoResource is the instance’s plural resource.
    status.updatedAtstringNoUpdatedAt is the last status transition the reconciler observed.