API reference

Caity apps

Which of your apps Caity, the assistant, may use.
GET/v1/me/assistant/apps

Every app Caity has tools for, on or off for this person.

Auth
A person's token or an API key, as Authorization: Bearer.
Get an API key

Errors

  • 403Only you can see and change what Caity may use.
curl 'https://api.cactive.com.au/v1/me/assistant/apps' \
  -H "Authorization: Bearer $CACTIVE_TOKEN"
Send it from this page with your session or a key.

Response 200

{
  apps: {
    cloud: boolean
    git: boolean
    maps: boolean
    drive: boolean
    photos: boolean
    tenant: boolean
    crm: boolean
    health: boolean
    weather: boolean
    marketing: boolean
    food: boolean
    documents: boolean
    sheets: boolean
    slides: boolean
    video: boolean
    vehicles: boolean
    mirage: boolean
    brain: boolean
    tasks: boolean
    connectors: boolean
    agents: boolean
  }
}
GET/v1/me/assistant/permissions

What Caity may do for the person in one space (an org's id, or personal), with why not where she can't. Her task runner may read it for its own task's space only.

Auth
A person's token or an API key, as Authorization: Bearer.
Get an API key

Query parameters

  • spacestringrequired

    Up to 64 characters.

Errors

  • 403Only you can see and change what Caity may use.
  • 404Not one of your organisations.
curl 'https://api.cactive.com.au/v1/me/assistant/permissions?space=example' \
  -H "Authorization: Bearer $CACTIVE_TOKEN"
Send it from this page with your session or a key.

Response 200

{
  permissions: {
    space: {
      kind: "org" | "personal"
      id: string
    }
    enabled: boolean
    reason?: "no_access" | "org_off"
    mode: "ask" | "reads" | "app" | "auto"
    maxMode: "ask" | "reads" | "app" | "auto"
    apps: {
      cloud: {
        app: "cloud" | "git" | "maps" | "drive" | "photos" | "tenant" | "crm" | "health" | "weather" | "marketing" | "food" | "documents" | "sheets" | "slides" | "video" | "vehicles" | "mirage" | "brain" | "tasks" | "connectors" | "agents"
        reachable: boolean
        reason?: "not_in_space" | "no_access" | "org_off" | "org_app_off" | "person_off"
        mode: "ask" | "reads" | "app" | "auto"
        level: "none" | "edit" | "view" | "manage"
        scopes: ("platform:admin" | "platform:infra" | "platform:analytics" | "platform:coverage" | "org:read" | "org:write" | "audit:read" | "tenant:read" | "tenant:write" | "members:read" | "members:write" | "projects:read" | "projects:write" | "deployments:read" | "deployments:write" | "env:read" | "env:write" | "keys:read" | "keys:use" | "keys:write" | "domains:read" | "domains:write" | "resources:read" | "resources:write" | "git:read" | "git:write" | "git:admin" | "logs:read" | "analytics:read" | "knowledge:read" | "knowledge:write" | "connectors:read" | "connectors:write" | "chat:use" | "mcp:connect" | "agents:read" | "agents:write" | "agents:run" | "mail:read" | "mail:send" | "mail:admin" | "calendar:read" | "calendar:write" | "contacts:read" | "contacts:write" | "issues:read" | "issues:write" | "issues:admin" | "maps:read" | "maps:write" | "drive:read" | "drive:write" | "crm:read" | "crm:write" | "crm:admin" | "marketing:read" | "marketing:write" | "marketing:send" | "marketing:admin" | "health:read" | "health:write" | "weather:read" | "weather:write" | "food:read" | "food:write" | "vehicles:read" | "vehicles:write" | "vehicles:control" | "vehicles:admin" | "sharing:read" | "sharing:write")[]
      }
      git: {
        app: "cloud" | "git" | "maps" | "drive" | "photos" | "tenant" | "crm" | "health" | "weather" | "marketing" | "food" | "documents" | "sheets" | "slides" | "video" | "vehicles" | "mirage" | "brain" | "tasks" | "connectors" | "agents"
        reachable: boolean
        reason?: "not_in_space" | "no_access" | "org_off" | "org_app_off" | "person_off"
        mode: "ask" | "reads" | "app" | "auto"
        level: "none" | "edit" | "view" | "manage"
        scopes: ("platform:admin" | "platform:infra" | "platform:analytics" | "platform:coverage" | "org:read" | "org:write" | "audit:read" | "tenant:read" | "tenant:write" | "members:read" | "members:write" | "projects:read" | "projects:write" | "deployments:read" | "deployments:write" | "env:read" | "env:write" | "keys:read" | "keys:use" | "keys:write" | "domains:read" | "domains:write" | "resources:read" | "resources:write" | "git:read" | "git:write" | "git:admin" | "logs:read" | "analytics:read" | "knowledge:read" | "knowledge:write" | "connectors:read" | "connectors:write" | "chat:use" | "mcp:connect" | "agents:read" | "agents:write" | "agents:run" | "mail:read" | "mail:send" | "mail:admin" | "calendar:read" | "calendar:write" | "contacts:read" | "contacts:write" | "issues:read" | "issues:write" | "issues:admin" | "maps:read" | "maps:write" | "drive:read" | "drive:write" | "crm:read" | "crm:write" | "crm:admin" | "marketing:read" | "marketing:write" | "marketing:send" | "marketing:admin" | "health:read" | "health:write" | "weather:read" | "weather:write" | "food:read" | "food:write" | "vehicles:read" | "vehicles:write" | "vehicles:control" | "vehicles:admin" | "sharing:read" | "sharing:write")[]
      }
      maps: {
        app: "cloud" | "git" | "maps" | "drive" | "photos" | "tenant" | "crm" | "health" | "weather" | "marketing" | "food" | "documents" | "sheets" | "slides" | "video" | "vehicles" | "mirage" | "brain" | "tasks" | "connectors" | "agents"
        reachable: boolean
        reason?: "not_in_space" | "no_access" | "org_off" | "org_app_off" | "person_off"
        mode: "ask" | "reads" | "app" | "auto"
        level: "none" | "edit" | "view" | "manage"
        scopes: ("platform:admin" | "platform:infra" | "platform:analytics" | "platform:coverage" | "org:read" | "org:write" | "audit:read" | "tenant:read" | "tenant:write" | "members:read" | "members:write" | "projects:read" | "projects:write" | "deployments:read" | "deployments:write" | "env:read" | "env:write" | "keys:read" | "keys:use" | "keys:write" | "domains:read" | "domains:write" | "resources:read" | "resources:write" | "git:read" | "git:write" | "git:admin" | "logs:read" | "analytics:read" | "knowledge:read" | "knowledge:write" | "connectors:read" | "connectors:write" | "chat:use" | "mcp:connect" | "agents:read" | "agents:write" | "agents:run" | "mail:read" | "mail:send" | "mail:admin" | "calendar:read" | "calendar:write" | "contacts:read" | "contacts:write" | "issues:read" | "issues:write" | "issues:admin" | "maps:read" | "maps:write" | "drive:read" | "drive:write" | "crm:read" | "crm:write" | "crm:admin" | "marketing:read" | "marketing:write" | "marketing:send" | "marketing:admin" | "health:read" | "health:write" | "weather:read" | "weather:write" | "food:read" | "food:write" | "vehicles:read" | "vehicles:write" | "vehicles:control" | "vehicles:admin" | "sharing:read" | "sharing:write")[]
      }
      drive: {
        app: "cloud" | "git" | "maps" | "drive" | "photos" | "tenant" | "crm" | "health" | "weather" | "marketing" | "food" | "documents" | "sheets" | "slides" | "video" | "vehicles" | "mirage" | "brain" | "tasks" | "connectors" | "agents"
        reachable: boolean
        reason?: "not_in_space" | "no_access" | "org_off" | "org_app_off" | "person_off"
        mode: "ask" | "reads" | "app" | "auto"
        level: "none" | "edit" | "view" | "manage"
        scopes: ("platform:admin" | "platform:infra" | "platform:analytics" | "platform:coverage" | "org:read" | "org:write" | "audit:read" | "tenant:read" | "tenant:write" | "members:read" | "members:write" | "projects:read" | "projects:write" | "deployments:read" | "deployments:write" | "env:read" | "env:write" | "keys:read" | "keys:use" | "keys:write" | "domains:read" | "domains:write" | "resources:read" | "resources:write" | "git:read" | "git:write" | "git:admin" | "logs:read" | "analytics:read" | "knowledge:read" | "knowledge:write" | "connectors:read" | "connectors:write" | "chat:use" | "mcp:connect" | "agents:read" | "agents:write" | "agents:run" | "mail:read" | "mail:send" | "mail:admin" | "calendar:read" | "calendar:write" | "contacts:read" | "contacts:write" | "issues:read" | "issues:write" | "issues:admin" | "maps:read" | "maps:write" | "drive:read" | "drive:write" | "crm:read" | "crm:write" | "crm:admin" | "marketing:read" | "marketing:write" | "marketing:send" | "marketing:admin" | "health:read" | "health:write" | "weather:read" | "weather:write" | "food:read" | "food:write" | "vehicles:read" | "vehicles:write" | "vehicles:control" | "vehicles:admin" | "sharing:read" | "sharing:write")[]
      }
      photos: {
        app: "cloud" | "git" | "maps" | "drive" | "photos" | "tenant" | "crm" | "health" | "weather" | "marketing" | "food" | "documents" | "sheets" | "slides" | "video" | "vehicles" | "mirage" | "brain" | "tasks" | "connectors" | "agents"
        reachable: boolean
        reason?: "not_in_space" | "no_access" | "org_off" | "org_app_off" | "person_off"
        mode: "ask" | "reads" | "app" | "auto"
        level: "none" | "edit" | "view" | "manage"
        scopes: ("platform:admin" | "platform:infra" | "platform:analytics" | "platform:coverage" | "org:read" | "org:write" | "audit:read" | "tenant:read" | "tenant:write" | "members:read" | "members:write" | "projects:read" | "projects:write" | "deployments:read" | "deployments:write" | "env:read" | "env:write" | "keys:read" | "keys:use" | "keys:write" | "domains:read" | "domains:write" | "resources:read" | "resources:write" | "git:read" | "git:write" | "git:admin" | "logs:read" | "analytics:read" | "knowledge:read" | "knowledge:write" | "connectors:read" | "connectors:write" | "chat:use" | "mcp:connect" | "agents:read" | "agents:write" | "agents:run" | "mail:read" | "mail:send" | "mail:admin" | "calendar:read" | "calendar:write" | "contacts:read" | "contacts:write" | "issues:read" | "issues:write" | "issues:admin" | "maps:read" | "maps:write" | "drive:read" | "drive:write" | "crm:read" | "crm:write" | "crm:admin" | "marketing:read" | "marketing:write" | "marketing:send" | "marketing:admin" | "health:read" | "health:write" | "weather:read" | "weather:write" | "food:read" | "food:write" | "vehicles:read" | "vehicles:write" | "vehicles:control" | "vehicles:admin" | "sharing:read" | "sharing:write")[]
      }
      tenant: {
        app: "cloud" | "git" | "maps" | "drive" | "photos" | "tenant" | "crm" | "health" | "weather" | "marketing" | "food" | "documents" | "sheets" | "slides" | "video" | "vehicles" | "mirage" | "brain" | "tasks" | "connectors" | "agents"
        reachable: boolean
        reason?: "not_in_space" | "no_access" | "org_off" | "org_app_off" | "person_off"
        mode: "ask" | "reads" | "app" | "auto"
        level: "none" | "edit" | "view" | "manage"
        scopes: ("platform:admin" | "platform:infra" | "platform:analytics" | "platform:coverage" | "org:read" | "org:write" | "audit:read" | "tenant:read" | "tenant:write" | "members:read" | "members:write" | "projects:read" | "projects:write" | "deployments:read" | "deployments:write" | "env:read" | "env:write" | "keys:read" | "keys:use" | "keys:write" | "domains:read" | "domains:write" | "resources:read" | "resources:write" | "git:read" | "git:write" | "git:admin" | "logs:read" | "analytics:read" | "knowledge:read" | "knowledge:write" | "connectors:read" | "connectors:write" | "chat:use" | "mcp:connect" | "agents:read" | "agents:write" | "agents:run" | "mail:read" | "mail:send" | "mail:admin" | "calendar:read" | "calendar:write" | "contacts:read" | "contacts:write" | "issues:read" | "issues:write" | "issues:admin" | "maps:read" | "maps:write" | "drive:read" | "drive:write" | "crm:read" | "crm:write" | "crm:admin" | "marketing:read" | "marketing:write" | "marketing:send" | "marketing:admin" | "health:read" | "health:write" | "weather:read" | "weather:write" | "food:read" | "food:write" | "vehicles:read" | "vehicles:write" | "vehicles:control" | "vehicles:admin" | "sharing:read" | "sharing:write")[]
      }
      crm: {
        app: "cloud" | "git" | "maps" | "drive" | "photos" | "tenant" | "crm" | "health" | "weather" | "marketing" | "food" | "documents" | "sheets" | "slides" | "video" | "vehicles" | "mirage" | "brain" | "tasks" | "connectors" | "agents"
        reachable: boolean
        reason?: "not_in_space" | "no_access" | "org_off" | "org_app_off" | "person_off"
        mode: "ask" | "reads" | "app" | "auto"
        level: "none" | "edit" | "view" | "manage"
        scopes: ("platform:admin" | "platform:infra" | "platform:analytics" | "platform:coverage" | "org:read" | "org:write" | "audit:read" | "tenant:read" | "tenant:write" | "members:read" | "members:write" | "projects:read" | "projects:write" | "deployments:read" | "deployments:write" | "env:read" | "env:write" | "keys:read" | "keys:use" | "keys:write" | "domains:read" | "domains:write" | "resources:read" | "resources:write" | "git:read" | "git:write" | "git:admin" | "logs:read" | "analytics:read" | "knowledge:read" | "knowledge:write" | "connectors:read" | "connectors:write" | "chat:use" | "mcp:connect" | "agents:read" | "agents:write" | "agents:run" | "mail:read" | "mail:send" | "mail:admin" | "calendar:read" | "calendar:write" | "contacts:read" | "contacts:write" | "issues:read" | "issues:write" | "issues:admin" | "maps:read" | "maps:write" | "drive:read" | "drive:write" | "crm:read" | "crm:write" | "crm:admin" | "marketing:read" | "marketing:write" | "marketing:send" | "marketing:admin" | "health:read" | "health:write" | "weather:read" | "weather:write" | "food:read" | "food:write" | "vehicles:read" | "vehicles:write" | "vehicles:control" | "vehicles:admin" | "sharing:read" | "sharing:write")[]
      }
      health: {
        app: "cloud" | "git" | "maps" | "drive" | "photos" | "tenant" | "crm" | "health" | "weather" | "marketing" | "food" | "documents" | "sheets" | "slides" | "video" | "vehicles" | "mirage" | "brain" | "tasks" | "connectors" | "agents"
        reachable: boolean
        reason?: "not_in_space" | "no_access" | "org_off" | "org_app_off" | "person_off"
        mode: "ask" | "reads" | "app" | "auto"
        level: "none" | "edit" | "view" | "manage"
        scopes: ("platform:admin" | "platform:infra" | "platform:analytics" | "platform:coverage" | "org:read" | "org:write" | "audit:read" | "tenant:read" | "tenant:write" | "members:read" | "members:write" | "projects:read" | "projects:write" | "deployments:read" | "deployments:write" | "env:read" | "env:write" | "keys:read" | "keys:use" | "keys:write" | "domains:read" | "domains:write" | "resources:read" | "resources:write" | "git:read" | "git:write" | "git:admin" | "logs:read" | "analytics:read" | "knowledge:read" | "knowledge:write" | "connectors:read" | "connectors:write" | "chat:use" | "mcp:connect" | "agents:read" | "agents:write" | "agents:run" | "mail:read" | "mail:send" | "mail:admin" | "calendar:read" | "calendar:write" | "contacts:read" | "contacts:write" | "issues:read" | "issues:write" | "issues:admin" | "maps:read" | "maps:write" | "drive:read" | "drive:write" | "crm:read" | "crm:write" | "crm:admin" | "marketing:read" | "marketing:write" | "marketing:send" | "marketing:admin" | "health:read" | "health:write" | "weather:read" | "weather:write" | "food:read" | "food:write" | "vehicles:read" | "vehicles:write" | "vehicles:control" | "vehicles:admin" | "sharing:read" | "sharing:write")[]
      }
      weather: {
        app: "cloud" | "git" | "maps" | "drive" | "photos" | "tenant" | "crm" | "health" | "weather" | "marketing" | "food" | "documents" | "sheets" | "slides" | "video" | "vehicles" | "mirage" | "brain" | "tasks" | "connectors" | "agents"
        reachable: boolean
        reason?: "not_in_space" | "no_access" | "org_off" | "org_app_off" | "person_off"
        mode: "ask" | "reads" | "app" | "auto"
        level: "none" | "edit" | "view" | "manage"
        scopes: ("platform:admin" | "platform:infra" | "platform:analytics" | "platform:coverage" | "org:read" | "org:write" | "audit:read" | "tenant:read" | "tenant:write" | "members:read" | "members:write" | "projects:read" | "projects:write" | "deployments:read" | "deployments:write" | "env:read" | "env:write" | "keys:read" | "keys:use" | "keys:write" | "domains:read" | "domains:write" | "resources:read" | "resources:write" | "git:read" | "git:write" | "git:admin" | "logs:read" | "analytics:read" | "knowledge:read" | "knowledge:write" | "connectors:read" | "connectors:write" | "chat:use" | "mcp:connect" | "agents:read" | "agents:write" | "agents:run" | "mail:read" | "mail:send" | "mail:admin" | "calendar:read" | "calendar:write" | "contacts:read" | "contacts:write" | "issues:read" | "issues:write" | "issues:admin" | "maps:read" | "maps:write" | "drive:read" | "drive:write" | "crm:read" | "crm:write" | "crm:admin" | "marketing:read" | "marketing:write" | "marketing:send" | "marketing:admin" | "health:read" | "health:write" | "weather:read" | "weather:write" | "food:read" | "food:write" | "vehicles:read" | "vehicles:write" | "vehicles:control" | "vehicles:admin" | "sharing:read" | "sharing:write")[]
      }
      marketing: {
        app: "cloud" | "git" | "maps" | "drive" | "photos" | "tenant" | "crm" | "health" | "weather" | "marketing" | "food" | "documents" | "sheets" | "slides" | "video" | "vehicles" | "mirage" | "brain" | "tasks" | "connectors" | "agents"
        reachable: boolean
        reason?: "not_in_space" | "no_access" | "org_off" | "org_app_off" | "person_off"
        mode: "ask" | "reads" | "app" | "auto"
        level: "none" | "edit" | "view" | "manage"
        scopes: ("platform:admin" | "platform:infra" | "platform:analytics" | "platform:coverage" | "org:read" | "org:write" | "audit:read" | "tenant:read" | "tenant:write" | "members:read" | "members:write" | "projects:read" | "projects:write" | "deployments:read" | "deployments:write" | "env:read" | "env:write" | "keys:read" | "keys:use" | "keys:write" | "domains:read" | "domains:write" | "resources:read" | "resources:write" | "git:read" | "git:write" | "git:admin" | "logs:read" | "analytics:read" | "knowledge:read" | "knowledge:write" | "connectors:read" | "connectors:write" | "chat:use" | "mcp:connect" | "agents:read" | "agents:write" | "agents:run" | "mail:read" | "mail:send" | "mail:admin" | "calendar:read" | "calendar:write" | "contacts:read" | "contacts:write" | "issues:read" | "issues:write" | "issues:admin" | "maps:read" | "maps:write" | "drive:read" | "drive:write" | "crm:read" | "crm:write" | "crm:admin" | "marketing:read" | "marketing:write" | "marketing:send" | "marketing:admin" | "health:read" | "health:write" | "weather:read" | "weather:write" | "food:read" | "food:write" | "vehicles:read" | "vehicles:write" | "vehicles:control" | "vehicles:admin" | "sharing:read" | "sharing:write")[]
      }
      food: {
        app: "cloud" | "git" | "maps" | "drive" | "photos" | "tenant" | "crm" | "health" | "weather" | "marketing" | "food" | "documents" | "sheets" | "slides" | "video" | "vehicles" | "mirage" | "brain" | "tasks" | "connectors" | "agents"
        reachable: boolean
        reason?: "not_in_space" | "no_access" | "org_off" | "org_app_off" | "person_off"
        mode: "ask" | "reads" | "app" | "auto"
        level: "none" | "edit" | "view" | "manage"
        scopes: ("platform:admin" | "platform:infra" | "platform:analytics" | "platform:coverage" | "org:read" | "org:write" | "audit:read" | "tenant:read" | "tenant:write" | "members:read" | "members:write" | "projects:read" | "projects:write" | "deployments:read" | "deployments:write" | "env:read" | "env:write" | "keys:read" | "keys:use" | "keys:write" | "domains:read" | "domains:write" | "resources:read" | "resources:write" | "git:read" | "git:write" | "git:admin" | "logs:read" | "analytics:read" | "knowledge:read" | "knowledge:write" | "connectors:read" | "connectors:write" | "chat:use" | "mcp:connect" | "agents:read" | "agents:write" | "agents:run" | "mail:read" | "mail:send" | "mail:admin" | "calendar:read" | "calendar:write" | "contacts:read" | "contacts:write" | "issues:read" | "issues:write" | "issues:admin" | "maps:read" | "maps:write" | "drive:read" | "drive:write" | "crm:read" | "crm:write" | "crm:admin" | "marketing:read" | "marketing:write" | "marketing:send" | "marketing:admin" | "health:read" | "health:write" | "weather:read" | "weather:write" | "food:read" | "food:write" | "vehicles:read" | "vehicles:write" | "vehicles:control" | "vehicles:admin" | "sharing:read" | "sharing:write")[]
      }
      documents: {
        app: "cloud" | "git" | "maps" | "drive" | "photos" | "tenant" | "crm" | "health" | "weather" | "marketing" | "food" | "documents" | "sheets" | "slides" | "video" | "vehicles" | "mirage" | "brain" | "tasks" | "connectors" | "agents"
        reachable: boolean
        reason?: "not_in_space" | "no_access" | "org_off" | "org_app_off" | "person_off"
        mode: "ask" | "reads" | "app" | "auto"
        level: "none" | "edit" | "view" | "manage"
        scopes: ("platform:admin" | "platform:infra" | "platform:analytics" | "platform:coverage" | "org:read" | "org:write" | "audit:read" | "tenant:read" | "tenant:write" | "members:read" | "members:write" | "projects:read" | "projects:write" | "deployments:read" | "deployments:write" | "env:read" | "env:write" | "keys:read" | "keys:use" | "keys:write" | "domains:read" | "domains:write" | "resources:read" | "resources:write" | "git:read" | "git:write" | "git:admin" | "logs:read" | "analytics:read" | "knowledge:read" | "knowledge:write" | "connectors:read" | "connectors:write" | "chat:use" | "mcp:connect" | "agents:read" | "agents:write" | "agents:run" | "mail:read" | "mail:send" | "mail:admin" | "calendar:read" | "calendar:write" | "contacts:read" | "contacts:write" | "issues:read" | "issues:write" | "issues:admin" | "maps:read" | "maps:write" | "drive:read" | "drive:write" | "crm:read" | "crm:write" | "crm:admin" | "marketing:read" | "marketing:write" | "marketing:send" | "marketing:admin" | "health:read" | "health:write" | "weather:read" | "weather:write" | "food:read" | "food:write" | "vehicles:read" | "vehicles:write" | "vehicles:control" | "vehicles:admin" | "sharing:read" | "sharing:write")[]
      }
      sheets: {
        app: "cloud" | "git" | "maps" | "drive" | "photos" | "tenant" | "crm" | "health" | "weather" | "marketing" | "food" | "documents" | "sheets" | "slides" | "video" | "vehicles" | "mirage" | "brain" | "tasks" | "connectors" | "agents"
        reachable: boolean
        reason?: "not_in_space" | "no_access" | "org_off" | "org_app_off" | "person_off"
        mode: "ask" | "reads" | "app" | "auto"
        level: "none" | "edit" | "view" | "manage"
        scopes: ("platform:admin" | "platform:infra" | "platform:analytics" | "platform:coverage" | "org:read" | "org:write" | "audit:read" | "tenant:read" | "tenant:write" | "members:read" | "members:write" | "projects:read" | "projects:write" | "deployments:read" | "deployments:write" | "env:read" | "env:write" | "keys:read" | "keys:use" | "keys:write" | "domains:read" | "domains:write" | "resources:read" | "resources:write" | "git:read" | "git:write" | "git:admin" | "logs:read" | "analytics:read" | "knowledge:read" | "knowledge:write" | "connectors:read" | "connectors:write" | "chat:use" | "mcp:connect" | "agents:read" | "agents:write" | "agents:run" | "mail:read" | "mail:send" | "mail:admin" | "calendar:read" | "calendar:write" | "contacts:read" | "contacts:write" | "issues:read" | "issues:write" | "issues:admin" | "maps:read" | "maps:write" | "drive:read" | "drive:write" | "crm:read" | "crm:write" | "crm:admin" | "marketing:read" | "marketing:write" | "marketing:send" | "marketing:admin" | "health:read" | "health:write" | "weather:read" | "weather:write" | "food:read" | "food:write" | "vehicles:read" | "vehicles:write" | "vehicles:control" | "vehicles:admin" | "sharing:read" | "sharing:write")[]
      }
      slides: {
        app: "cloud" | "git" | "maps" | "drive" | "photos" | "tenant" | "crm" | "health" | "weather" | "marketing" | "food" | "documents" | "sheets" | "slides" | "video" | "vehicles" | "mirage" | "brain" | "tasks" | "connectors" | "agents"
        reachable: boolean
        reason?: "not_in_space" | "no_access" | "org_off" | "org_app_off" | "person_off"
        mode: "ask" | "reads" | "app" | "auto"
        level: "none" | "edit" | "view" | "manage"
        scopes: ("platform:admin" | "platform:infra" | "platform:analytics" | "platform:coverage" | "org:read" | "org:write" | "audit:read" | "tenant:read" | "tenant:write" | "members:read" | "members:write" | "projects:read" | "projects:write" | "deployments:read" | "deployments:write" | "env:read" | "env:write" | "keys:read" | "keys:use" | "keys:write" | "domains:read" | "domains:write" | "resources:read" | "resources:write" | "git:read" | "git:write" | "git:admin" | "logs:read" | "analytics:read" | "knowledge:read" | "knowledge:write" | "connectors:read" | "connectors:write" | "chat:use" | "mcp:connect" | "agents:read" | "agents:write" | "agents:run" | "mail:read" | "mail:send" | "mail:admin" | "calendar:read" | "calendar:write" | "contacts:read" | "contacts:write" | "issues:read" | "issues:write" | "issues:admin" | "maps:read" | "maps:write" | "drive:read" | "drive:write" | "crm:read" | "crm:write" | "crm:admin" | "marketing:read" | "marketing:write" | "marketing:send" | "marketing:admin" | "health:read" | "health:write" | "weather:read" | "weather:write" | "food:read" | "food:write" | "vehicles:read" | "vehicles:write" | "vehicles:control" | "vehicles:admin" | "sharing:read" | "sharing:write")[]
      }
      video: {
        app: "cloud" | "git" | "maps" | "drive" | "photos" | "tenant" | "crm" | "health" | "weather" | "marketing" | "food" | "documents" | "sheets" | "slides" | "video" | "vehicles" | "mirage" | "brain" | "tasks" | "connectors" | "agents"
        reachable: boolean
        reason?: "not_in_space" | "no_access" | "org_off" | "org_app_off" | "person_off"
        mode: "ask" | "reads" | "app" | "auto"
        level: "none" | "edit" | "view" | "manage"
        scopes: ("platform:admin" | "platform:infra" | "platform:analytics" | "platform:coverage" | "org:read" | "org:write" | "audit:read" | "tenant:read" | "tenant:write" | "members:read" | "members:write" | "projects:read" | "projects:write" | "deployments:read" | "deployments:write" | "env:read" | "env:write" | "keys:read" | "keys:use" | "keys:write" | "domains:read" | "domains:write" | "resources:read" | "resources:write" | "git:read" | "git:write" | "git:admin" | "logs:read" | "analytics:read" | "knowledge:read" | "knowledge:write" | "connectors:read" | "connectors:write" | "chat:use" | "mcp:connect" | "agents:read" | "agents:write" | "agents:run" | "mail:read" | "mail:send" | "mail:admin" | "calendar:read" | "calendar:write" | "contacts:read" | "contacts:write" | "issues:read" | "issues:write" | "issues:admin" | "maps:read" | "maps:write" | "drive:read" | "drive:write" | "crm:read" | "crm:write" | "crm:admin" | "marketing:read" | "marketing:write" | "marketing:send" | "marketing:admin" | "health:read" | "health:write" | "weather:read" | "weather:write" | "food:read" | "food:write" | "vehicles:read" | "vehicles:write" | "vehicles:control" | "vehicles:admin" | "sharing:read" | "sharing:write")[]
      }
      vehicles: {
        app: "cloud" | "git" | "maps" | "drive" | "photos" | "tenant" | "crm" | "health" | "weather" | "marketing" | "food" | "documents" | "sheets" | "slides" | "video" | "vehicles" | "mirage" | "brain" | "tasks" | "connectors" | "agents"
        reachable: boolean
        reason?: "not_in_space" | "no_access" | "org_off" | "org_app_off" | "person_off"
        mode: "ask" | "reads" | "app" | "auto"
        level: "none" | "edit" | "view" | "manage"
        scopes: ("platform:admin" | "platform:infra" | "platform:analytics" | "platform:coverage" | "org:read" | "org:write" | "audit:read" | "tenant:read" | "tenant:write" | "members:read" | "members:write" | "projects:read" | "projects:write" | "deployments:read" | "deployments:write" | "env:read" | "env:write" | "keys:read" | "keys:use" | "keys:write" | "domains:read" | "domains:write" | "resources:read" | "resources:write" | "git:read" | "git:write" | "git:admin" | "logs:read" | "analytics:read" | "knowledge:read" | "knowledge:write" | "connectors:read" | "connectors:write" | "chat:use" | "mcp:connect" | "agents:read" | "agents:write" | "agents:run" | "mail:read" | "mail:send" | "mail:admin" | "calendar:read" | "calendar:write" | "contacts:read" | "contacts:write" | "issues:read" | "issues:write" | "issues:admin" | "maps:read" | "maps:write" | "drive:read" | "drive:write" | "crm:read" | "crm:write" | "crm:admin" | "marketing:read" | "marketing:write" | "marketing:send" | "marketing:admin" | "health:read" | "health:write" | "weather:read" | "weather:write" | "food:read" | "food:write" | "vehicles:read" | "vehicles:write" | "vehicles:control" | "vehicles:admin" | "sharing:read" | "sharing:write")[]
      }
      mirage: {
        app: "cloud" | "git" | "maps" | "drive" | "photos" | "tenant" | "crm" | "health" | "weather" | "marketing" | "food" | "documents" | "sheets" | "slides" | "video" | "vehicles" | "mirage" | "brain" | "tasks" | "connectors" | "agents"
        reachable: boolean
        reason?: "not_in_space" | "no_access" | "org_off" | "org_app_off" | "person_off"
        mode: "ask" | "reads" | "app" | "auto"
        level: "none" | "edit" | "view" | "manage"
        scopes: ("platform:admin" | "platform:infra" | "platform:analytics" | "platform:coverage" | "org:read" | "org:write" | "audit:read" | "tenant:read" | "tenant:write" | "members:read" | "members:write" | "projects:read" | "projects:write" | "deployments:read" | "deployments:write" | "env:read" | "env:write" | "keys:read" | "keys:use" | "keys:write" | "domains:read" | "domains:write" | "resources:read" | "resources:write" | "git:read" | "git:write" | "git:admin" | "logs:read" | "analytics:read" | "knowledge:read" | "knowledge:write" | "connectors:read" | "connectors:write" | "chat:use" | "mcp:connect" | "agents:read" | "agents:write" | "agents:run" | "mail:read" | "mail:send" | "mail:admin" | "calendar:read" | "calendar:write" | "contacts:read" | "contacts:write" | "issues:read" | "issues:write" | "issues:admin" | "maps:read" | "maps:write" | "drive:read" | "drive:write" | "crm:read" | "crm:write" | "crm:admin" | "marketing:read" | "marketing:write" | "marketing:send" | "marketing:admin" | "health:read" | "health:write" | "weather:read" | "weather:write" | "food:read" | "food:write" | "vehicles:read" | "vehicles:write" | "vehicles:control" | "vehicles:admin" | "sharing:read" | "sharing:write")[]
      }
      brain: {
        app: "cloud" | "git" | "maps" | "drive" | "photos" | "tenant" | "crm" | "health" | "weather" | "marketing" | "food" | "documents" | "sheets" | "slides" | "video" | "vehicles" | "mirage" | "brain" | "tasks" | "connectors" | "agents"
        reachable: boolean
        reason?: "not_in_space" | "no_access" | "org_off" | "org_app_off" | "person_off"
        mode: "ask" | "reads" | "app" | "auto"
        level: "none" | "edit" | "view" | "manage"
        scopes: ("platform:admin" | "platform:infra" | "platform:analytics" | "platform:coverage" | "org:read" | "org:write" | "audit:read" | "tenant:read" | "tenant:write" | "members:read" | "members:write" | "projects:read" | "projects:write" | "deployments:read" | "deployments:write" | "env:read" | "env:write" | "keys:read" | "keys:use" | "keys:write" | "domains:read" | "domains:write" | "resources:read" | "resources:write" | "git:read" | "git:write" | "git:admin" | "logs:read" | "analytics:read" | "knowledge:read" | "knowledge:write" | "connectors:read" | "connectors:write" | "chat:use" | "mcp:connect" | "agents:read" | "agents:write" | "agents:run" | "mail:read" | "mail:send" | "mail:admin" | "calendar:read" | "calendar:write" | "contacts:read" | "contacts:write" | "issues:read" | "issues:write" | "issues:admin" | "maps:read" | "maps:write" | "drive:read" | "drive:write" | "crm:read" | "crm:write" | "crm:admin" | "marketing:read" | "marketing:write" | "marketing:send" | "marketing:admin" | "health:read" | "health:write" | "weather:read" | "weather:write" | "food:read" | "food:write" | "vehicles:read" | "vehicles:write" | "vehicles:control" | "vehicles:admin" | "sharing:read" | "sharing:write")[]
      }
      tasks: {
        app: "cloud" | "git" | "maps" | "drive" | "photos" | "tenant" | "crm" | "health" | "weather" | "marketing" | "food" | "documents" | "sheets" | "slides" | "video" | "vehicles" | "mirage" | "brain" | "tasks" | "connectors" | "agents"
        reachable: boolean
        reason?: "not_in_space" | "no_access" | "org_off" | "org_app_off" | "person_off"
        mode: "ask" | "reads" | "app" | "auto"
        level: "none" | "edit" | "view" | "manage"
        scopes: ("platform:admin" | "platform:infra" | "platform:analytics" | "platform:coverage" | "org:read" | "org:write" | "audit:read" | "tenant:read" | "tenant:write" | "members:read" | "members:write" | "projects:read" | "projects:write" | "deployments:read" | "deployments:write" | "env:read" | "env:write" | "keys:read" | "keys:use" | "keys:write" | "domains:read" | "domains:write" | "resources:read" | "resources:write" | "git:read" | "git:write" | "git:admin" | "logs:read" | "analytics:read" | "knowledge:read" | "knowledge:write" | "connectors:read" | "connectors:write" | "chat:use" | "mcp:connect" | "agents:read" | "agents:write" | "agents:run" | "mail:read" | "mail:send" | "mail:admin" | "calendar:read" | "calendar:write" | "contacts:read" | "contacts:write" | "issues:read" | "issues:write" | "issues:admin" | "maps:read" | "maps:write" | "drive:read" | "drive:write" | "crm:read" | "crm:write" | "crm:admin" | "marketing:read" | "marketing:write" | "marketing:send" | "marketing:admin" | "health:read" | "health:write" | "weather:read" | "weather:write" | "food:read" | "food:write" | "vehicles:read" | "vehicles:write" | "vehicles:control" | "vehicles:admin" | "sharing:read" | "sharing:write")[]
      }
      connectors: {
        app: "cloud" | "git" | "maps" | "drive" | "photos" | "tenant" | "crm" | "health" | "weather" | "marketing" | "food" | "documents" | "sheets" | "slides" | "video" | "vehicles" | "mirage" | "brain" | "tasks" | "connectors" | "agents"
        reachable: boolean
        reason?: "not_in_space" | "no_access" | "org_off" | "org_app_off" | "person_off"
        mode: "ask" | "reads" | "app" | "auto"
        level: "none" | "edit" | "view" | "manage"
        scopes: ("platform:admin" | "platform:infra" | "platform:analytics" | "platform:coverage" | "org:read" | "org:write" | "audit:read" | "tenant:read" | "tenant:write" | "members:read" | "members:write" | "projects:read" | "projects:write" | "deployments:read" | "deployments:write" | "env:read" | "env:write" | "keys:read" | "keys:use" | "keys:write" | "domains:read" | "domains:write" | "resources:read" | "resources:write" | "git:read" | "git:write" | "git:admin" | "logs:read" | "analytics:read" | "knowledge:read" | "knowledge:write" | "connectors:read" | "connectors:write" | "chat:use" | "mcp:connect" | "agents:read" | "agents:write" | "agents:run" | "mail:read" | "mail:send" | "mail:admin" | "calendar:read" | "calendar:write" | "contacts:read" | "contacts:write" | "issues:read" | "issues:write" | "issues:admin" | "maps:read" | "maps:write" | "drive:read" | "drive:write" | "crm:read" | "crm:write" | "crm:admin" | "marketing:read" | "marketing:write" | "marketing:send" | "marketing:admin" | "health:read" | "health:write" | "weather:read" | "weather:write" | "food:read" | "food:write" | "vehicles:read" | "vehicles:write" | "vehicles:control" | "vehicles:admin" | "sharing:read" | "sharing:write")[]
      }
      agents: {
        app: "cloud" | "git" | "maps" | "drive" | "photos" | "tenant" | "crm" | "health" | "weather" | "marketing" | "food" | "documents" | "sheets" | "slides" | "video" | "vehicles" | "mirage" | "brain" | "tasks" | "connectors" | "agents"
        reachable: boolean
        reason?: "not_in_space" | "no_access" | "org_off" | "org_app_off" | "person_off"
        mode: "ask" | "reads" | "app" | "auto"
        level: "none" | "edit" | "view" | "manage"
        scopes: ("platform:admin" | "platform:infra" | "platform:analytics" | "platform:coverage" | "org:read" | "org:write" | "audit:read" | "tenant:read" | "tenant:write" | "members:read" | "members:write" | "projects:read" | "projects:write" | "deployments:read" | "deployments:write" | "env:read" | "env:write" | "keys:read" | "keys:use" | "keys:write" | "domains:read" | "domains:write" | "resources:read" | "resources:write" | "git:read" | "git:write" | "git:admin" | "logs:read" | "analytics:read" | "knowledge:read" | "knowledge:write" | "connectors:read" | "connectors:write" | "chat:use" | "mcp:connect" | "agents:read" | "agents:write" | "agents:run" | "mail:read" | "mail:send" | "mail:admin" | "calendar:read" | "calendar:write" | "contacts:read" | "contacts:write" | "issues:read" | "issues:write" | "issues:admin" | "maps:read" | "maps:write" | "drive:read" | "drive:write" | "crm:read" | "crm:write" | "crm:admin" | "marketing:read" | "marketing:write" | "marketing:send" | "marketing:admin" | "health:read" | "health:write" | "weather:read" | "weather:write" | "food:read" | "food:write" | "vehicles:read" | "vehicles:write" | "vehicles:control" | "vehicles:admin" | "sharing:read" | "sharing:write")[]
      }
    }
    scopes: ("platform:admin" | "platform:infra" | "platform:analytics" | "platform:coverage" | "org:read" | "org:write" | "audit:read" | "tenant:read" | "tenant:write" | "members:read" | "members:write" | "projects:read" | "projects:write" | "deployments:read" | "deployments:write" | "env:read" | "env:write" | "keys:read" | "keys:use" | "keys:write" | "domains:read" | "domains:write" | "resources:read" | "resources:write" | "git:read" | "git:write" | "git:admin" | "logs:read" | "analytics:read" | "knowledge:read" | "knowledge:write" | "connectors:read" | "connectors:write" | "chat:use" | "mcp:connect" | "agents:read" | "agents:write" | "agents:run" | "mail:read" | "mail:send" | "mail:admin" | "calendar:read" | "calendar:write" | "contacts:read" | "contacts:write" | "issues:read" | "issues:write" | "issues:admin" | "maps:read" | "maps:write" | "drive:read" | "drive:write" | "crm:read" | "crm:write" | "crm:admin" | "marketing:read" | "marketing:write" | "marketing:send" | "marketing:admin" | "health:read" | "health:write" | "weather:read" | "weather:write" | "food:read" | "food:write" | "vehicles:read" | "vehicles:write" | "vehicles:control" | "vehicles:admin" | "sharing:read" | "sharing:write")[]
  }
  why: {
    [key: string]: string
  }
}
GET/v1/me/assistant

All the person's choices for Caity: apps, mode and app modes.

Auth
A person's token or an API key, as Authorization: Bearer.
Get an API key

Errors

  • 403Only you can see and change what Caity may use.
curl 'https://api.cactive.com.au/v1/me/assistant' \
  -H "Authorization: Bearer $CACTIVE_TOKEN"
Send it from this page with your session or a key.

Response 200

{
  choices: {
    apps: {
      cloud: boolean
      git: boolean
      maps: boolean
      drive: boolean
      photos: boolean
      tenant: boolean
      crm: boolean
      health: boolean
      weather: boolean
      marketing: boolean
      food: boolean
      documents: boolean
      sheets: boolean
      slides: boolean
      video: boolean
      vehicles: boolean
      mirage: boolean
      brain: boolean
      tasks: boolean
      connectors: boolean
      agents: boolean
    }
    mode: "ask" | "reads" | "app" | "auto"
    appModes: {
      cloud?: "ask" | "reads" | "app" | "auto"
      git?: "ask" | "reads" | "app" | "auto"
      maps?: "ask" | "reads" | "app" | "auto"
      drive?: "ask" | "reads" | "app" | "auto"
      photos?: "ask" | "reads" | "app" | "auto"
      tenant?: "ask" | "reads" | "app" | "auto"
      crm?: "ask" | "reads" | "app" | "auto"
      health?: "ask" | "reads" | "app" | "auto"
      weather?: "ask" | "reads" | "app" | "auto"
      marketing?: "ask" | "reads" | "app" | "auto"
      food?: "ask" | "reads" | "app" | "auto"
      documents?: "ask" | "reads" | "app" | "auto"
      sheets?: "ask" | "reads" | "app" | "auto"
      slides?: "ask" | "reads" | "app" | "auto"
      video?: "ask" | "reads" | "app" | "auto"
      vehicles?: "ask" | "reads" | "app" | "auto"
      mirage?: "ask" | "reads" | "app" | "auto"
      brain?: "ask" | "reads" | "app" | "auto"
      tasks?: "ask" | "reads" | "app" | "auto"
      connectors?: "ask" | "reads" | "app" | "auto"
      agents?: "ask" | "reads" | "app" | "auto"
    }
  }
}
PATCH/v1/me/assistant

Changes any of the person's choices; apps and app modes merge, an app mode of null follows the mode again.

Auth
A person's token or an API key, as Authorization: Bearer.
Get an API key

Request body

  • appsobject

    Keys up to 32 characters. Values: boolean.

  • mode"ask" | "reads" | "app" | "auto"
  • appModesobject

    Keys up to 32 characters. Values: "ask" | "reads" | "app" | "auto".

  • oncestring

    Up to 32 characters.

Errors

  • 400Unknown apps: …
  • 403Only you can see and change what Caity may use.
curl -X PATCH 'https://api.cactive.com.au/v1/me/assistant' \
  -H "Authorization: Bearer $CACTIVE_TOKEN" \
  -H 'Content-Type: application/json' \
  -d '{
    "apps": {},
    "mode": "ask",
    "appModes": {}
  }'
Send it from this page with your session or a key.

Response 200

{
  choices: {
    apps: {
      cloud: boolean
      git: boolean
      maps: boolean
      drive: boolean
      photos: boolean
      tenant: boolean
      crm: boolean
      health: boolean
      weather: boolean
      marketing: boolean
      food: boolean
      documents: boolean
      sheets: boolean
      slides: boolean
      video: boolean
      vehicles: boolean
      mirage: boolean
      brain: boolean
      tasks: boolean
      connectors: boolean
      agents: boolean
    }
    mode: "ask" | "reads" | "app" | "auto"
    appModes: {
      cloud?: "ask" | "reads" | "app" | "auto"
      git?: "ask" | "reads" | "app" | "auto"
      maps?: "ask" | "reads" | "app" | "auto"
      drive?: "ask" | "reads" | "app" | "auto"
      photos?: "ask" | "reads" | "app" | "auto"
      tenant?: "ask" | "reads" | "app" | "auto"
      crm?: "ask" | "reads" | "app" | "auto"
      health?: "ask" | "reads" | "app" | "auto"
      weather?: "ask" | "reads" | "app" | "auto"
      marketing?: "ask" | "reads" | "app" | "auto"
      food?: "ask" | "reads" | "app" | "auto"
      documents?: "ask" | "reads" | "app" | "auto"
      sheets?: "ask" | "reads" | "app" | "auto"
      slides?: "ask" | "reads" | "app" | "auto"
      video?: "ask" | "reads" | "app" | "auto"
      vehicles?: "ask" | "reads" | "app" | "auto"
      mirage?: "ask" | "reads" | "app" | "auto"
      brain?: "ask" | "reads" | "app" | "auto"
      tasks?: "ask" | "reads" | "app" | "auto"
      connectors?: "ask" | "reads" | "app" | "auto"
      agents?: "ask" | "reads" | "app" | "auto"
    }
  }
}
PATCH/v1/me/assistant/apps

Turns apps on or off (the rest stay as they are).

Auth
A person's token or an API key, as Authorization: Bearer.
Get an API key

Request body

  • appsobjectrequired

    Keys up to 32 characters. Values: boolean.

Errors

  • 400Unknown apps: …
  • 403Only you can see and change what Caity may use.
curl -X PATCH 'https://api.cactive.com.au/v1/me/assistant/apps' \
  -H "Authorization: Bearer $CACTIVE_TOKEN" \
  -H 'Content-Type: application/json' \
  -d '{
    "apps": {}
  }'
Send it from this page with your session or a key.

Response 200

{
  apps: {
    cloud: boolean
    git: boolean
    maps: boolean
    drive: boolean
    photos: boolean
    tenant: boolean
    crm: boolean
    health: boolean
    weather: boolean
    marketing: boolean
    food: boolean
    documents: boolean
    sheets: boolean
    slides: boolean
    video: boolean
    vehicles: boolean
    mirage: boolean
    brain: boolean
    tasks: boolean
    connectors: boolean
    agents: boolean
  }
}
GET/v1/me/assistant/apps

Every app Caity has tools for, on or off for this person.

Auth
A person's token or an API key, as Authorization: Bearer.
Get an API key

Errors

  • 403Only you can see and change what Caity may use.
curl 'https://api.cactive.com.au/v1/me/assistant/apps' \
  -H "Authorization: Bearer $CACTIVE_TOKEN"
Send it from this page with your session or a key.

Response 200

{
  apps: {
    cloud: boolean
    git: boolean
    maps: boolean
    drive: boolean
    photos: boolean
    tenant: boolean
    crm: boolean
    health: boolean
    weather: boolean
    marketing: boolean
    food: boolean
    documents: boolean
    sheets: boolean
    slides: boolean
    video: boolean
    vehicles: boolean
    mirage: boolean
    brain: boolean
    tasks: boolean
    connectors: boolean
    agents: boolean
  }
}
GET/v1/me/assistant/permissions

What Caity may do for the person in one space (an org's id, or personal), with why not where she can't. Her task runner may read it for its own task's space only.

Auth
A person's token or an API key, as Authorization: Bearer.
Get an API key

Query parameters

  • spacestringrequired

    Up to 64 characters.

Errors

  • 403Only you can see and change what Caity may use.
  • 404Not one of your organisations.
curl 'https://api.cactive.com.au/v1/me/assistant/permissions?space=example' \
  -H "Authorization: Bearer $CACTIVE_TOKEN"
Send it from this page with your session or a key.

Response 200

{
  permissions: {
    space: {
      kind: "org" | "personal"
      id: string
    }
    enabled: boolean
    reason?: "no_access" | "org_off"
    mode: "ask" | "reads" | "app" | "auto"
    maxMode: "ask" | "reads" | "app" | "auto"
    apps: {
      cloud: {
        app: "cloud" | "git" | "maps" | "drive" | "photos" | "tenant" | "crm" | "health" | "weather" | "marketing" | "food" | "documents" | "sheets" | "slides" | "video" | "vehicles" | "mirage" | "brain" | "tasks" | "connectors" | "agents"
        reachable: boolean
        reason?: "not_in_space" | "no_access" | "org_off" | "org_app_off" | "person_off"
        mode: "ask" | "reads" | "app" | "auto"
        level: "none" | "edit" | "view" | "manage"
        scopes: ("platform:admin" | "platform:infra" | "platform:analytics" | "platform:coverage" | "org:read" | "org:write" | "audit:read" | "tenant:read" | "tenant:write" | "members:read" | "members:write" | "projects:read" | "projects:write" | "deployments:read" | "deployments:write" | "env:read" | "env:write" | "keys:read" | "keys:use" | "keys:write" | "domains:read" | "domains:write" | "resources:read" | "resources:write" | "git:read" | "git:write" | "git:admin" | "logs:read" | "analytics:read" | "knowledge:read" | "knowledge:write" | "connectors:read" | "connectors:write" | "chat:use" | "mcp:connect" | "agents:read" | "agents:write" | "agents:run" | "mail:read" | "mail:send" | "mail:admin" | "calendar:read" | "calendar:write" | "contacts:read" | "contacts:write" | "issues:read" | "issues:write" | "issues:admin" | "maps:read" | "maps:write" | "drive:read" | "drive:write" | "crm:read" | "crm:write" | "crm:admin" | "marketing:read" | "marketing:write" | "marketing:send" | "marketing:admin" | "health:read" | "health:write" | "weather:read" | "weather:write" | "food:read" | "food:write" | "vehicles:read" | "vehicles:write" | "vehicles:control" | "vehicles:admin" | "sharing:read" | "sharing:write")[]
      }
      git: {
        app: "cloud" | "git" | "maps" | "drive" | "photos" | "tenant" | "crm" | "health" | "weather" | "marketing" | "food" | "documents" | "sheets" | "slides" | "video" | "vehicles" | "mirage" | "brain" | "tasks" | "connectors" | "agents"
        reachable: boolean
        reason?: "not_in_space" | "no_access" | "org_off" | "org_app_off" | "person_off"
        mode: "ask" | "reads" | "app" | "auto"
        level: "none" | "edit" | "view" | "manage"
        scopes: ("platform:admin" | "platform:infra" | "platform:analytics" | "platform:coverage" | "org:read" | "org:write" | "audit:read" | "tenant:read" | "tenant:write" | "members:read" | "members:write" | "projects:read" | "projects:write" | "deployments:read" | "deployments:write" | "env:read" | "env:write" | "keys:read" | "keys:use" | "keys:write" | "domains:read" | "domains:write" | "resources:read" | "resources:write" | "git:read" | "git:write" | "git:admin" | "logs:read" | "analytics:read" | "knowledge:read" | "knowledge:write" | "connectors:read" | "connectors:write" | "chat:use" | "mcp:connect" | "agents:read" | "agents:write" | "agents:run" | "mail:read" | "mail:send" | "mail:admin" | "calendar:read" | "calendar:write" | "contacts:read" | "contacts:write" | "issues:read" | "issues:write" | "issues:admin" | "maps:read" | "maps:write" | "drive:read" | "drive:write" | "crm:read" | "crm:write" | "crm:admin" | "marketing:read" | "marketing:write" | "marketing:send" | "marketing:admin" | "health:read" | "health:write" | "weather:read" | "weather:write" | "food:read" | "food:write" | "vehicles:read" | "vehicles:write" | "vehicles:control" | "vehicles:admin" | "sharing:read" | "sharing:write")[]
      }
      maps: {
        app: "cloud" | "git" | "maps" | "drive" | "photos" | "tenant" | "crm" | "health" | "weather" | "marketing" | "food" | "documents" | "sheets" | "slides" | "video" | "vehicles" | "mirage" | "brain" | "tasks" | "connectors" | "agents"
        reachable: boolean
        reason?: "not_in_space" | "no_access" | "org_off" | "org_app_off" | "person_off"
        mode: "ask" | "reads" | "app" | "auto"
        level: "none" | "edit" | "view" | "manage"
        scopes: ("platform:admin" | "platform:infra" | "platform:analytics" | "platform:coverage" | "org:read" | "org:write" | "audit:read" | "tenant:read" | "tenant:write" | "members:read" | "members:write" | "projects:read" | "projects:write" | "deployments:read" | "deployments:write" | "env:read" | "env:write" | "keys:read" | "keys:use" | "keys:write" | "domains:read" | "domains:write" | "resources:read" | "resources:write" | "git:read" | "git:write" | "git:admin" | "logs:read" | "analytics:read" | "knowledge:read" | "knowledge:write" | "connectors:read" | "connectors:write" | "chat:use" | "mcp:connect" | "agents:read" | "agents:write" | "agents:run" | "mail:read" | "mail:send" | "mail:admin" | "calendar:read" | "calendar:write" | "contacts:read" | "contacts:write" | "issues:read" | "issues:write" | "issues:admin" | "maps:read" | "maps:write" | "drive:read" | "drive:write" | "crm:read" | "crm:write" | "crm:admin" | "marketing:read" | "marketing:write" | "marketing:send" | "marketing:admin" | "health:read" | "health:write" | "weather:read" | "weather:write" | "food:read" | "food:write" | "vehicles:read" | "vehicles:write" | "vehicles:control" | "vehicles:admin" | "sharing:read" | "sharing:write")[]
      }
      drive: {
        app: "cloud" | "git" | "maps" | "drive" | "photos" | "tenant" | "crm" | "health" | "weather" | "marketing" | "food" | "documents" | "sheets" | "slides" | "video" | "vehicles" | "mirage" | "brain" | "tasks" | "connectors" | "agents"
        reachable: boolean
        reason?: "not_in_space" | "no_access" | "org_off" | "org_app_off" | "person_off"
        mode: "ask" | "reads" | "app" | "auto"
        level: "none" | "edit" | "view" | "manage"
        scopes: ("platform:admin" | "platform:infra" | "platform:analytics" | "platform:coverage" | "org:read" | "org:write" | "audit:read" | "tenant:read" | "tenant:write" | "members:read" | "members:write" | "projects:read" | "projects:write" | "deployments:read" | "deployments:write" | "env:read" | "env:write" | "keys:read" | "keys:use" | "keys:write" | "domains:read" | "domains:write" | "resources:read" | "resources:write" | "git:read" | "git:write" | "git:admin" | "logs:read" | "analytics:read" | "knowledge:read" | "knowledge:write" | "connectors:read" | "connectors:write" | "chat:use" | "mcp:connect" | "agents:read" | "agents:write" | "agents:run" | "mail:read" | "mail:send" | "mail:admin" | "calendar:read" | "calendar:write" | "contacts:read" | "contacts:write" | "issues:read" | "issues:write" | "issues:admin" | "maps:read" | "maps:write" | "drive:read" | "drive:write" | "crm:read" | "crm:write" | "crm:admin" | "marketing:read" | "marketing:write" | "marketing:send" | "marketing:admin" | "health:read" | "health:write" | "weather:read" | "weather:write" | "food:read" | "food:write" | "vehicles:read" | "vehicles:write" | "vehicles:control" | "vehicles:admin" | "sharing:read" | "sharing:write")[]
      }
      photos: {
        app: "cloud" | "git" | "maps" | "drive" | "photos" | "tenant" | "crm" | "health" | "weather" | "marketing" | "food" | "documents" | "sheets" | "slides" | "video" | "vehicles" | "mirage" | "brain" | "tasks" | "connectors" | "agents"
        reachable: boolean
        reason?: "not_in_space" | "no_access" | "org_off" | "org_app_off" | "person_off"
        mode: "ask" | "reads" | "app" | "auto"
        level: "none" | "edit" | "view" | "manage"
        scopes: ("platform:admin" | "platform:infra" | "platform:analytics" | "platform:coverage" | "org:read" | "org:write" | "audit:read" | "tenant:read" | "tenant:write" | "members:read" | "members:write" | "projects:read" | "projects:write" | "deployments:read" | "deployments:write" | "env:read" | "env:write" | "keys:read" | "keys:use" | "keys:write" | "domains:read" | "domains:write" | "resources:read" | "resources:write" | "git:read" | "git:write" | "git:admin" | "logs:read" | "analytics:read" | "knowledge:read" | "knowledge:write" | "connectors:read" | "connectors:write" | "chat:use" | "mcp:connect" | "agents:read" | "agents:write" | "agents:run" | "mail:read" | "mail:send" | "mail:admin" | "calendar:read" | "calendar:write" | "contacts:read" | "contacts:write" | "issues:read" | "issues:write" | "issues:admin" | "maps:read" | "maps:write" | "drive:read" | "drive:write" | "crm:read" | "crm:write" | "crm:admin" | "marketing:read" | "marketing:write" | "marketing:send" | "marketing:admin" | "health:read" | "health:write" | "weather:read" | "weather:write" | "food:read" | "food:write" | "vehicles:read" | "vehicles:write" | "vehicles:control" | "vehicles:admin" | "sharing:read" | "sharing:write")[]
      }
      tenant: {
        app: "cloud" | "git" | "maps" | "drive" | "photos" | "tenant" | "crm" | "health" | "weather" | "marketing" | "food" | "documents" | "sheets" | "slides" | "video" | "vehicles" | "mirage" | "brain" | "tasks" | "connectors" | "agents"
        reachable: boolean
        reason?: "not_in_space" | "no_access" | "org_off" | "org_app_off" | "person_off"
        mode: "ask" | "reads" | "app" | "auto"
        level: "none" | "edit" | "view" | "manage"
        scopes: ("platform:admin" | "platform:infra" | "platform:analytics" | "platform:coverage" | "org:read" | "org:write" | "audit:read" | "tenant:read" | "tenant:write" | "members:read" | "members:write" | "projects:read" | "projects:write" | "deployments:read" | "deployments:write" | "env:read" | "env:write" | "keys:read" | "keys:use" | "keys:write" | "domains:read" | "domains:write" | "resources:read" | "resources:write" | "git:read" | "git:write" | "git:admin" | "logs:read" | "analytics:read" | "knowledge:read" | "knowledge:write" | "connectors:read" | "connectors:write" | "chat:use" | "mcp:connect" | "agents:read" | "agents:write" | "agents:run" | "mail:read" | "mail:send" | "mail:admin" | "calendar:read" | "calendar:write" | "contacts:read" | "contacts:write" | "issues:read" | "issues:write" | "issues:admin" | "maps:read" | "maps:write" | "drive:read" | "drive:write" | "crm:read" | "crm:write" | "crm:admin" | "marketing:read" | "marketing:write" | "marketing:send" | "marketing:admin" | "health:read" | "health:write" | "weather:read" | "weather:write" | "food:read" | "food:write" | "vehicles:read" | "vehicles:write" | "vehicles:control" | "vehicles:admin" | "sharing:read" | "sharing:write")[]
      }
      crm: {
        app: "cloud" | "git" | "maps" | "drive" | "photos" | "tenant" | "crm" | "health" | "weather" | "marketing" | "food" | "documents" | "sheets" | "slides" | "video" | "vehicles" | "mirage" | "brain" | "tasks" | "connectors" | "agents"
        reachable: boolean
        reason?: "not_in_space" | "no_access" | "org_off" | "org_app_off" | "person_off"
        mode: "ask" | "reads" | "app" | "auto"
        level: "none" | "edit" | "view" | "manage"
        scopes: ("platform:admin" | "platform:infra" | "platform:analytics" | "platform:coverage" | "org:read" | "org:write" | "audit:read" | "tenant:read" | "tenant:write" | "members:read" | "members:write" | "projects:read" | "projects:write" | "deployments:read" | "deployments:write" | "env:read" | "env:write" | "keys:read" | "keys:use" | "keys:write" | "domains:read" | "domains:write" | "resources:read" | "resources:write" | "git:read" | "git:write" | "git:admin" | "logs:read" | "analytics:read" | "knowledge:read" | "knowledge:write" | "connectors:read" | "connectors:write" | "chat:use" | "mcp:connect" | "agents:read" | "agents:write" | "agents:run" | "mail:read" | "mail:send" | "mail:admin" | "calendar:read" | "calendar:write" | "contacts:read" | "contacts:write" | "issues:read" | "issues:write" | "issues:admin" | "maps:read" | "maps:write" | "drive:read" | "drive:write" | "crm:read" | "crm:write" | "crm:admin" | "marketing:read" | "marketing:write" | "marketing:send" | "marketing:admin" | "health:read" | "health:write" | "weather:read" | "weather:write" | "food:read" | "food:write" | "vehicles:read" | "vehicles:write" | "vehicles:control" | "vehicles:admin" | "sharing:read" | "sharing:write")[]
      }
      health: {
        app: "cloud" | "git" | "maps" | "drive" | "photos" | "tenant" | "crm" | "health" | "weather" | "marketing" | "food" | "documents" | "sheets" | "slides" | "video" | "vehicles" | "mirage" | "brain" | "tasks" | "connectors" | "agents"
        reachable: boolean
        reason?: "not_in_space" | "no_access" | "org_off" | "org_app_off" | "person_off"
        mode: "ask" | "reads" | "app" | "auto"
        level: "none" | "edit" | "view" | "manage"
        scopes: ("platform:admin" | "platform:infra" | "platform:analytics" | "platform:coverage" | "org:read" | "org:write" | "audit:read" | "tenant:read" | "tenant:write" | "members:read" | "members:write" | "projects:read" | "projects:write" | "deployments:read" | "deployments:write" | "env:read" | "env:write" | "keys:read" | "keys:use" | "keys:write" | "domains:read" | "domains:write" | "resources:read" | "resources:write" | "git:read" | "git:write" | "git:admin" | "logs:read" | "analytics:read" | "knowledge:read" | "knowledge:write" | "connectors:read" | "connectors:write" | "chat:use" | "mcp:connect" | "agents:read" | "agents:write" | "agents:run" | "mail:read" | "mail:send" | "mail:admin" | "calendar:read" | "calendar:write" | "contacts:read" | "contacts:write" | "issues:read" | "issues:write" | "issues:admin" | "maps:read" | "maps:write" | "drive:read" | "drive:write" | "crm:read" | "crm:write" | "crm:admin" | "marketing:read" | "marketing:write" | "marketing:send" | "marketing:admin" | "health:read" | "health:write" | "weather:read" | "weather:write" | "food:read" | "food:write" | "vehicles:read" | "vehicles:write" | "vehicles:control" | "vehicles:admin" | "sharing:read" | "sharing:write")[]
      }
      weather: {
        app: "cloud" | "git" | "maps" | "drive" | "photos" | "tenant" | "crm" | "health" | "weather" | "marketing" | "food" | "documents" | "sheets" | "slides" | "video" | "vehicles" | "mirage" | "brain" | "tasks" | "connectors" | "agents"
        reachable: boolean
        reason?: "not_in_space" | "no_access" | "org_off" | "org_app_off" | "person_off"
        mode: "ask" | "reads" | "app" | "auto"
        level: "none" | "edit" | "view" | "manage"
        scopes: ("platform:admin" | "platform:infra" | "platform:analytics" | "platform:coverage" | "org:read" | "org:write" | "audit:read" | "tenant:read" | "tenant:write" | "members:read" | "members:write" | "projects:read" | "projects:write" | "deployments:read" | "deployments:write" | "env:read" | "env:write" | "keys:read" | "keys:use" | "keys:write" | "domains:read" | "domains:write" | "resources:read" | "resources:write" | "git:read" | "git:write" | "git:admin" | "logs:read" | "analytics:read" | "knowledge:read" | "knowledge:write" | "connectors:read" | "connectors:write" | "chat:use" | "mcp:connect" | "agents:read" | "agents:write" | "agents:run" | "mail:read" | "mail:send" | "mail:admin" | "calendar:read" | "calendar:write" | "contacts:read" | "contacts:write" | "issues:read" | "issues:write" | "issues:admin" | "maps:read" | "maps:write" | "drive:read" | "drive:write" | "crm:read" | "crm:write" | "crm:admin" | "marketing:read" | "marketing:write" | "marketing:send" | "marketing:admin" | "health:read" | "health:write" | "weather:read" | "weather:write" | "food:read" | "food:write" | "vehicles:read" | "vehicles:write" | "vehicles:control" | "vehicles:admin" | "sharing:read" | "sharing:write")[]
      }
      marketing: {
        app: "cloud" | "git" | "maps" | "drive" | "photos" | "tenant" | "crm" | "health" | "weather" | "marketing" | "food" | "documents" | "sheets" | "slides" | "video" | "vehicles" | "mirage" | "brain" | "tasks" | "connectors" | "agents"
        reachable: boolean
        reason?: "not_in_space" | "no_access" | "org_off" | "org_app_off" | "person_off"
        mode: "ask" | "reads" | "app" | "auto"
        level: "none" | "edit" | "view" | "manage"
        scopes: ("platform:admin" | "platform:infra" | "platform:analytics" | "platform:coverage" | "org:read" | "org:write" | "audit:read" | "tenant:read" | "tenant:write" | "members:read" | "members:write" | "projects:read" | "projects:write" | "deployments:read" | "deployments:write" | "env:read" | "env:write" | "keys:read" | "keys:use" | "keys:write" | "domains:read" | "domains:write" | "resources:read" | "resources:write" | "git:read" | "git:write" | "git:admin" | "logs:read" | "analytics:read" | "knowledge:read" | "knowledge:write" | "connectors:read" | "connectors:write" | "chat:use" | "mcp:connect" | "agents:read" | "agents:write" | "agents:run" | "mail:read" | "mail:send" | "mail:admin" | "calendar:read" | "calendar:write" | "contacts:read" | "contacts:write" | "issues:read" | "issues:write" | "issues:admin" | "maps:read" | "maps:write" | "drive:read" | "drive:write" | "crm:read" | "crm:write" | "crm:admin" | "marketing:read" | "marketing:write" | "marketing:send" | "marketing:admin" | "health:read" | "health:write" | "weather:read" | "weather:write" | "food:read" | "food:write" | "vehicles:read" | "vehicles:write" | "vehicles:control" | "vehicles:admin" | "sharing:read" | "sharing:write")[]
      }
      food: {
        app: "cloud" | "git" | "maps" | "drive" | "photos" | "tenant" | "crm" | "health" | "weather" | "marketing" | "food" | "documents" | "sheets" | "slides" | "video" | "vehicles" | "mirage" | "brain" | "tasks" | "connectors" | "agents"
        reachable: boolean
        reason?: "not_in_space" | "no_access" | "org_off" | "org_app_off" | "person_off"
        mode: "ask" | "reads" | "app" | "auto"
        level: "none" | "edit" | "view" | "manage"
        scopes: ("platform:admin" | "platform:infra" | "platform:analytics" | "platform:coverage" | "org:read" | "org:write" | "audit:read" | "tenant:read" | "tenant:write" | "members:read" | "members:write" | "projects:read" | "projects:write" | "deployments:read" | "deployments:write" | "env:read" | "env:write" | "keys:read" | "keys:use" | "keys:write" | "domains:read" | "domains:write" | "resources:read" | "resources:write" | "git:read" | "git:write" | "git:admin" | "logs:read" | "analytics:read" | "knowledge:read" | "knowledge:write" | "connectors:read" | "connectors:write" | "chat:use" | "mcp:connect" | "agents:read" | "agents:write" | "agents:run" | "mail:read" | "mail:send" | "mail:admin" | "calendar:read" | "calendar:write" | "contacts:read" | "contacts:write" | "issues:read" | "issues:write" | "issues:admin" | "maps:read" | "maps:write" | "drive:read" | "drive:write" | "crm:read" | "crm:write" | "crm:admin" | "marketing:read" | "marketing:write" | "marketing:send" | "marketing:admin" | "health:read" | "health:write" | "weather:read" | "weather:write" | "food:read" | "food:write" | "vehicles:read" | "vehicles:write" | "vehicles:control" | "vehicles:admin" | "sharing:read" | "sharing:write")[]
      }
      documents: {
        app: "cloud" | "git" | "maps" | "drive" | "photos" | "tenant" | "crm" | "health" | "weather" | "marketing" | "food" | "documents" | "sheets" | "slides" | "video" | "vehicles" | "mirage" | "brain" | "tasks" | "connectors" | "agents"
        reachable: boolean
        reason?: "not_in_space" | "no_access" | "org_off" | "org_app_off" | "person_off"
        mode: "ask" | "reads" | "app" | "auto"
        level: "none" | "edit" | "view" | "manage"
        scopes: ("platform:admin" | "platform:infra" | "platform:analytics" | "platform:coverage" | "org:read" | "org:write" | "audit:read" | "tenant:read" | "tenant:write" | "members:read" | "members:write" | "projects:read" | "projects:write" | "deployments:read" | "deployments:write" | "env:read" | "env:write" | "keys:read" | "keys:use" | "keys:write" | "domains:read" | "domains:write" | "resources:read" | "resources:write" | "git:read" | "git:write" | "git:admin" | "logs:read" | "analytics:read" | "knowledge:read" | "knowledge:write" | "connectors:read" | "connectors:write" | "chat:use" | "mcp:connect" | "agents:read" | "agents:write" | "agents:run" | "mail:read" | "mail:send" | "mail:admin" | "calendar:read" | "calendar:write" | "contacts:read" | "contacts:write" | "issues:read" | "issues:write" | "issues:admin" | "maps:read" | "maps:write" | "drive:read" | "drive:write" | "crm:read" | "crm:write" | "crm:admin" | "marketing:read" | "marketing:write" | "marketing:send" | "marketing:admin" | "health:read" | "health:write" | "weather:read" | "weather:write" | "food:read" | "food:write" | "vehicles:read" | "vehicles:write" | "vehicles:control" | "vehicles:admin" | "sharing:read" | "sharing:write")[]
      }
      sheets: {
        app: "cloud" | "git" | "maps" | "drive" | "photos" | "tenant" | "crm" | "health" | "weather" | "marketing" | "food" | "documents" | "sheets" | "slides" | "video" | "vehicles" | "mirage" | "brain" | "tasks" | "connectors" | "agents"
        reachable: boolean
        reason?: "not_in_space" | "no_access" | "org_off" | "org_app_off" | "person_off"
        mode: "ask" | "reads" | "app" | "auto"
        level: "none" | "edit" | "view" | "manage"
        scopes: ("platform:admin" | "platform:infra" | "platform:analytics" | "platform:coverage" | "org:read" | "org:write" | "audit:read" | "tenant:read" | "tenant:write" | "members:read" | "members:write" | "projects:read" | "projects:write" | "deployments:read" | "deployments:write" | "env:read" | "env:write" | "keys:read" | "keys:use" | "keys:write" | "domains:read" | "domains:write" | "resources:read" | "resources:write" | "git:read" | "git:write" | "git:admin" | "logs:read" | "analytics:read" | "knowledge:read" | "knowledge:write" | "connectors:read" | "connectors:write" | "chat:use" | "mcp:connect" | "agents:read" | "agents:write" | "agents:run" | "mail:read" | "mail:send" | "mail:admin" | "calendar:read" | "calendar:write" | "contacts:read" | "contacts:write" | "issues:read" | "issues:write" | "issues:admin" | "maps:read" | "maps:write" | "drive:read" | "drive:write" | "crm:read" | "crm:write" | "crm:admin" | "marketing:read" | "marketing:write" | "marketing:send" | "marketing:admin" | "health:read" | "health:write" | "weather:read" | "weather:write" | "food:read" | "food:write" | "vehicles:read" | "vehicles:write" | "vehicles:control" | "vehicles:admin" | "sharing:read" | "sharing:write")[]
      }
      slides: {
        app: "cloud" | "git" | "maps" | "drive" | "photos" | "tenant" | "crm" | "health" | "weather" | "marketing" | "food" | "documents" | "sheets" | "slides" | "video" | "vehicles" | "mirage" | "brain" | "tasks" | "connectors" | "agents"
        reachable: boolean
        reason?: "not_in_space" | "no_access" | "org_off" | "org_app_off" | "person_off"
        mode: "ask" | "reads" | "app" | "auto"
        level: "none" | "edit" | "view" | "manage"
        scopes: ("platform:admin" | "platform:infra" | "platform:analytics" | "platform:coverage" | "org:read" | "org:write" | "audit:read" | "tenant:read" | "tenant:write" | "members:read" | "members:write" | "projects:read" | "projects:write" | "deployments:read" | "deployments:write" | "env:read" | "env:write" | "keys:read" | "keys:use" | "keys:write" | "domains:read" | "domains:write" | "resources:read" | "resources:write" | "git:read" | "git:write" | "git:admin" | "logs:read" | "analytics:read" | "knowledge:read" | "knowledge:write" | "connectors:read" | "connectors:write" | "chat:use" | "mcp:connect" | "agents:read" | "agents:write" | "agents:run" | "mail:read" | "mail:send" | "mail:admin" | "calendar:read" | "calendar:write" | "contacts:read" | "contacts:write" | "issues:read" | "issues:write" | "issues:admin" | "maps:read" | "maps:write" | "drive:read" | "drive:write" | "crm:read" | "crm:write" | "crm:admin" | "marketing:read" | "marketing:write" | "marketing:send" | "marketing:admin" | "health:read" | "health:write" | "weather:read" | "weather:write" | "food:read" | "food:write" | "vehicles:read" | "vehicles:write" | "vehicles:control" | "vehicles:admin" | "sharing:read" | "sharing:write")[]
      }
      video: {
        app: "cloud" | "git" | "maps" | "drive" | "photos" | "tenant" | "crm" | "health" | "weather" | "marketing" | "food" | "documents" | "sheets" | "slides" | "video" | "vehicles" | "mirage" | "brain" | "tasks" | "connectors" | "agents"
        reachable: boolean
        reason?: "not_in_space" | "no_access" | "org_off" | "org_app_off" | "person_off"
        mode: "ask" | "reads" | "app" | "auto"
        level: "none" | "edit" | "view" | "manage"
        scopes: ("platform:admin" | "platform:infra" | "platform:analytics" | "platform:coverage" | "org:read" | "org:write" | "audit:read" | "tenant:read" | "tenant:write" | "members:read" | "members:write" | "projects:read" | "projects:write" | "deployments:read" | "deployments:write" | "env:read" | "env:write" | "keys:read" | "keys:use" | "keys:write" | "domains:read" | "domains:write" | "resources:read" | "resources:write" | "git:read" | "git:write" | "git:admin" | "logs:read" | "analytics:read" | "knowledge:read" | "knowledge:write" | "connectors:read" | "connectors:write" | "chat:use" | "mcp:connect" | "agents:read" | "agents:write" | "agents:run" | "mail:read" | "mail:send" | "mail:admin" | "calendar:read" | "calendar:write" | "contacts:read" | "contacts:write" | "issues:read" | "issues:write" | "issues:admin" | "maps:read" | "maps:write" | "drive:read" | "drive:write" | "crm:read" | "crm:write" | "crm:admin" | "marketing:read" | "marketing:write" | "marketing:send" | "marketing:admin" | "health:read" | "health:write" | "weather:read" | "weather:write" | "food:read" | "food:write" | "vehicles:read" | "vehicles:write" | "vehicles:control" | "vehicles:admin" | "sharing:read" | "sharing:write")[]
      }
      vehicles: {
        app: "cloud" | "git" | "maps" | "drive" | "photos" | "tenant" | "crm" | "health" | "weather" | "marketing" | "food" | "documents" | "sheets" | "slides" | "video" | "vehicles" | "mirage" | "brain" | "tasks" | "connectors" | "agents"
        reachable: boolean
        reason?: "not_in_space" | "no_access" | "org_off" | "org_app_off" | "person_off"
        mode: "ask" | "reads" | "app" | "auto"
        level: "none" | "edit" | "view" | "manage"
        scopes: ("platform:admin" | "platform:infra" | "platform:analytics" | "platform:coverage" | "org:read" | "org:write" | "audit:read" | "tenant:read" | "tenant:write" | "members:read" | "members:write" | "projects:read" | "projects:write" | "deployments:read" | "deployments:write" | "env:read" | "env:write" | "keys:read" | "keys:use" | "keys:write" | "domains:read" | "domains:write" | "resources:read" | "resources:write" | "git:read" | "git:write" | "git:admin" | "logs:read" | "analytics:read" | "knowledge:read" | "knowledge:write" | "connectors:read" | "connectors:write" | "chat:use" | "mcp:connect" | "agents:read" | "agents:write" | "agents:run" | "mail:read" | "mail:send" | "mail:admin" | "calendar:read" | "calendar:write" | "contacts:read" | "contacts:write" | "issues:read" | "issues:write" | "issues:admin" | "maps:read" | "maps:write" | "drive:read" | "drive:write" | "crm:read" | "crm:write" | "crm:admin" | "marketing:read" | "marketing:write" | "marketing:send" | "marketing:admin" | "health:read" | "health:write" | "weather:read" | "weather:write" | "food:read" | "food:write" | "vehicles:read" | "vehicles:write" | "vehicles:control" | "vehicles:admin" | "sharing:read" | "sharing:write")[]
      }
      mirage: {
        app: "cloud" | "git" | "maps" | "drive" | "photos" | "tenant" | "crm" | "health" | "weather" | "marketing" | "food" | "documents" | "sheets" | "slides" | "video" | "vehicles" | "mirage" | "brain" | "tasks" | "connectors" | "agents"
        reachable: boolean
        reason?: "not_in_space" | "no_access" | "org_off" | "org_app_off" | "person_off"
        mode: "ask" | "reads" | "app" | "auto"
        level: "none" | "edit" | "view" | "manage"
        scopes: ("platform:admin" | "platform:infra" | "platform:analytics" | "platform:coverage" | "org:read" | "org:write" | "audit:read" | "tenant:read" | "tenant:write" | "members:read" | "members:write" | "projects:read" | "projects:write" | "deployments:read" | "deployments:write" | "env:read" | "env:write" | "keys:read" | "keys:use" | "keys:write" | "domains:read" | "domains:write" | "resources:read" | "resources:write" | "git:read" | "git:write" | "git:admin" | "logs:read" | "analytics:read" | "knowledge:read" | "knowledge:write" | "connectors:read" | "connectors:write" | "chat:use" | "mcp:connect" | "agents:read" | "agents:write" | "agents:run" | "mail:read" | "mail:send" | "mail:admin" | "calendar:read" | "calendar:write" | "contacts:read" | "contacts:write" | "issues:read" | "issues:write" | "issues:admin" | "maps:read" | "maps:write" | "drive:read" | "drive:write" | "crm:read" | "crm:write" | "crm:admin" | "marketing:read" | "marketing:write" | "marketing:send" | "marketing:admin" | "health:read" | "health:write" | "weather:read" | "weather:write" | "food:read" | "food:write" | "vehicles:read" | "vehicles:write" | "vehicles:control" | "vehicles:admin" | "sharing:read" | "sharing:write")[]
      }
      brain: {
        app: "cloud" | "git" | "maps" | "drive" | "photos" | "tenant" | "crm" | "health" | "weather" | "marketing" | "food" | "documents" | "sheets" | "slides" | "video" | "vehicles" | "mirage" | "brain" | "tasks" | "connectors" | "agents"
        reachable: boolean
        reason?: "not_in_space" | "no_access" | "org_off" | "org_app_off" | "person_off"
        mode: "ask" | "reads" | "app" | "auto"
        level: "none" | "edit" | "view" | "manage"
        scopes: ("platform:admin" | "platform:infra" | "platform:analytics" | "platform:coverage" | "org:read" | "org:write" | "audit:read" | "tenant:read" | "tenant:write" | "members:read" | "members:write" | "projects:read" | "projects:write" | "deployments:read" | "deployments:write" | "env:read" | "env:write" | "keys:read" | "keys:use" | "keys:write" | "domains:read" | "domains:write" | "resources:read" | "resources:write" | "git:read" | "git:write" | "git:admin" | "logs:read" | "analytics:read" | "knowledge:read" | "knowledge:write" | "connectors:read" | "connectors:write" | "chat:use" | "mcp:connect" | "agents:read" | "agents:write" | "agents:run" | "mail:read" | "mail:send" | "mail:admin" | "calendar:read" | "calendar:write" | "contacts:read" | "contacts:write" | "issues:read" | "issues:write" | "issues:admin" | "maps:read" | "maps:write" | "drive:read" | "drive:write" | "crm:read" | "crm:write" | "crm:admin" | "marketing:read" | "marketing:write" | "marketing:send" | "marketing:admin" | "health:read" | "health:write" | "weather:read" | "weather:write" | "food:read" | "food:write" | "vehicles:read" | "vehicles:write" | "vehicles:control" | "vehicles:admin" | "sharing:read" | "sharing:write")[]
      }
      tasks: {
        app: "cloud" | "git" | "maps" | "drive" | "photos" | "tenant" | "crm" | "health" | "weather" | "marketing" | "food" | "documents" | "sheets" | "slides" | "video" | "vehicles" | "mirage" | "brain" | "tasks" | "connectors" | "agents"
        reachable: boolean
        reason?: "not_in_space" | "no_access" | "org_off" | "org_app_off" | "person_off"
        mode: "ask" | "reads" | "app" | "auto"
        level: "none" | "edit" | "view" | "manage"
        scopes: ("platform:admin" | "platform:infra" | "platform:analytics" | "platform:coverage" | "org:read" | "org:write" | "audit:read" | "tenant:read" | "tenant:write" | "members:read" | "members:write" | "projects:read" | "projects:write" | "deployments:read" | "deployments:write" | "env:read" | "env:write" | "keys:read" | "keys:use" | "keys:write" | "domains:read" | "domains:write" | "resources:read" | "resources:write" | "git:read" | "git:write" | "git:admin" | "logs:read" | "analytics:read" | "knowledge:read" | "knowledge:write" | "connectors:read" | "connectors:write" | "chat:use" | "mcp:connect" | "agents:read" | "agents:write" | "agents:run" | "mail:read" | "mail:send" | "mail:admin" | "calendar:read" | "calendar:write" | "contacts:read" | "contacts:write" | "issues:read" | "issues:write" | "issues:admin" | "maps:read" | "maps:write" | "drive:read" | "drive:write" | "crm:read" | "crm:write" | "crm:admin" | "marketing:read" | "marketing:write" | "marketing:send" | "marketing:admin" | "health:read" | "health:write" | "weather:read" | "weather:write" | "food:read" | "food:write" | "vehicles:read" | "vehicles:write" | "vehicles:control" | "vehicles:admin" | "sharing:read" | "sharing:write")[]
      }
      connectors: {
        app: "cloud" | "git" | "maps" | "drive" | "photos" | "tenant" | "crm" | "health" | "weather" | "marketing" | "food" | "documents" | "sheets" | "slides" | "video" | "vehicles" | "mirage" | "brain" | "tasks" | "connectors" | "agents"
        reachable: boolean
        reason?: "not_in_space" | "no_access" | "org_off" | "org_app_off" | "person_off"
        mode: "ask" | "reads" | "app" | "auto"
        level: "none" | "edit" | "view" | "manage"
        scopes: ("platform:admin" | "platform:infra" | "platform:analytics" | "platform:coverage" | "org:read" | "org:write" | "audit:read" | "tenant:read" | "tenant:write" | "members:read" | "members:write" | "projects:read" | "projects:write" | "deployments:read" | "deployments:write" | "env:read" | "env:write" | "keys:read" | "keys:use" | "keys:write" | "domains:read" | "domains:write" | "resources:read" | "resources:write" | "git:read" | "git:write" | "git:admin" | "logs:read" | "analytics:read" | "knowledge:read" | "knowledge:write" | "connectors:read" | "connectors:write" | "chat:use" | "mcp:connect" | "agents:read" | "agents:write" | "agents:run" | "mail:read" | "mail:send" | "mail:admin" | "calendar:read" | "calendar:write" | "contacts:read" | "contacts:write" | "issues:read" | "issues:write" | "issues:admin" | "maps:read" | "maps:write" | "drive:read" | "drive:write" | "crm:read" | "crm:write" | "crm:admin" | "marketing:read" | "marketing:write" | "marketing:send" | "marketing:admin" | "health:read" | "health:write" | "weather:read" | "weather:write" | "food:read" | "food:write" | "vehicles:read" | "vehicles:write" | "vehicles:control" | "vehicles:admin" | "sharing:read" | "sharing:write")[]
      }
      agents: {
        app: "cloud" | "git" | "maps" | "drive" | "photos" | "tenant" | "crm" | "health" | "weather" | "marketing" | "food" | "documents" | "sheets" | "slides" | "video" | "vehicles" | "mirage" | "brain" | "tasks" | "connectors" | "agents"
        reachable: boolean
        reason?: "not_in_space" | "no_access" | "org_off" | "org_app_off" | "person_off"
        mode: "ask" | "reads" | "app" | "auto"
        level: "none" | "edit" | "view" | "manage"
        scopes: ("platform:admin" | "platform:infra" | "platform:analytics" | "platform:coverage" | "org:read" | "org:write" | "audit:read" | "tenant:read" | "tenant:write" | "members:read" | "members:write" | "projects:read" | "projects:write" | "deployments:read" | "deployments:write" | "env:read" | "env:write" | "keys:read" | "keys:use" | "keys:write" | "domains:read" | "domains:write" | "resources:read" | "resources:write" | "git:read" | "git:write" | "git:admin" | "logs:read" | "analytics:read" | "knowledge:read" | "knowledge:write" | "connectors:read" | "connectors:write" | "chat:use" | "mcp:connect" | "agents:read" | "agents:write" | "agents:run" | "mail:read" | "mail:send" | "mail:admin" | "calendar:read" | "calendar:write" | "contacts:read" | "contacts:write" | "issues:read" | "issues:write" | "issues:admin" | "maps:read" | "maps:write" | "drive:read" | "drive:write" | "crm:read" | "crm:write" | "crm:admin" | "marketing:read" | "marketing:write" | "marketing:send" | "marketing:admin" | "health:read" | "health:write" | "weather:read" | "weather:write" | "food:read" | "food:write" | "vehicles:read" | "vehicles:write" | "vehicles:control" | "vehicles:admin" | "sharing:read" | "sharing:write")[]
      }
    }
    scopes: ("platform:admin" | "platform:infra" | "platform:analytics" | "platform:coverage" | "org:read" | "org:write" | "audit:read" | "tenant:read" | "tenant:write" | "members:read" | "members:write" | "projects:read" | "projects:write" | "deployments:read" | "deployments:write" | "env:read" | "env:write" | "keys:read" | "keys:use" | "keys:write" | "domains:read" | "domains:write" | "resources:read" | "resources:write" | "git:read" | "git:write" | "git:admin" | "logs:read" | "analytics:read" | "knowledge:read" | "knowledge:write" | "connectors:read" | "connectors:write" | "chat:use" | "mcp:connect" | "agents:read" | "agents:write" | "agents:run" | "mail:read" | "mail:send" | "mail:admin" | "calendar:read" | "calendar:write" | "contacts:read" | "contacts:write" | "issues:read" | "issues:write" | "issues:admin" | "maps:read" | "maps:write" | "drive:read" | "drive:write" | "crm:read" | "crm:write" | "crm:admin" | "marketing:read" | "marketing:write" | "marketing:send" | "marketing:admin" | "health:read" | "health:write" | "weather:read" | "weather:write" | "food:read" | "food:write" | "vehicles:read" | "vehicles:write" | "vehicles:control" | "vehicles:admin" | "sharing:read" | "sharing:write")[]
  }
  why: {
    [key: string]: string
  }
}
GET/v1/me/assistant

All the person's choices for Caity: apps, mode and app modes.

Auth
A person's token or an API key, as Authorization: Bearer.
Get an API key

Errors

  • 403Only you can see and change what Caity may use.
curl 'https://api.cactive.com.au/v1/me/assistant' \
  -H "Authorization: Bearer $CACTIVE_TOKEN"
Send it from this page with your session or a key.

Response 200

{
  choices: {
    apps: {
      cloud: boolean
      git: boolean
      maps: boolean
      drive: boolean
      photos: boolean
      tenant: boolean
      crm: boolean
      health: boolean
      weather: boolean
      marketing: boolean
      food: boolean
      documents: boolean
      sheets: boolean
      slides: boolean
      video: boolean
      vehicles: boolean
      mirage: boolean
      brain: boolean
      tasks: boolean
      connectors: boolean
      agents: boolean
    }
    mode: "ask" | "reads" | "app" | "auto"
    appModes: {
      cloud?: "ask" | "reads" | "app" | "auto"
      git?: "ask" | "reads" | "app" | "auto"
      maps?: "ask" | "reads" | "app" | "auto"
      drive?: "ask" | "reads" | "app" | "auto"
      photos?: "ask" | "reads" | "app" | "auto"
      tenant?: "ask" | "reads" | "app" | "auto"
      crm?: "ask" | "reads" | "app" | "auto"
      health?: "ask" | "reads" | "app" | "auto"
      weather?: "ask" | "reads" | "app" | "auto"
      marketing?: "ask" | "reads" | "app" | "auto"
      food?: "ask" | "reads" | "app" | "auto"
      documents?: "ask" | "reads" | "app" | "auto"
      sheets?: "ask" | "reads" | "app" | "auto"
      slides?: "ask" | "reads" | "app" | "auto"
      video?: "ask" | "reads" | "app" | "auto"
      vehicles?: "ask" | "reads" | "app" | "auto"
      mirage?: "ask" | "reads" | "app" | "auto"
      brain?: "ask" | "reads" | "app" | "auto"
      tasks?: "ask" | "reads" | "app" | "auto"
      connectors?: "ask" | "reads" | "app" | "auto"
      agents?: "ask" | "reads" | "app" | "auto"
    }
  }
}
PATCH/v1/me/assistant

Changes any of the person's choices; apps and app modes merge, an app mode of null follows the mode again.

Auth
A person's token or an API key, as Authorization: Bearer.
Get an API key

Request body

  • appsobject

    Keys up to 32 characters. Values: boolean.

  • mode"ask" | "reads" | "app" | "auto"
  • appModesobject

    Keys up to 32 characters. Values: "ask" | "reads" | "app" | "auto".

  • oncestring

    Up to 32 characters.

Errors

  • 400Unknown apps: …
  • 403Only you can see and change what Caity may use.
curl -X PATCH 'https://api.cactive.com.au/v1/me/assistant' \
  -H "Authorization: Bearer $CACTIVE_TOKEN" \
  -H 'Content-Type: application/json' \
  -d '{
    "apps": {},
    "mode": "ask",
    "appModes": {}
  }'
Send it from this page with your session or a key.

Response 200

{
  choices: {
    apps: {
      cloud: boolean
      git: boolean
      maps: boolean
      drive: boolean
      photos: boolean
      tenant: boolean
      crm: boolean
      health: boolean
      weather: boolean
      marketing: boolean
      food: boolean
      documents: boolean
      sheets: boolean
      slides: boolean
      video: boolean
      vehicles: boolean
      mirage: boolean
      brain: boolean
      tasks: boolean
      connectors: boolean
      agents: boolean
    }
    mode: "ask" | "reads" | "app" | "auto"
    appModes: {
      cloud?: "ask" | "reads" | "app" | "auto"
      git?: "ask" | "reads" | "app" | "auto"
      maps?: "ask" | "reads" | "app" | "auto"
      drive?: "ask" | "reads" | "app" | "auto"
      photos?: "ask" | "reads" | "app" | "auto"
      tenant?: "ask" | "reads" | "app" | "auto"
      crm?: "ask" | "reads" | "app" | "auto"
      health?: "ask" | "reads" | "app" | "auto"
      weather?: "ask" | "reads" | "app" | "auto"
      marketing?: "ask" | "reads" | "app" | "auto"
      food?: "ask" | "reads" | "app" | "auto"
      documents?: "ask" | "reads" | "app" | "auto"
      sheets?: "ask" | "reads" | "app" | "auto"
      slides?: "ask" | "reads" | "app" | "auto"
      video?: "ask" | "reads" | "app" | "auto"
      vehicles?: "ask" | "reads" | "app" | "auto"
      mirage?: "ask" | "reads" | "app" | "auto"
      brain?: "ask" | "reads" | "app" | "auto"
      tasks?: "ask" | "reads" | "app" | "auto"
      connectors?: "ask" | "reads" | "app" | "auto"
      agents?: "ask" | "reads" | "app" | "auto"
    }
  }
}
PATCH/v1/me/assistant/apps

Turns apps on or off (the rest stay as they are).

Auth
A person's token or an API key, as Authorization: Bearer.
Get an API key

Request body

  • appsobjectrequired

    Keys up to 32 characters. Values: boolean.

Errors

  • 400Unknown apps: …
  • 403Only you can see and change what Caity may use.
curl -X PATCH 'https://api.cactive.com.au/v1/me/assistant/apps' \
  -H "Authorization: Bearer $CACTIVE_TOKEN" \
  -H 'Content-Type: application/json' \
  -d '{
    "apps": {}
  }'
Send it from this page with your session or a key.

Response 200

{
  apps: {
    cloud: boolean
    git: boolean
    maps: boolean
    drive: boolean
    photos: boolean
    tenant: boolean
    crm: boolean
    health: boolean
    weather: boolean
    marketing: boolean
    food: boolean
    documents: boolean
    sheets: boolean
    slides: boolean
    video: boolean
    vehicles: boolean
    mirage: boolean
    brain: boolean
    tasks: boolean
    connectors: boolean
    agents: boolean
  }
}