Confluye
Platform

Models and providers

BYOK catalog, workspace provider configs, model overrides, and local discovery.

AI models are configured per workspace as provider configs that point at a credential name. The same catalog powers Settings → Models, Settings → BYOK, and the AI Providers API. Knowledge Base indexing does not use these keys; see BYOK.

Settings

SectionPathBehavior
Models/confluye/{slug}/settings/modelsRead-only catalog cards (defaults, credential name, org-locked models, connection status). Add Key / Overrides jump to BYOK.
BYOK/confluye/{slug}/settings/byokAdd or update a provider key, live test, and workspace model overrides (enable/disable models, then Save).

Status on a card is configured when a matching AiProviderConfig exists (matched by provider, or by credentialName when provider is custom so Ollama/vLLM/custom do not collide).

Catalog providers

Hosted: openai, anthropic, google, azure, openrouter, deepseek, mistral, groq, perplexity, together, fireworks, xai, cohere, custom.

Local catalog keys ollama and vllm persist as provider: "custom" with credential names OLLAMA_API_KEY / VLLM_API_KEY. They require http/https baseUrl (loopback allowed). API keys are optional. Discovery (session catalog only) uses Ollama {origin}/api/tags and vLLM {origin}/v1/models, ~60s cache, and never throws — empty models plus a warning on failure.

Organization-locked models (cannot be re-enabled in the workspace UI): for example OpenAI gpt-4.5-preview, Anthropic claude-2, Google gemini-pro-vision. Workspace disabledModels on the provider config are additional.

Create and update

Required: provider, defaultModel, credentialName. Optional: baseUrl, apiVersion, disabledModels.

Session POST /api/ai-providers rejects non-http(s) baseUrl. v1 POST /api/v1/ai-providers does not run that validation.

POST .../ai-providers/test uses an inline apiKey or resolves credentialName in the workspace. HTTP 400 + { result } when the live check fails (ok: false). tRPC settings.testAiProvider throws BAD_REQUEST on failure.

There is no DELETE provider route. To change a key, patch credentialName or update the credential.

Authorization

Session routes require workspace membership (create action on POST). v1 routes require a workspace API key and scope configs to that key's workspace; unknown ids return 404. Viewer reads receive the workspace-safe.v1 provider projection without credentialName, baseUrl, or apiVersion. Keys with workspace.secret.read or workspace.write retain the full provider contract. Mutations require workspace.write.

Next steps