- Final text polish and release metadata cleanup for the stable release line.
- Updated backend/frontend/API-visible versions to v1.0.2 / 1.0.2.
- Normalized dashboard role label display to Admin/Operator/Viewer while keeping API role values lowercase.
- Corrected About maintainer line to "Built and maintained by Noisens."
- README cleanup: SEO H1 added, release badge/status updated, and current release set to v1.0.2.
- Polished the global layout and removed redundant runtime badges from the live header.
- Improved sidebar branding with a cleaner logo presentation.
- Improved User Management readability with formatted role labels and status badges.
- Improved Audit Log readability with cleaner filters, compact details and a more structured table.
- Kept the release read-only and without database migrations.
- Stable selfhosted RouteForge release.
- Read-only routing safety model kept as a strict product baseline.
- User management and role-based access control.
- Audit Log.
- Change Cases.
- ASN Check, Prefix Check, and Preflight checks.
- BGP Visibility.
- ROA Planner / ROA Preflight.
- Watch Mode and scheduled rechecks.
- Reports and exports.
- System status, security warnings, and upgrade documentation.
- English-only UI and output polish.
- Upgrade backend/frontend to
1.0.0and API-visible version tov1.0.0. - Keep Alembic migration discipline (
alembic current,alembic heads,alembic upgrade head) before production use. - No new database migration was introduced specifically for this stable cut.
- UI Cleanup & English-only polish
Finalize release-candidate validation for deployment, upgrade discipline, security posture, and role-based UX quality before v1.0.
- Added deployment health check script (
backend/scripts/check_deployment_health.py) for API/system/database/build smoke validation. - Expanded operations docs with explicit release QA, upgrade QA, Docker QA, and security checklist guidance.
- Updated release checklist with role/feature UX validation scenarios for admin/operator/viewer.
- Version bump across backend/frontend/docs to
0.9.2/v0.9.2-rc.
- Use
python backend/scripts/check_deployment_health.py --base-url http://localhost:8000 --check-setup. - Ensure
/api/system/statusreportsread_only=trueandmigration_statusnotbehind.
- Verify
COOKIE_SECURE=truefor HTTPS. - Use explicit
CORS_ORIGINS, never*in production. - Ensure Alembic current/head parity before go-live.
cd backend && pytest -qcd frontend && npm run build
- Deployment smoke script checks endpoint health/state only; it does not perform synthetic business transactions.
- Security review hardening for session cookies (
COOKIE_SAMESITEsupport), CORS warnings, and stronger PBKDF2 password hashing with backward-compatible legacy hash verification. - Added system-status security warnings for invalid SameSite configurations and permissive CORS settings.
- Guarded SQLite
create_allstartup path behindALLOW_SQLITE_CREATE_ALLto avoid replacing migration discipline in production-like setups. - Version bump across backend/frontend/system status to
0.9.0/v0.9.0-rc. - Added upgrade validation script for Alembic empty-db/head/current checks and migration-behind detection.
- UX cleanup: removed browser prompt/confirm usage in Users and Watch Mode flows.
Make Watch Mode usable in production by replacing placeholder target creation with full create/edit UX.
- Added Watch Target create form with watch-type specific fields and sensible defaults (
interval_minutes=60,is_active=true). - Added Watch Target edit mode with Save/Cancel and refresh of target list/detail after updates.
- Improved target detail panel with key scheduling/status fields and richer run history columns.
- Enforced clear viewer read-only UX hint and disabled create/edit/delete/run actions for viewers.
- backend unchanged for this hotfix.
- frontend:
npm run build
- Form validation remains primarily API-driven; frontend currently forwards server-side validation errors.
Improve prefix visibility checks with explicit BGP origin visibility details while preserving RouteForge's strict read-only model.
- Added dedicated backend service and API endpoint
POST /api/check/bgp-visibility. - Added frontend BGP Visibility page and Change Case integration action.
- Added audit event
bgp_visibility_checkedplus existing case attachment events when linked to a Change Case. - Extended report output to include structured BGP visibility details via generic detail rendering.
OK: prefix visible and expected origin (if provided) is seen.WARNING: prefix visible with multiple or unexpected origins (without strict expectation).CRITICAL: prefix not visible with expected origin requirement, or expected origin not visible.UNKNOWN: no reliable source data.
BGP visibility checks remain read-only and do not modify RIPE DB, RPKI objects, or routers. Results are external visibility snapshots.
- backend:
pytest -q - frontend:
npm run build
- Visibility depends on external RIPEstat data quality and timing.
- Results are point-in-time and not a substitute for continuous monitoring.
- Added Projects / Change Cases lifecycle (draft, in_review, approved, closed).
- Added Change Case API, UI navigation and detail workflow.
- Checks and reports can be attached to Change Cases for local RouteForge workflow traceability.
- Added audit events for Change Case and attachment operations.
- Security: Change Cases are local workflow metadata only; no writes to RIPE DB, RPKI, or routers are performed.
Stabilization, UX Polish & Upgrade Safety
- Harden end-to-end operator workflows without introducing major new features.
- Improve UI clarity for loading/error/empty states and watch/change-case day-2 operations.
- Improve migration visibility and upgrade safety for selfhosted environments.
- Added backend E2E workflow test coverage for Change Case → BGP Visibility → ROA Preflight → Watch Run → Report/Audit validation.
- Improved Change Case report ordering to newest-first.
- Improved Watch Mode UX with run-due action, summary feedback, newest-first run history, changed-run highlighting, and report links.
- Improved system migration guidance to show actionable Alembic command hints.
- Bumped versions and docs to
v0.8.1-beta/0.8.1.
- System status now emphasizes migration command sequence when DB revisions are behind.
- Added explicit SQLite/dev-mode note about
create_allvs Alembic stamping order in upgrade operations docs.
cd backend && pytest -qcd frontend && npm run build
Base.metadata.create_all()remains intentionally active only for SQLite/dev compatibility.- Some UI areas still use free-form filter fields where predefined presets may be added later.
Audit Log UI & Session Hardening
- Added centralized backend audit logging service and audit events for setup/auth/user/check/report actions.
- Added admin-only
GET /api/audit-logAPI with basic filters and newest-first sorting. - Added admin-only Audit Log UI with table, loading/error/empty states and filters.
- Session cookie handling now consistently uses
SESSION_COOKIE_NAMEandCOOKIE_SECUREsettings for set/delete. - Added backend tests for audit permissions/events and session cookie hardening behavior.
- Audit events exclude passwords, password hashes, session tokens and secrets.
login_failedentries store only username/reason and request metadata.- RouteForge remains read-only against RIPE DB, RPKI and routers; no write paths were introduced.
- Audit logging is local to RouteForge storage only.
Auth UX & Admin Console Polish
- Logged-in user and role are clearly visible in the UI.
- Added visible logout flow.
- Added admin-only user management UI.
- Added role-aware navigation for admin/operator/viewer.
- Improved permission and session-expired messages.
- Dashboard now explains current user capabilities.
- User management API responses avoid password hash exposure.
- Audit Log UI/API may be included if implemented.
- No OAuth/SSO yet.
- No LDAP yet.
- No email password reset flow yet.
- Audit log UI may still be limited if not implemented in this sprint.
Alembic Logging Config Hotfix
- Fixed Alembic CLI crash with
KeyError: "formatters". - Alembic
env.pynow handles minimalalembic.inifiles safely. - Database migration commands now work in Docker selfhosting setups.
- Migration troubleshooting documentation updated.
Frontend Auth Render Hotfix
- Fixed white screen after initial admin setup/login.
- Fixed React hook ordering issue in
App.tsx. - Auth bootstrap flow now renders setup/login/app states without hook crashes.
- No backend routing/check logic changed.
Auth Bootstrap Fix
- Fixed missing Initial Admin Setup screen.
- App now blocks dashboard/check views until setup/login state is resolved.
- Fixed NoneType crash when running checks without authenticated user.
- Check endpoints now return 401/403 instead of HTTP 500.
- API requests include session cookies consistently.
Production Polish & Security Baseline
- Security headers for frontend Nginx
- Improved same-origin proxy security guidance
- Container hardening review
- Safer environment and secrets documentation
- Logging baseline improvements
- Security operations documentation
- Release checklist documentation
- Optional security warnings in system status
- No authentication yet
- No multi-user support yet
- No advanced RBAC yet
- No automated release pipeline yet
RouteForge is now licensed under AGPL-3.0-or-later.
The license choice reflects RouteForge's selfhosted-first and network-service nature and ensures that improvements to publicly hosted modified versions remain available to users.
Database Lifecycle & Migrations
- Alembic migration baseline for backend schema lifecycle
- Initial schema migration
0001_initial_schema - Migration status visibility in
/api/system/status - Database schema version visibility in GUI System view
- Upgrade process updated with explicit migration steps
- Backup/restore documentation updated for migration-safe operations
- Existing alpha databases may need manual baseline handling (
alembic stamp 0001_initial_schema) - No advanced rollback automation yet
- Authentication is not implemented yet
System Status & Operational Checks
- New
/api/system/statusendpoint - GUI System Status view
- Database health visibility
- RIPEstat runtime settings visibility
- Read-only safety state shown
- API proxy status visible from frontend
- Improved selfhosting observability
- No authentication yet
- No multi-user support yet
- No advanced alerting
- No scheduled health checks yet
Production Selfhosting Foundation
- Production Docker Compose
- PostgreSQL-backed deployment path
- Healthchecks
- Backup/Restore documentation
- Reverse proxy documentation
- Logging and upgrade documentation
- Continued read-only safety model
- Database migrations are currently simple/alpha-grade and will be hardened before v1.0.
- No authentication yet
- No multi-user support yet
- No write operations
- Retry & Resilience
- Retry diagnostics
- Attempts/retry count visible
- Rate-limit handling
- Optional stale cache fallback
- UI/report warning when fallback data is used
- Cache & Freshness Transparency
- Cache age and TTL shown in diagnostics
- Freshness classification LIVE/FRESH/EXPIRING_SOON/STALE/UNKNOWN
- Force Refresh support prepared internally
Product Demo & Release Readiness
- Improved README for public alpha usage
- Demo flow documentation
- Screenshot plan
- Clear Quickstart
- v0.2.x features summarized:
- Change Preflight Mode
- Routing Visibility Check
- Holder display
- Export/Sharing
- ASN-RPKI batch availability explanations
- Alpha software
- RIPEstat payloads can vary
- No write operations
- No usermanagement yet
- No local RPKI validator yet
- No full BGP monitoring
RouteForge v0.2.0-alpha introduced the functional alpha baseline for read-only routing preflight checks.
Key capabilities in v0.2.x:
- Change Preflight Mode
- Routing Visibility Check
- Holder detection/display
- Export & sharing (Summary, Markdown, HTML)
- ASN-RPKI batch availability explanations
- Demo mode and CI-backed test workflows
Migration UX & Auth Visibility Hotfix
- Improved visibility for database migration status.
- Added clearer troubleshooting for missing
created_by_user_idcolumns after v0.6 upgrade. - Added logged-in user and role display in the UI.
- Added visible logout action.
- Improved migration warnings in Dashboard/System views.
- Improved handling of stale database schemas.
- Added
DELETE /api/change-cases/{id}for operators/admins with check detachment and audit logging (change_case_deleted). - Improved Change Cases frontend UX with in-app create/edit forms, status workflow buttons, check execution inputs, report table, and delete action with confirmation.
- Added frontend API helpers for deleting cases and running prefix/preflight checks with
change_case_id. - Added backend tests for change-case deletion authorization, detachment behavior, and audit event emission.