Anon is a Pumble anonymous-messaging bot. This document describes what Anon stores, what it deliberately does not store, how long data is retained, and how to contact the operators. It is a working draft scoped to the self-hosted reference deployment and must be reviewed by the deploying organisation before production rollout.
Anon stores the minimum state required to route anonymous messages, enforce rate limits, and support admin reporting.
conversations table.pending_replies table while
a reply modal is open.SPEC.md.SEND, BLOCK,
REPORT), workspace id, actor id, target id, conversation id, and a
small structured outcome field. Audit entries never include message
content./anon-block.CredentialsStore contract. These are operational secrets, not user
content.src/logger.ts redacts message text from every log line. Only
event type, ids, and outcome fields are emitted.Retention defaults are enforced by a scheduled retention job. They can be tuned per deployment but must be disclosed to users before launch.
pending_replies — purged 24 hours after creation. This table holds
transient modal state and should never accumulate rows.audit_log — 90 days by default. Required for incident response and
for resolving reports.conversations — 90 days by default. Retained so that reply and
report flows can resolve the original sender.See docs/SPEC.md section 6.3 for the authoritative retention
definitions and the retention-job specification.
Sender identity is hidden from the recipient. When a recipient presses
the Report button on an anonymous message, Anon posts a report to
the workspace’s configured #abot-reports channel containing the
sender id, recipient id, and original conversation id. This is the
only code path that exposes sender identity and it is gated on the
explicit report action.
Anon follows the rotation checklist and secret-leak procedure defined
in the repository root SECURITY.md:
SECURITY.md section Rotation checklist — routine credential
rotation steps.SECURITY.md section What to do if a secret leaks — incident
response runbook for leaked tokens or app secrets.Operators must rotate the Pumble client secret, signing secret, and any installation tokens before the first production deployment.
Security reports and privacy questions should be routed to a real
operator mailbox. The placeholder security@anon.example.com is used
throughout the reference repository and must be replaced with a
monitored address before the app is published to the Pumble
marketplace.
This document is a scaffold created as part of F-P8. It will be expanded with the final hosted URL, legal entity, and contact mailbox once the deployment target is chosen.