Skip to content

Glossary

Term Meaning
2FA / Two-Factor Authentication Optional second login factor using TOTP (authenticator app) plus 10 single-use recovery codes. Users self-enroll; platform admins can force-reset via /admin/mfa.
BYOK (Bring Your Own Key) Pattern where a user or workspace supplies their own API key for an AI provider instead of using a platform-managed credential.
doable-cli The Rust all-in-one operator binary (doable install / doable admin) for provisioning and administering Doable servers, locally or over SSH.
Egress firewall The workspace-level allow/deny ruleset governing which network destinations AI tools may reach. Backed by workspace_sandbox_rules (rule_type='network'). OS-level enforcement via nft/Squid.
Personal scope An AI account (Copilot account or custom provider) whose scope='user' makes it visible only to the owning member. Contrast with Workspace scope.
Platform admin A user with is_platform_admin=true; can manage all workspaces, users, and server config. Distinct from a workspace admin, who only manages one workspace.
Provider Bridge The platform-managed credential store for AI providers. Workspace admins configure shared API keys once; members pick a provider without seeing the raw secret.
Row-Level Security (RLS) Postgres-native per-row access control enforced via SET LOCAL "doable.current_user_id" inside a transaction. Active on projects, workspaces, integrations, and GitHub connections.
Sandbox allowlist The per-workspace rule set governing which AI tools and shell commands may run. Backed by workspace_sandbox_rules (rule_type='tool'). First-match-wins, glob patterns supported.
Workspace admin A workspace member with role admin or owner; can manage workspace settings, integrations, shared AI providers, and member roles. Cannot cross workspace boundaries. Contrast with Platform admin.
Workspace scope An AI account (Copilot account or custom provider) whose scope='workspace' makes it visible to all workspace members. Only workspace admins can create or modify workspace-scoped rows.
Workspace The top-level tenant. Owns billing, members, integrations, projects.
Project A single app / site / repo, owned by a workspace. Has files, chat history, deploy config.
Mode A configurable AI persona: system prompt + tool whitelist + provider preferences. Per-project or workspace-default.
Skill A higher-level capability composed of one or more tools (e.g. "Refactor", "Add feature").
Connector A first-party integration (Stripe, Linear, GitHub, ...). See Add an integration.
Integration An installed connector for a specific workspace, with auth credentials.
MCP Model Context Protocol: Anthropic's open standard for tool servers. Doable can both expose and consume MCP servers.
Tool A callable function the AI can invoke. Each tool has a JSON-Schema for its arguments and a permission policy (auto/ask/block).
Tool policy The per-workspace rules for whether a given tool runs automatically, asks for confirmation, or is blocked.
DoCore The AI engine package (@doable/docore); pools workers, maps provider events into a uniform shape, runs tool calls.
DoCoreEngine A single AI conversation runtime instance.
DoCorePool A pool of DoCoreEngine workers shared across users to bound concurrency.
DoVault The sandboxing package (@doable/dovault); spawns child processes inside a jail with config + resource limits.
Vault A configured dovault instance that knows which backend to use on the current OS.
Backend (sandboxing) Platform-specific implementation: Direct, Systemd, Nsjail (Linux); JobObject, WindowsHeap (Windows).
Jail The combined process-isolation layer: cgroups + namespaces + seccomp on Linux; Job Objects + AppContainer on Windows.
Isolator The component that places a process into the jail. ProcessIsolator chooses a backend.
Policy A declarative ruleset (PolicyStore) describing what tools/files/network a process or AI can touch. Enforced via createPolicySandbox.
Sandbox The combination of a jail + a policy applied to an in-flight tool call.
EventBus The in-process pub/sub used by docore to fan out AI events to subscribers (chat UI, audit log, billing).
mapSdkEvent The function that translates Copilot SDK events into Doable's uniform AIEvent shape.

| Awareness | The Yjs concept tracking each connected user's cursor, selection, and presence in real time. | | Room | A WebSocket channel for one collaborative document (typically one project file). | | Yjs | The CRDT library that powers conflict-free multi-user editing. | | Tunnel | Cloudflare Tunnel: a daemon (cloudflared) that exposes local services without opening firewall ports. | | PROJECTS_ROOT | The directory on disk where project files live. Default services/api/projects/ (bare-metal) or the api_projects Docker volume. | | SITES_DIR | The directory served by Caddy/nginx for published static sites. | | Credit | The internal billing unit. 1 credit ≈ a small unit of LLM work; exact ratio set per provider. | | Plan (billing) | A subscription tier (Free, Pro, Team, ...). Plans cap monthly credits, member counts, and feature flags. | | Plan (AI) | A multi-step proposal the AI generates before executing; see Plan Mode. Different from billing plan. | | KV store | The lightweight key-value abstraction in @doable/shared/kv-store.ts. In-memory by default; switches to Redis if REDIS_URL is set. | | Internal secret | A shared secret (INTERNAL_SECRET) the API uses to authenticate WS server callbacks and other backend-to-backend traffic. | | JWT | The signed token used for user-facing auth. Signed with JWT_SECRET. | | Encryption key | The 32-byte key (ENCRYPTION_KEY) used to encrypt OAuth tokens and BYO API keys at rest. |