Breaking configuration change: Lumen 2.0 requires config version 3. The groups, users, and clients/projects sections are no longer managed in config.yaml; their records, memberships, limits, and access settings are now database-backed and managed through the Lumen UI. Before upgrading, save the existing groups.*.rules values and remove the legacy configuration sections so version 3 passes startup validation. After starting 2.0, log in with an account listed under admins, recreate and enable each group's auto-join rules from its Rules tab, and verify them before allowing regular users to sign in.
Helm upgrade warning: A rolling Helm upgrade from 1.26 is not supported because the 2.0 database migrations are incompatible with running 1.26 pods. Stop the existing deployment before upgrading the chart.
Database backup warning: Back up the database before upgrading to 2.0, regardless of deployment method. Do not rely on a database downgrade for rollback: it cannot reconstruct removed group and access data and will result in data loss; restore the pre-upgrade database backup instead.
Added
- Users can create and manage groups, members, and model grants through the new Groups pages; admins manage group coin policies. (PR #41)
- Admins manage database-backed auto-join rules per group, with matching login claims keeping memberships synchronized. (PR #41)
- Models support configurable early-access acknowledgements and badges. (PR #41)
- Models support end dates that hide and disable expired entries. (PR #41)
- Model detail pages show when a model was first seen. (PR #41)
Security
- Startup and Helm reject session-signing and encryption keys shorter than 32 characters. (PR #50)
- Upstream endpoint API keys are encrypted at rest with
app.encryption_key. (PR #41) - Model endpoint probes reject unsafe or internal targets, redirects, and DNS rebinding. (PR #41)
- Request bodies are capped before oversized uploads are buffered. (PR #41)
/metrics/debugsupports a separate bearer token viaapi.prometheus.debug_token. (PR #41)- The config editor rejects structurally invalid version 3 configurations before saving. (PR #41)
Changed
- Database and app-context diagnostics can be disabled with
app.diagnostics: false. (PR #41) - The implicit
defaultgroup is removed; users without a group pool continue to usedefaults.tokens. (PR #41) - Project ownership transfers use a Change Owner dialog and require the new owner to already be a manager. (PR #41)
- Breaking: Config version 3 removes user, project, client, group, and auto-join sections from config and Helm values; migrate old values files. (PR #41)
- Breaking: Model access is database-managed: unowned models are public; owned models are limited to their owner and granted groups. Back up the database and assign restricted-model owners when upgrading. (PR #41)
- Breaking: Project settings and per-user coin pools move from config to database-backed UI, preserving existing database values. (PR #41)
- Project detail pages use the profile-card and tabbed layout. (PR #41)
- Native browser dialogs are replaced with accessible application modals. (PR #41)
- Projects appear between Profile and Models in navigation. (PR #41)
- Project and admin-user tables expose usage and coin columns, newest-first last-use sorting, and inline admin actions. (PR #41)
- Project and user settings open from inline edit buttons with role-aware access. (PR #41)
- Deactivated projects remain visible to their administrators and managers. (PR #41)
- Profile and project pages show the next refill time. (PR #41)
Fixed
- Config validation rejects unknown future schema versions. (PR #41)
- Model endpoint probes reject carrier-grade NAT, including IPv4-mapped IPv6, and unspecified IP addresses. (PR #53)
- New model grants cannot target inactive groups. (PR #41)
- Project creation rejects duplicate project names. (PR #41)
- Model consent checks fail closed for deleted models and avoid duplicate lookups. (PR #41)
- Knowledge cutoffs reject values outside
YYYY-MMandYYYY-MM-DDformats. (PR #41) - PR #41 tests satisfy automated code-quality checks.
- Illinois-theme tables use consistent light-gray borders. (PR #41)
- Blocked, disabled, and expired models no longer expose metadata through detail, profile, or project pages. (PR #41)
- Consent endpoints hide blocked models behind the same response as unknown models. (#54)
- Bare model end dates keep models available through the named UTC date. (PR #41)
- Admin user and project tables show unlimited pools inherited from groups or global defaults. (PR #41)
- Invalid config-version values fail with the normal migration error instead of a traceback. (PR #41)
- Chat hides acknowledgement-required models when the entity has no coin pool. (PR #41)
- Non-serving CLI commands no longer start background workers during migrations and other maintenance commands. (PR #41)
- Data tables consistently render cell borders. (PR #41)
- Models.dev knowledge cutoffs are normalized to
YYYY-MM. (PR #41) - Config-editor saves tolerate unwritable backup paths. (PR #41)
- Gravatar hashing works on FIPS-enabled Python builds. (PR #41)