Skip to main content

Feature flags

3. Feature Flags & Capability Discovery

Optional product surfaces are gated by configuration. Always call this before assuming Agents / Sessions / Automations / hosted MCP are available.

GET /api/features — AllowAnonymous

curl -s https://localhost:7003/api/features
{
"hostedMcpRuntimes": true,
"kubernetesAgents": true,
"agentSessions": true,
"scheduledTasks": true,
"automations": true,
"isDevelopment": true,
"pipedreamConfigured": false,
"documentation": true,
"branding": {
"publicOrigin": "https://kroov.example.com",
"productName": "Kroov",
"logoUrl": "",
"supportEmail": "support@example.com"
}
}
Response fieldTrue when
hostedMcpRuntimesKubernetes:Enabled
kubernetesAgentsAgents:Enabled and Kubernetes:Enabled
agentSessionsAgentSessions:Enabled and Kubernetes:Enabled
scheduledTasksScheduledTasks:Enabled and sessions (above)
automationsAutomations:Enabled only — does not require Kubernetes
isDevelopmentHosting environment is Development
pipedreamConfiguredPipedream OAuth (ClientId+ClientSecret+ProjectId) or legacy ApiKey is set
documentationDocumentation:Enabled — static docs site at /docs
brandingBranding:PublicOrigin, ProductName, LogoUrl, SupportEmail — public origin and chrome. Tenant values live in deploy/env/<name>/, not product defaults.

HTTP 503 is returned by gated controllers when a feature is off (automations, scheduled tasks create/update, hosted MCP attribute, internal KB when disabled / non-PostgreSQL, agent runs when Agents disabled, etc.).

CapabilityNeeds K8s?Config keys
Hosted MCP instances / runtime proxyYesKubernetes:Enabled, controller token
Headless agent Jobs (POST /api/agents/{id}/runs)YesAgents:Enabled
Interactive sessionsYesAgentSessions:Enabled
Scheduled tasksYes (via sessions)ScheduledTasks:Enabled
Event automationsNo (in-process Service runtime)Automations:Enabled, Automations:PublicWebhookBaseUrl
Internal Knowledge BasesPostgreSQL + pgvector + object storageKnowledgeBase:Internal:Enabled