Bichon Docs

Authentication

  1. POST /api/login with username + password returns a JWT access token
  2. All /api/v1/* endpoints require Authorization: Bearer <token>
  3. Tokens expire after the configured duration (BICHON_WEBUI_TOKEN_EXPIRATION_HOURS, default 7 days)
  4. Long-lived API tokens can be created via WebUI or API for programmatic access

MFA / Two-Factor Authentication

TOTP-based two-factor authentication is built into the login flow (all editions, including Community). After enabling MFA on your profile, login requires a time-based one-time code verified via POST /api/auth/mfa/verify. Enable and disable events are recorded in the audit log on Pro/Enterprise.

Single Sign-On

  • OIDC SSO (Keycloak, Okta, Microsoft Entra ID, Google Workspace, Auth0) — Pro edition. See Single Sign-On.
  • LDAP / Active Directory bind-based sign-in — Enterprise edition. See Single Sign-On.

Default Admin Account

On first start, Bichon creates a built-in admin user:

  • Username: admin
  • Password: admin@bichon

Important: Change the password immediately via WebUI: Settings → Profile. If locked out, use the bichon-admin CLI tool to reset it.

Built-in Roles

RoleTypeScopeDescription
AdminGlobalUnrestrictedFull system access — users, roles, tokens, all accounts, all data operations
ManagerGlobalACL-scopedCreate accounts, view users, manage authorized accounts and their data
MemberGlobalMinimalBasic login access; data access granted through account-level role assignments
AccountManagerAccountPer-accountFull control over an assigned account — config, sync, data read/write/delete, import, SMTP ingest
AccountViewerAccountPer-accountRead-only access to an assigned account's messages and metadata

Permission Reference

Global Permissions

PermissionDescription
system:accessLogin and access the dashboard
system:rootFull system access and configuration; bypasses account ACLs
system:metricsRead the Prometheus metrics endpoint (GET /api/v1/metrics)
user:manageCreate, update, and delete users
user:viewView user list and basic profiles
token:manageView and revoke all API tokens
account:createConnect new email accounts to the system
account:manage:allManage configurations for all email accounts
data:read:allSearch and read messages across all accounts
data:manage:allManage tags and metadata for all accounts
data:raw:download:allDownload raw EML files from any account
data:delete:allPermanently delete messages from any account
data:export:batch:allExport messages in bulk from all accounts
backup:manageTrigger and manage backups, and browse backup data (restore points, manifests)
legal:holdPlace or release legal holds on accounts (Enterprise)
timestamp:manageManage RFC 3161 timestamp anchoring and verify per-email proofs (Enterprise)
compliance:auditRead-only compliance views: audit log, integrity reports, legal-hold status, anchors (Enterprise)
approval:decideApprove or reject dual-control requests for high-risk operations (Enterprise)

Account-scoped Permissions (require ACL assignment)

PermissionDescription
account:manageModify configuration and sync settings for authorized accounts
account:read_detailsView status and details of authorized accounts
data:readRead messages from authorized accounts
data:manageManage tags and metadata for authorized accounts
data:raw:downloadDownload raw EML files from authorized accounts
data:deleteDelete messages from authorized accounts
data:export:batchExport messages from authorized accounts
data:import:batchImport EML/PST data into authorized accounts
data:smtp:ingestReceive and archive emails via SMTP for authorized accounts

Tip: Built-in role permissions are immutable. Create custom roles via WebUI (/users/roles) or API for any combination of the permissions above. For creating users, assigning account roles, IP/rate limits and API tokens, see Users & Access Control.

On this page