Raw source access
Two endpoints bypass normalisation and return a source in its native shape, for
cases where the projection loses something needed.
GET /api/bng/audit/log?limit=<n> read_only
GET /api/bng/audit/journal?lines=<n>&units=<csv> read_only
The first tail-reads the controller's audit log directly and returns its records
verbatim, newest first, alongside a count of lines that failed to parse. It
returns 404 with an explanatory body if the log file does not exist.
The second shells journalctl across a default set of BNG service units —
the deploy service, the controller, VPP, the VPP bridge, the portal, and the
platform apply units — and projects each record to timestamp, unit, priority,
message, syslog identifier, and PID. The journal's native microsecond
timestamps are passed through as strings, unlike everywhere else in the
operational plane. Units may be overridden by parameter. Failure modes are
explicit: 500 if journalctl is unavailable or exits non-zero, 504 if it
exceeds its fifteen-second budget.