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 field | True when |
|---|---|
hostedMcpRuntimes | Kubernetes:Enabled |
kubernetesAgents | Agents:Enabled and Kubernetes:Enabled |
agentSessions | AgentSessions:Enabled and Kubernetes:Enabled |
scheduledTasks | ScheduledTasks:Enabled and sessions (above) |
automations | Automations:Enabled only — does not require Kubernetes |
isDevelopment | Hosting environment is Development |
pipedreamConfigured | Pipedream OAuth (ClientId+ClientSecret+ProjectId) or legacy ApiKey is set |
documentation | Documentation:Enabled — static docs site at /docs |
branding | Branding: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.).
| Capability | Needs K8s? | Config keys |
|---|---|---|
| Hosted MCP instances / runtime proxy | Yes | Kubernetes:Enabled, controller token |
Headless agent Jobs (POST /api/agents/{id}/runs) | Yes | Agents:Enabled |
| Interactive sessions | Yes | AgentSessions:Enabled |
| Scheduled tasks | Yes (via sessions) | ScheduledTasks:Enabled |
| Event automations | No (in-process Service runtime) | Automations:Enabled, Automations:PublicWebhookBaseUrl |
| Internal Knowledge Bases | PostgreSQL + pgvector + object storage | KnowledgeBase:Internal:Enabled |