Skip to content

Releases: Shrpp/ovlt

v0.4.5-alpha

v0.4.5-alpha Pre-release
Pre-release

Choose a tag to compare

@Shrpp Shrpp released this 08 May 18:30

v0.4.5-alpha

Warning

Alpha build — not production ready. APIs and configuration may change without notice.
Do not use in production until a stable release is announced.

Bug Fixes

  • Validation error messages no longer expose internal output — Fields like email and password in the TUI were displaying raw output from the validator crate (e.g. [email]: Is not a valid email address) instead of human-readable messages. All validation errors now return clean, user-facing messages. Resolves #17.

Refactor

  • Centralized validation error handling — A shared validation_to_app_error() helper was introduced in error.rs to convert validator::ValidationErrors into structured AppError::Validation responses with dynamic messages (email → "Must be a valid email address", length → "Must be between N and M characters", url → "Must be a valid URL", etc.). Applied across all 13 handlers that perform input validation.

Full Changelog: v0.4.4-alpha...v0.4.5-alpha

Full Changelog: v0.4.4-alpha...v0.4.5-alpha

v0.4.4-alpha

Choose a tag to compare

@Shrpp Shrpp released this 07 May 19:00

v0.4.4-alpha

Warning

Alpha build — not production ready. APIs and configuration may change without notice.
Do not use in production until a stable release is announced.

Bug Fixes

  • Middleware order correctedtenant_middleware now runs before rate_limit_middleware. The previous order meant the rate limiter executed without tenant context, preventing correct per-tenant request scoping. The fix also aligns the running stack with what the architecture docs described.

  • Duplicate /openapi.json route removedswagger_router() was registering the OpenAPI spec endpoint twice, causing a route conflict at startup. The duplicate declaration has been removed; /openapi.json and /docs (Swagger UI) continue to work as expected.

  • Integration test build fixeddb::connect call in tests/auth_test.rs updated to match the new signature introduced in the previous release (max_connections, min_connections). Tests were failing to compile after the configurable pool change.

Documentation

  • Architecture doc updated — Request lifecycle diagram corrected to reflect the fixed middleware order (tenantrate-limit). Token model section clarified: access tokens are HS256 (HMAC-SHA256 via JWT_SECRET), not RS256 — RS256 is used only for id_tokens in the OIDC flow. Parameterized SQL note added to the multi-tenancy section.

  • Security doc updated — Token signing algorithm references aligned with the actual implementation (HS256 access tokens, RS256 id_tokens).

  • Roadmap expanded to 8 stages — README now documents Stages 7 and 8 beyond the previously listed 6. "OVTL" typo fixed throughout.

Full Changelog: v0.4.3-alpha...v0.4.4-alpha

Full Changelog: v0.4.3-alpha...v0.4.4-alpha

v0.4.3-alpha

v0.4.3-alpha Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 07 May 17:29

v0.4.3-alpha

Warning

Alpha build — not production ready. APIs and configuration may change without notice.
Do not use in production until a stable release is announced.

Internal

  • Code formatted with cargo fmt — no functional changes.

Full Changelog: v0.4.2-alpha...v0.4.3-alpha

v0.4.2-alpha

Choose a tag to compare

@github-actions github-actions released this 07 May 17:28

v0.4.2-alpha

Warning

Alpha build — not production ready. APIs and configuration may change without notice.
Do not use in production until a stable release is announced.

Features

  • Secure cookies — The ovlt_session cookie now includes the Secure flag automatically when ENVIRONMENT=production, restricting it to HTTPS-only transport. In development the flag is omitted so http://localhost keeps working without any change to the workflow.

  • Configurable connection pool — Two new env vars control the PostgreSQL pool size: DATABASE_MAX_CONNECTIONS (default 20) and DATABASE_MIN_CONNECTIONS (default 2). Pool options now also explicitly set connect timeout (10s), acquire timeout (10s), idle timeout (10min), and max lifetime (30min).

  • Dev mode — Set OVLT_DEV_MODE=1 to skip manual bootstrap configuration during local development. The server auto-generates OVLT_ADMIN_KEY and pre-fills bootstrap_admin_email / bootstrap_admin_password with safe defaults so the first cargo run just works. Dev mode is blocked if ENVIRONMENT=production — the server exits with an explicit error to prevent accidental exposure.

  • First-run credentials box — On the very first startup in development, the server now prints a styled summary to stderr with the generated tenant slug, tenant ID, admin email, password, and admin key, plus a ready-to-run curl command to test the login endpoint immediately.

Security

  • Parameterized SQL in tenant transactionsbegin_tenant_txn now uses Statement::from_sql_and_values with a bound parameter for the set_config('app.tenant_id', $1, true) call instead of string interpolation, eliminating any SQL injection surface on tenant ID resolution.

Documentation

  • configuration.md updated with entries for DATABASE_MAX_CONNECTIONS, DATABASE_MIN_CONNECTIONS, and OVLT_DEV_MODE.
  • getting-started.md updated to reflect the dev mode workflow and the first-run credential output.
  • api-reference.md minor corrections.

Full Changelog: v0.4.1-alpha...v0.4.2-alpha

v0.4.1-alpha

Choose a tag to compare

@github-actions github-actions released this 07 May 15:46

v0.4.1-alpha

Warning

Alpha build — not production ready. APIs and configuration may change without notice.
Do not use in production until a stable release is announced.

Bugfixes

  • Auto-migrations on startup — The server now calls Migrator::up() automatically at boot before accepting any traffic. No separate migration step is needed — cargo run or docker compose up is all it takes to bring the schema up to date. Startup fails fast and exits with a clear error if a migration cannot be applied.

Full Changelog: v0.4.0-alpha...v0.4.1-alpha

v0.4.0-alpha

Choose a tag to compare

@Shrpp Shrpp released this 07 May 00:30
f7fe869

v0.4.0-alpha

Warning

Alpha build — not production ready. APIs and configuration may change without notice.
Do not use in production until a stable release is announced.

Features

  • CLI serve / connect commands — The CLI now uses a subcommand interface instead of a flat --url flag. Run ovlt connect <url> once to persist the server URL to disk, then ovlt serve to open the admin TUI. The saved URL is loaded automatically on every subsequent serve call.

  • Universal login — New POST /auth/login/universal endpoint. Instead of requiring the caller to know the tenant upfront, the server searches across all active tenants for a matching user, resolves the correct tenant context, and issues a standard JWT. Designed for multi-tenant setups where the front-end has a single login form.

  • TUI UX redesign — Full redesign of the admin TUI layout, navigation, and modal system. Improved status bar with contextual feedback, refactored settings panel, and a reworked login screen.

  • Structured error responsesAppError now serializes every variant as a typed JSON object with error (machine-readable code), message (human-readable string), and, for validation failures, a fields map with per-field messages. All previous plain-text error responses have been replaced.

Documentation

  • New database.md page — connection details for local and remote (SSH tunnel) setups, key table reference, and a set of ready-to-run diagnostic SQL queries.
  • docs.json updated to include the new Database Access page under the internals group.

CI / Release

  • Cross-platform CLI release workflow updated — builds now correctly target multiple architectures and the binary path resolution is aligned with the workspace layout.

Full Changelog: v0.3.1-alpha...v0.4.0-alpha

v0.3.1-alpha

v0.3.1-alpha Pre-release
Pre-release

Choose a tag to compare

@Shrpp Shrpp released this 07 May 00:21

v0.3.1-alpha

Warning

Alpha build — not production ready. APIs and configuration may change without notice.
Do not use in production until a stable release is announced.

Bugfixes

  • Hotfix: Add curl to build dependencies in Dockerfile.

Full Changelog: v0.3.0-alpha...v0.3.1-alpha

Full Changelog: v0.3.0-alpha...v0.3.1-alpha

v0.3.0-alpha

v0.3.0-alpha Pre-release
Pre-release

Choose a tag to compare

@Shrpp Shrpp released this 07 May 00:13
0308675

v0.3.0-alpha

Warning

Alpha build — not production ready. APIs and configuration may change without notice.
Do not use in production until a stable release is announced.

Features

  • OpenAPI / Swagger UI: Added OpenAPI specification with interactive Swagger UI for API exploration.

Full Changelog: v0.2.0-alpha...v0.3.0-alpha

v0.2.0-alpha

Choose a tag to compare

@Shrpp Shrpp released this 06 May 20:55
f377e3e

v0.2.0-alpha

Warning

Alpha build — not production ready. APIs and configuration may change without notice.
Do not use in production until a stable release is announced.

Features

  • Per-tenant SMTP — Configure a custom SMTP server per tenant (host, port, TLS, credentials). Used automatically for email
    verification on registration and password-reset links. Admin API (GET/PUT /admin/smtp) and TUI Settings → SMTP tab.

  • WebAuthn / Passkeys — Full FIDO2/WebAuthn Level 2 support via webauthn-rs 0.4. Users can register and authenticate with platform
    passkeys (Face ID, Touch ID, Windows Hello, hardware keys) through a browser UI. Admin can list and delete passkeys per user in the TUI
    (Edit User → Passkeys section) and via GET/DELETE /admin/users/:id/passkeys.

  • Master admin cross-tenant access — The bootstrap user (master tenant) can now access and modify settings for any tenant without a

  • Error 401. Previously, the JWT tenant check in auth_middleware blocked cross-tenant requests on all JWT-protected routes (/settings/*).

Bug fixes

  • auth_middleware: master tenant JWT no longer rejected when X-Tenant-ID targets a different tenant.
  • clippy::too_many_arguments suppressed on put_smtp and email_service::try_send to unblock builds with -D warnings.

Documentation

  • Full rewrite of admin-tui.md — layout wireframe, all 8 tabs, Settings sections (General / Security / SMTP), Edit User modal fields.
  • New pages: smtp.md, webauthn.md, social-login.md, mfa.md, m2m.md.
  • All ASCII flow diagrams converted to Mermaid across the entire docs tree.
  • docs.json restructured with a new Features group.

Migrations

  • m20240101_000023tenant_smtp_config table (per-tenant SMTP, password encrypted at rest).
  • m20240101_000024webauthn_credentials table (credential ID, public key JSON, name, sign count, last used).

Full Changelog: v0.1.2-alpha...v0.2.0-alpha

v0.1.2-alpha

Choose a tag to compare

@Shrpp Shrpp released this 28 Apr 15:24

v0.1.2-alpha

First public alpha of OVLT — a self-hosted, zero-knowledge OIDC authorization server.

Warning

Alpha build — not production ready. APIs and configuration may change without notice.
Do not use in production until a stable release is announced.

Bug fixes

  • Fixed resolve CLI binary path in release workflow — use workspace target/ root instead of ovlt-cli/target/

Full Changelog: v0.1.1-alpha...v0.1.2-alpha