All notable changes to Armada are documented in this file.
- Multi-tenant support -- all operational data (fleets, vessels, captains, missions, voyages, docks, signals, events, merge entries) is scoped by tenant
- Tenant, user, and credential models --
TenantMetadata(ten_prefix),UserMaster(usr_prefix),Credential(crd_prefix) - Bearer token authentication -- 64-character random alphanumeric tokens linked to a specific tenant and user, sent via
Authorization: Bearer <token>header - Encrypted session tokens -- AES-256-CBC self-contained tokens with 24-hour lifetime, sent via
X-Tokenheader. No server-side session storage required - Authentication endpoints --
POST /api/v1/authenticate,GET /api/v1/whoami,POST /api/v1/tenants/lookup - Onboarding endpoint --
POST /api/v1/onboardingfor self-registration (gated byAllowSelfRegistrationsetting) - Tenant CRUD endpoints --
GET/POST/PUT/DELETE /api/v1/tenants(admin only, with self-read for non-admins) - User CRUD endpoints --
GET/POST/PUT/DELETE /api/v1/users(admin only, with self-read for non-admins) - Credential CRUD endpoints --
GET/POST/PUT/DELETE /api/v1/credentials(admins: all; non-admins: own credentials) - Admin vs non-admin access patterns -- three-tier authorization:
NoAuthRequired,Authenticated,AdminOnly - Default data seeding -- on first boot, creates default tenant, user (
admin@armada/password), and credential (bearer tokendefault) - React dashboard -- standalone React dashboard (
Armada.Dashboard) as a separate deployment option for Docker/production - Docker Compose with dashboard --
compose.yamlrunsarmada-serverandarmada-dashboardcontainers together - SQL Server support -- added SQL Server as a database backend option alongside SQLite, PostgreSQL, and MySQL
AllowSelfRegistrationsetting -- controls whetherPOST /api/v1/onboardingis enabled (default:true)SessionTokenEncryptionKeysetting -- AES-256 key for session token encryption (auto-generated if not provided)
- All REST API endpoints now require authentication (except health check, authenticate, tenant lookup, onboarding, and dashboard routes)
- All operational database queries are tenant-scoped for non-admin users
- Admin users see all data across all tenants
- CORS headers now include
AuthorizationandX-TokeninAccess-Control-Allow-Headers
X-Api-Keyheader -- retained for backward compatibility but deprecated. When configured, the server creates a synthetic admin tenant (ten_system) and user (usr_system). Migrate to bearer tokens for new integrations
- Multi-database support (SQLite, PostgreSQL, MySQL) with connection pooling
- Structured
databaseobject insettings.jsonreplacing flatdatabasePath - Migration scripts for v0.1.0 to v0.2.0 settings conversion
- Merge queue system for automated branch merging
- WebSocket hub for real-time event streaming
- Embedded dashboard at
/dashboard - MCP server with full API parity (18 tools)
- Batch delete operations for all entity types
- Enumeration (POST) endpoints with JSON body filtering
- Mission diff and log retrieval endpoints
- Captain log streaming
- Dock (worktree) management endpoints
- Signal system for Admiral-captain communication
- Event audit trail
- Settings format:
databasePathstring replaced withdatabaseobject (breaking change)
- Initial release
- Core orchestration: fleets, vessels, captains, missions, voyages
- Git worktree isolation for parallel agent work
- Multi-runtime support: Claude Code, Codex, Gemini, Cursor
- Auto-recovery for crashed agents
- REST API on port 7890
- CLI (
armada) with Spectre.Console - SQLite database backend
- Zero-config startup with auto-detection