Skip to content

Keryx monitoring and support intake (in-repo first slice) ​

First slice: 17 September 2026

This packet is the in-repo slice of #132 (P6-05). It does not close that issue and does not claim an analytics or crash SDK or a public status page. The intake drill is OA-132-intake-drill (done 17 September 2026; NAS evidence/keryx/2026-09-17-oa-132-intake-drill.txt, 1.05 KiB).

Drill evidence is OA-132-intake-drill in operator-actions.md. Support class: P0-05 in roadmap.md. Ticket data: data-classification.md. Delivery limits: safety-claims.md. Hotfix steps: hotfix-runbook.md and Publishing Keryx. Cadence: test-traceability.md.

Decision ​

ChoiceValue
TelemetryNo analytics or crash SDK at launch. No Firebase Analytics, Crashlytics, Sentry, or similar. No administrator identifiers in this repository (P0-05)
Minimum signalsHost/ops signals already available, plus client-reported diagnosis. No new processor
ChannelExisting SafeCall support path only. No standalone Keryx mailbox, public status page, 24/7 desk, or emergency-dispatch SLA
OwnerThomas Minitsios is RACI for incidents (P0-05). Backup is the same person (named concentration risk)
HoursCzech business hours Mon–Fri CET/CEST; next-business-day first response; same-business-day ack for supported-tier core-path incidents
DeliveryDo not invent delivery SLOs; stay on safety-claims.md

Not claimed: live reviewer Send-test (#123), store console paste (#125). OA-132-intake-drill and OA-129-hotfix-tabletop are done (NAS evidence 17 September 2026). Do not close #132 or #129.

Signals allowed at launch ​

Purpose is reliability and store/release health. Processors stay the existing ntfy host operator, store Account Holder mailbox, GitLab, and SafeCall support channel. Retention follows those systems. Do not copy client PII into git.

SignalPurposeProcessorRetentionNotes
Client ntfy journalctl -u ntfyHost up, publish/FCM errorsDeployer on hetest2 (or client dedicated ntfy)Host journal policyntfy-deployer.md. No extra product
SafeCall RecheckPublish path from the dashboardSafeCall server + notify hostExisting SafeCall logsStop on 429 (burns the visitor bucket)
Reviewer Send-testG4 page still publishes A5Review page backend + ntfyHost logsOptional after OA-123-review-host. Do not wait
ASC / Play emailReview, policy, signing warningsAccount Holder mailbox (controlled record, not git)Mailbox policyNo client alert bodies
GitLab work itemsDefects and incidentssourcecontrollers/safecallGitLab retentionSecret-free notes only
Client-reported diagnosisField cases P0-05 deferred to this packetSafeCall support channelSafeCall support processRedact per intake table below

Signals forbidden at launch ​

  • Analytics or crash SDKs, or any new telemetry processor.
  • Harvesting FCM/APNs device tokens, tk_… / subscribe_auth, QR payloads, or alert title/body into a central store.
  • Public status pages or unauthenticated health URLs that expose topic names.
  • Inventing a hostname, mailbox, or on-call product in git.

Apple nutrition label and Play Data Safety stay no analytics / no crash SDK until a later approved change with P0-05 authority and disclosure updates (legal/privacy.md, apple-privacy-compliance.md, play-data-safety.md).

Intake and redaction ​

Aligns the support-ticket row in data-classification.md. Public wording: legal/support.md §5.

Allowed in a ticketForbidden
Platform (iOS / Android) and OS version classsubscribe_auth, publish tokens, APNs/FCM tokens
Keryx version+build from the About / store listingQR photographs or decoded QR JSON
Time window (local date/time, timezone)Raw ntfy JSON, topic IDs, server URLs
Friendly category label (not topic id)Real client or building names, MACs, floor plans
Paused yes/no; camera/notification granted yes/noUnredacted lock-screen screenshots of production alerts

If a secret arrives anyway: do not paste it into GitLab or chat; rotate if the credential may have leaked; record only “rotated” on NAS evidence/keryx/.

Severity and communications ​

SeverityExamplesAckInternal comms
Sev1Core alert path down on a supported tier; credential leak; store stop / unpublishSame business day by Thomas (P0-05 core-path class)GitLab issue + SafeCall account path. No public status page
Sev2Single-platform delivery regression; reviewer page Send-test dead; store policy warning that does not stop the listingNext business day first responseGitLab + SafeCall path
Sev3Docs, UX, Czech copy, non-blocking listing nitsNext business dayGitLab

Escalation: Thomas Minitsios. Consulted: counsel if health/medical/claims scope changes (P0-02); client IT for OEM battery exceptions. Informed: affected SafeCall account owners via the SafeCall path.

Do not promise 24/7 coverage or guaranteed delivery while acknowledging a ticket.

Postmortem ​

After Sev1 or Sev2:

  1. Secret-free GitLab note on the incident item (symptoms, version/build, what changed, follow-up iid).
  2. NAS evidence/keryx/ pass/fail and checksums only. No QR photos, no tk_….
  3. Feed durable tests or runbook edits into the next change. Hotfix packet is hotfix-runbook.md; OA-129-hotfix-tabletop is done. Launch client communications stay #127.

What this slice proves ​

  • Launch monitoring is existing host/ops signals plus client reports, not a new SDK.
  • Intake redaction and severity/ack match P0-05 and P1-05.
  • Apple/Play “no analytics” answers remain aligned until a later change.
  • Hotfix authority consumes this severity model in hotfix-runbook.md; OA-129-hotfix-tabletop is done.

What this slice does not do ​

  • Close #132.
  • Add telemetry, a mailbox, or a status page.
  • Stand up reviewer Send-test (OA-123-review-host).

Operator enable ​

OA-132-intake-drill is done (17 September 2026). NAS evidence/keryx/2026-09-17-oa-132-intake-drill.txt (1.05 KiB). Do not close #132. Do not add an SDK. Do not stand up a status page.

Handoff ​

Remaining workOwner
Remaining #132 ACs beyond the intake drill#132
Hotfix / stop-rollout packethotfix-runbook.md; OA-129-hotfix-tabletop done
Phased rollout client communications#127
Quarterly signal review#133