Forum teuk.org

🏰 Mediabot 3.5 — MBWEB Enters the Castle Behind Sixteen Protective Charms 🛡️✨

in Mediabot · started by TeuK · 1w ago

TeuK · 1w ago

The owl has finally left the tower.

Commit 26d4407 has been committed and pushed to master with the following spell:

MB724: welcome mbweb behind sixteen protective charms 🏰🛡️

This development checkpoint brings the MB723 and MB724 work into the public Mediabot tree:

  • Version: 3.4dev-20260905_102117
  • Files changed: 68
  • Insertions: 4,462
  • Deletions: 645
  • Final full suite: 18,626/18,626 passed
  • Duration: 127 seconds
  • Stable release or tag: not performed

🪄 MB723 — Bringing MBWEB to Life

MB723 turns the Mediabot web console into a supported development component rather than a collection of experimental corridors hidden behind a tapestry.

The console now provides:

  • a production-oriented Express application;
  • durable MySQL-backed sessions;
  • bounded request bodies and upstream calls;
  • constant-time CSRF verification;
  • hardened authentication and session lifecycle handling;
  • channel capability enforcement;
  • protected diagnostics, metrics, radio and partyline interfaces;
  • a loopback-only production listener;
  • a documented Apache HTTPS reverse-proxy contract;
  • a sandboxed mbweb.service;
  • deterministic deployment with npm ci;
  • private deployment backups and audit evidence;
  • verified update, rollback and redeployment procedures.

The live operational rehearsal successfully completed:

  • Node tests: 48/48
  • Targeted tests: 391/391
  • Fast lane: 6,879/6,879
  • Initial deployment: 9/9
  • Rollback rehearsal: 8/8
  • Final redeployment: 9/9
  • Final operational checks: 20/20
  • npm high-severity findings: 0
  • npm critical findings: 0

Apache remained active and unchanged throughout the operation, while every IRC bot remained safely asleep in its own dormitory. 🦉

🛡️ MB724 — Sixteen Protective Charms

MB724 adds the cross-cutting security gate for the supported Mediabot 3.5 surface.

Its audit now enforces 37 fail-closed invariants across 16 security axes, covering:

  • configuration and secret boundaries;
  • authentication and authorization;
  • SQL construction and database access;
  • sessions and cookies;
  • CSRF and request boundaries;
  • HTML rendering and output encoding;
  • upstream HTTP protections;
  • metrics exposure;
  • diagnostics and Doctor behaviour;
  • privileged partyline operations;
  • plugin and command execution;
  • systemd identities and writable paths;
  • update and rollback guarantees;
  • public archive boundaries;
  • database references and migrations;
  • separation between application, runtime and operational evidence.

The final MB724 validation completed with:

  • Security audit: 37/37
  • Targeted lane: 428/428 across 15 files
  • Fast lane: 6,880/6,880
  • Loopback metrics checks: 5/5
  • Read-only Doctor checks: 4/4
  • Final cross-cutting checks: 24/24

The Doctor database session was explicitly read-only, metrics remained confined to a bounded loopback endpoint, and no service lifecycle, database, grant, Git or private-file mutation occurred during the MB724 exercise.

🗺️ The Final Marauder’s Map Incident

The code was ready, but the local commit spellbook briefly mistook two JavaScript configuration references for embedded credentials:

  • password: env.MBWEB_DB_PASS || ''
  • secret: config.sessionSecret

It also classified the public Apache example and systemd unit incorrectly.

The local, Git-ignored commit.sh helper was therefore repaired so that it can distinguish a map leading to a secret from the secret itself. Literal credentials remain strictly forbidden and are still automatically removed from the staging area.

The helper now also recognises these narrowly bounded public artifacts:

  • install/apache/*.conf.example
  • install/systemd/*.service

This repair remained local and was not included in the public commit.

Most importantly, the successful full suite was preserved and not rerun merely because the commit helper had stumbled over its own robes.

🚂 Current Platform Status

MBWEB is now committed as part of the supported Mediabot 3.5 development surface.

The final pre-commit full-suite gate, FULL01, has passed. MB719 remains the next open acceptance concern, while MB722 convergence remains blocked until its remaining prerequisites are satisfied.

This is still a development checkpoint: no stable version, release archive or tag has been published.

GitHub currently reports two moderate Dependabot findings on the default branch. They remain a separate dependency-maintenance follow-up; the MBWEB deployment audits reported no high or critical npm vulnerability.

For now, the castle gates are closed, the rollback portkeys have been tested, the owls are undisturbed, and MBWEB is finally where it belongs. 🏰🪄🦉

You must be logged in to reply.