Files
thakares d398341f01
Rust CI / Test & Quality Checks (push) Canceled after 0s
Rust CI / Build Docker Image (push) Canceled after 0s
release: finalize BZOD v0.8.0
2026-08-21 16:23:32 +05:30

10 KiB

Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog and this project follows Semantic Versioning.

v0.8.0 — Core Admin Separation, Tenant Boundary & Authentication Hardening

Added

  • Core Admin is strictly platform-operator-only and has no tenant application storage.
  • Inspection-only global URL and landing-page registries for Admin.
  • Strict Admin/tenant route boundary with HTTP 403 enforcement.
  • TenantId-based active ownership and tenant filesystem topology.
  • Tenant-aware analytics worker grouping.
  • Deterministic cross-role session invalidation and cookie clearing.

Changed

  • Removed active production dependencies on the legacy system.db.global_slugs registry.
  • Removed request-time TenantId generation and integer tenant filesystem fallbacks from active tenant operations.
  • Admin resource creation endpoints reject Core Admin actors with 403 Forbidden.
  • User login and Admin login now establish role-specific sessions and clear the opposite-role session.

Compatibility

  • Historical v0.7.x migration and legacy restore compatibility remains preserved.
  • Legacy database/schema identifiers are retained only where required for migration and historical restore support.


v0.7.0 — Responsive UI, Theme Support & Build Metadata

Added

Responsive UI

  • Responsive layouts for admin and user URL registry panels
  • Responsive layouts for admin and user landing page registry panels
  • Desktop, laptop, tablet, and mobile layout support
  • Table-to-card responsive behavior for registry panels
  • Resolved horizontal scrolling issues in registry panels

Theme Support

  • Dark/light theme toggle
  • Theme persistence across sessions
  • Responsive theme behavior across device sizes

Build Metadata

  • Introduced build.rs build script for compile-time metadata
  • Introduced src/build_info.rs module exposing APP_VERSION and GIT_COMMIT
  • Application version derived from Cargo.toml via env!("CARGO_PKG_VERSION")
  • Git commit hash (12-char short) embedded at build time via BZOD_GIT_COMMIT
  • Graceful fallback to "unknown" when Git metadata is unavailable

Public Landing Page

  • Root / serves www/index.html with runtime file and embedded fallback behavior
  • Public/runtime www assets supported by the deployment layout

Changed

  • Documentation updated to reflect v0.7.0 current state
  • Version metadata updated across Cargo.toml, deploy.sh, and docker-compose.yml

Notes

  • No API behavior changes
  • No database schema changes
  • No authentication or security behavior changes
  • Existing redirect, routing, and tenant isolation behavior preserved

v0.6.0 — Legacy Restore Compatibility & Version Reporting

  • Legacy Backup Restore: Full backward-compatible restore support for legacy_flat_backup archives into the current multi-tenant database architecture
  • CLI Version Reporting: Added --version / -V flags derived from Cargo package metadata
  • Deploy Script: Removed obsolete init-db command; database creation and migration now handled by bzod serve
  • Version Verification: Deploy script now verifies installed binary version matches requested version

v0.5.3 — Architecture Refinement & Redirect Hardening


Changed

Architecture

  • Eliminated the monolithic admin.rs handler file
  • Reorganized admin functionality into focused feature modules under src/web/admin/
  • Separated authentication, dashboard, URLs, pages, analytics, settings, users, sessions, quotas, health, backups, API keys, audit, and moderation into dedicated modules
  • Extracted shared authentication and authorization helpers
  • Extracted common export and helper functionality

Redirect Handling

  • Removed panic-prone HeaderValue::from_str(...).unwrap() pattern from the redirect path
  • Added destination URL validation (scheme validation, control character rejection)
  • Added safe HTTP Location header construction
  • Improved database error logging with structured fields
  • Reduced unnecessary database mutex lock acquisitions on the redirect hot path
  • Removed synchronous expiration writes from the redirect hot path

Improved

  • Database lock scoping across admin handlers
  • Error handling consistency and observability
  • Handler decomposition for oversized functions
  • Reduced duplicated handler logic across admin operations

Verified

  • Root landing page (GET /) confirmed as intentional route serving www/index.html
  • Release binary built successfully
  • Runtime smoke tests passed (GET /, GET /login, GET /admin/login all return HTTP 200)
  • SQLite WAL mode and foreign-key enforcement initialized successfully
  • All existing migrations reported as up to date
  • Comprehensive automated test suite passed, including:
    • Authentication and migration tests
    • Redirect security tests
    • Root landing page test
    • Backup and restore tests
    • Business workflow tests
    • Security tests
    • Slug namespace, registry, and transfer tests
    • User management and isolation tests
    • WAL recovery tests
    • HTTP end-to-end tests

Notes

  • This release is an internal architecture and quality improvement
  • No new user-facing features were introduced
  • Existing API and route behavior was preserved
  • Existing redirect security and tenant isolation behavior was preserved

v0.5.1 - General Availability (GA)

Release Date: 2026-06-20

BZOD v0.5.1 is the largest release since project inception, transforming BZOD from a single-user URL shortener into a complete multi-user redirector, landing page, analytics, and administration platform.


Added

Multi-User Platform

  • Multi-user architecture with isolated tenant databases
  • Standard user accounts
  • Administrator accounts
  • User provisioning and lifecycle management
  • User enable/disable operations
  • User deletion workflows
  • Password reset functionality
  • User quota management
  • User database isolation

Authentication & Security

  • Session-based authentication
  • CSRF protection
  • Role-Based Access Control (RBAC)
  • Password hashing and verification
  • Session invalidation
  • Login/logout workflows
  • Administrative privilege separation
  • Audit logging

User Self-Service Portal

  • User dashboard
  • My Links management
  • My Pages management
  • User analytics dashboard
  • API token management
  • Password management
  • Profile management

Administration

  • User management dashboard
  • User detail pages
  • User creation forms
  • User editing interface
  • Session administration
  • Quota administration
  • Moderation dashboard
  • Slug management dashboard
  • Audit event viewer
  • Backup management interface
  • System health dashboard

Analytics

  • Per-user analytics
  • URL analytics dashboards
  • Landing page analytics dashboards
  • Browser statistics
  • Referrer tracking
  • Visit logging
  • Geographic analytics framework
  • Analytics aggregation jobs

Content Management

  • Landing page builder
  • URL registry management
  • Global slug namespace
  • Slug ownership tracking
  • Slug transfer workflows
  • Soft delete support
  • Moderation controls

Operations

  • Backup CLI
  • Restore CLI
  • User backup support
  • User restore support
  • Database diagnostics
  • Health checks
  • Quota reconciliation jobs
  • Retention jobs
  • Expiry jobs
  • Aggregation workers

Documentation

  • Installation Guide
  • Upgrade Guide
  • Multi-User Guide
  • Administration Guide
  • Security Guide
  • Backup & Restore Guide
  • Database Documentation
  • Architecture Documentation
  • CLI Documentation
  • API Documentation
  • Testing Documentation

Changed

Architecture

  • Migrated from single-user storage model to tenant-isolated storage model
  • Introduced users.db as central identity store
  • Introduced system.db as global platform metadata store
  • Introduced per-user content databases
  • Introduced per-user analytics databases

Routing

  • Unified global slug resolution
  • Centralized slug ownership tracking
  • Improved redirect handling
  • Improved landing page routing

Analytics

  • Improved aggregation performance
  • Improved reporting consistency
  • Improved analytics isolation

Administration

  • Expanded administrative tooling
  • Improved dashboard coverage
  • Added operational visibility

Security

Added

  • CSRF validation
  • Session management
  • RBAC enforcement
  • Audit event logging
  • User isolation controls
  • Slug ownership validation

Hardened

  • Authentication flows
  • Session validation
  • Administrative authorization
  • User lifecycle operations

Database

Added

  • users.db
  • system.db
  • Per-user content.db
  • Per-user analytics.db
  • Migration framework

Improved

  • WAL mode support
  • Upgrade migrations
  • Backup compatibility
  • Recovery workflows

Testing

Added

Comprehensive automated validation covering:

  • Authentication tests
  • Authorization tests
  • Migration tests
  • Upgrade validation tests
  • User isolation tests
  • Slug namespace tests
  • Slug transfer tests
  • Moderation tests
  • Backup and restore tests
  • Disaster recovery tests
  • Analytics tests
  • Concurrency tests
  • HTTP end-to-end tests
  • Business workflow tests
  • Security regression tests

Coverage

  • 90+ unit and integration tests
  • HTTP workflow validation
  • Upgrade path verification
  • Multi-user isolation verification
  • Backup and recovery validation

Fixed

Authentication

  • Multi-user migration login regressions
  • Session validation issues
  • Administrative account migration edge cases

Routing

  • Redirect handling consistency
  • Slug ownership synchronization
  • Landing page resolution issues

Analytics

  • Aggregation edge cases
  • Reporting consistency
  • Isolation validation

Concurrency

  • Fixed mutex deadlock conditions discovered during E2E testing
  • Improved lock scoping around audit logging

Administration

  • Improved slug transfer workflows
  • Improved user lifecycle operations
  • Improved dashboard consistency

Upgrade Notes

From v0.4.0

BZOD v0.5.0 introduces a new multi-user architecture.

Existing installations are automatically migrated during startup.

Migration includes:

  • Legacy administrator migration
  • Global slug index generation
  • User database creation
  • Analytics preservation
  • Content preservation

Backups are strongly recommended before upgrading.


v0.4.0

Added

  • Raw visitor activity logs
  • Analytics drill-down pages
  • Date-range analytics filters
  • CSV export
  • JSON export
  • Advanced pagination
  • Visitor log tables

Improved

  • Registry pagination
  • Analytics navigation
  • Export performance

Fixed

  • Pagination edge cases
  • Analytics sorting consistency