Skip to content

Repository files navigation

Consolebook

Consolebook is an early-stage training-record system for emergency communications centers. The initial focus is structured training programs, Daily Observation Reports, weekly summaries, task signoffs, acknowledgments, amendments, and defensible exports.

Consolebook is a Fieldmouse Works project — open tools for closed systems.

Status: pre-alpha design and scaffolding. There is no usable application yet. Do not put production or personnel data into this repository or any current build.

Product goals

  • Programs and agency terminology are versioned configuration.
  • Training sessions and evaluation records remain separate concepts.
  • Daily reports, weekly summaries, and phase evaluations have explicit provenance.
  • Finalized records are immutable while retained; corrections create successor versions.
  • Retention policies, holds, and lawful disposition are explicit workflows.
  • Acknowledgment records receipt rather than agreement.
  • Assignment-scoped access is the default.
  • Backups, recovery, and complete exports are product features.
  • A small center can operate one installation without a pile of external services.

Non-goals

  • A multi-tenant schema in the core application.
  • A generic drag-and-drop form builder.
  • Agency-specific code paths.
  • Cloud services, telemetry, or containers as runtime requirements.
  • Editing finalized records in place.

Architecture baseline

The current design target is a modular monolith:

  • Rust and Axum for the application and HTTP API
  • SQLx with SQLite in WAL mode for storage
  • a statically built SvelteKit interface embedded in the executable
  • Typst for deterministic PDF output
  • opaque server-side sessions with Argon2id password hashes
  • one executable and one data directory per installation

The server crate implements the Milestone 1 operable shell — a CLI, SQLite storage with verified connection invariants and embedded migrations, health and diagnostics, automatic validated backups with retention and a tested restore path, local authentication and recovery, an embedded SvelteKit shell, and persisted in-app notices — plus the Milestone 2 training-configuration domain: versioned programs whose published versions are immutable at the database, a structured authoring interface with version compare, a documented byte-stable export/import format, external standards citations, minimal user creation, and enrollments that pin published versions. Training sessions and evaluation records arrive with Milestone 3.

Repository map

Build and run

(cd web && npm ci && npm run build) # build the interface (embedded by cargo)
cargo run -p consolebook-server -- serve # initialize ./data and serve UI + API
cargo run -p consolebook-server -- doctor # diagnose an installation, read-only
cargo run -p consolebook-server -- backup # validated snapshot into ./data/backups
cargo run -p consolebook-server -- restore <snapshot># recover from a snapshot (server stopped)
cargo run -p consolebook-server -- setup-code # fresh first-run setup code
cargo run -p consolebook-server -- recover --username ... # rescue a locked-out administrator

serve binds 127.0.0.1:7770 by default and serves the web interface and the API from one process. An uninitialized installation prints a short-lived setup code; open the interface in a browser to create the agency and first administrator, then sign in. The data directory defaults to ./data and can be set with --data-dir or CONSOLEBOOK_DATA_DIR. Node.js is a build-time tool only — production runs the one executable. See ADR 0003 for database durability, ADR 0004 for authentication, and ADR 0005 for the embedded interface.

Privacy

Examples and test fixtures must be invented. Do not commit real agency names, employee information, operational narratives, credentials, exports, screenshots, or training records.

License

Consolebook is licensed under the GNU Affero General Public License v3.0 only. If you modify Consolebook and let users interact with it over a network, AGPLv3 requires you to offer those users the Corresponding Source for the running modified version.

See ADR 0002 for the decision and trade-offs.

About

Self-hosted training-record software for emergency communications: versioned programs, immutable finalized records, acknowledgments, lawful disposition, recovery, and portable exports. Rust. Pre-alpha.

Topics

Resources

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages