Skip to content

docs(identity): replace 6f items 6 and 7 with monitoring work - #414

Merged
PBernaerts merged 1 commit into
mainfrom
docs/6f-instrument-items-6-7
Aug 21, 2026
Merged

docs(identity): replace 6f items 6 and 7 with monitoring work#414
PBernaerts merged 1 commit into
mainfrom
docs/6f-instrument-items-6-7

Conversation

@PBernaerts

Copy link
Copy Markdown
Owner

Scope change to the approved 6f evidence list, agreed with the user. Items 6
and 7 stop being things a person watches and become things the monitoring
covers.

Why

Both items were a human standing in for instrumentation that does not exist.
That is the weakest kind of evidence: it covers the day somebody looked and no
day afterwards.

  • Item 6 was two df /dev/shm readings a day apart. That gives the slope on
    one particular Tuesday and nothing after it.
  • Item 7 was "watch for real member traffic". Establishing it today needed
    the traffic inferred from authentik's authorization events, because
    Caddy writes no access log and the gates record nothing themselves.

That second gap is the interesting one, because it is load-bearing for more
than one item. Today a /beheer 403 leaves no trace anywhere, a member refused
at a gate leaves no trace, and item 2's negative cases could not be
corroborated for exactly that reason.

The replacement

  1. Caddy access logging into Loki for the gated hosts, filtered to non-2xx.
    A log directive in web/caddy/Caddyfile.j2; Alloy already ships the
    container's output. Mind the existing drop stages when adding a source.
  2. A /dev/shm usage metric for authentik-server, plus an alert.
    Continuous, and it warns long before the tmpfs is a problem. Filling it
    stops the outpost writing sessions, which after 6f has no Authelia to fall
    back to.

Neither counts until its signal has been fired on purpose once. That is the
#401 lesson and it is not negotiable here: an alert nobody has watched arrive
is indistinguishable from silence, which is precisely how every notification
went nowhere for a month.

What was observed first

Recorded before superseding, because both are real and cost nothing:

  • A member reached the music gate at 10:56:25 CEST from a mobile carrier
    address on Android 17 / Firefox 153, off the house network entirely. Item 7
    is therefore partly met: music is proven, the apex and mtg have seen only
    the operator and test accounts and will close themselves as members use the
    landing page.
  • /dev/shm baseline: 512M total, 1.1M used, 1%, 6 files, container up 3 hours.
    Kept so the future alert has a sanity check.

The member is deliberately not named in the doc. The repo is public, and a
username plus their mobile carrier is not something to publish. tests/test-opsec.sh
does not catch that class, only the operator's own username, so it needed
catching by hand.

Checks

bash tests/run.sh green, zero failing suites. tests/test-opsec.sh 7/7. No
em dashes, no lines over 80 columns in the edited range.

Docs only. Does not touch the Status table or the 6f-pre section. Branched from
c4f2106, so it already includes #413.

Both items were a person standing in for instrumentation that does not exist,
which covers the day somebody looked and no day after it. Two hand readings of
/dev/shm give the slope on one particular Tuesday. "Watch for real member
traffic" needed that traffic inferred from authentik's authorization events,
because Caddy writes no access log and the gates record nothing themselves.

That second gap is the interesting one, because it is load-bearing for more
than one item. A /beheer 403 leaves no trace anywhere, a member refused at a
gate leaves no trace, and item 2's negative cases could not be corroborated
today for exactly that reason. Turning on Caddy access logging for the gated
hosts, filtered to non-2xx, makes all of it directly greppable and is a log
directive in the template. The /dev/shm metric plus an alert is the smaller
half and warns long before the tmpfs matters rather than after somebody
stopped taking readings.

Recorded with what was actually observed first: a member did reach the music
gate from a mobile carrier on Android, so item 7 is partly met and the rest is
tooling rather than patience, and a /dev/shm baseline of 1.1M of 512M was taken
because it costs nothing and gives the future alert a sanity check. The member
is deliberately not named; the repo is public.

Neither replacement counts until its signal has been fired on purpose once.
That is the #401 lesson and it is the whole reason this gate is evidence-based:
an alert nobody has watched arrive is indistinguishable from silence.
@PBernaerts
PBernaerts merged commit 1b30e24 into main Aug 21, 2026
9 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant