Directories
¶
| Path | Synopsis |
|---|---|
|
cmd
|
|
|
wawarden
command
Command wawarden runs the WaWarden gateway and its operator subcommands.
|
Command wawarden runs the WaWarden gateway and its operator subcommands. |
|
internal
|
|
|
api
Package api serves the client and admin surfaces through policy-classed registrations, plus a fixed loopback health endpoint.
|
Package api serves the client and admin surfaces through policy-classed registrations, plus a fixed loopback health endpoint. |
|
api/dto
Package dto declares every response body the API can send, so nothing else can reach a caller.
|
Package dto declares every response body the API can send, so nothing else can reach a caller. |
|
app
Package app wires configuration, logging, metrics, handlers and listeners into the running service.
|
Package app wires configuration, logging, metrics, handlers and listeners into the running service. |
|
attach
Package attach is the content policy for downloaded attachments: the served type, the format word, the image normaliser and the MP4 scrub.
|
Package attach is the content policy for downloaded attachments: the served type, the format word, the image normaliser and the MP4 scrub. |
|
backup
Package backup writes encrypted backups of both databases under backups/ in the data directory; it holds only an age recipient, so the service can never read a backup back.
|
Package backup writes encrypted backups of both databases under backups/ in the data directory; it holds only an age recipient, so the service can never read a backup back. |
|
buildinfo
Package buildinfo reports the version, VCS state and flavour of the running binary.
|
Package buildinfo reports the version, VCS state and flavour of the running binary. |
|
config
Package config turns an injected environment into a validated configuration or a startup refusal.
|
Package config turns an injected environment into a validated configuration or a startup refusal. |
|
cursor
Package cursor seals pagination positions and message references to one client and one request shape, so a caller can hand them back but never read, forge or reuse them elsewhere, and seals media references to one message.
|
Package cursor seals pagination positions and message references to one client and one request shape, so a caller can hand them back but never read, forge or reuse them elsewhere, and seals media references to one message. |
|
engine
Package engine is the WhatsApp engine without the protocol library: the client boundary, plain-data events, the supervisor, the durable ingest pipeline and the history worker.
|
Package engine is the WhatsApp engine without the protocol library: the client boundary, plain-data events, the supervisor, the durable ingest pipeline and the history worker. |
|
engine/wa
Package wa is the only user of the WhatsApp protocol library: it implements the engine's client boundary over a whatsmeow client, translates the library's events into the engine's plain data, guards pairing and caps downloads.
|
Package wa is the only user of the WhatsApp protocol library: it implements the engine's client boundary over a whatsmeow client, translates the library's events into the engine's plain data, guards pairing and caps downloads. |
|
engine/wa/internal/mediasrc
Package mediasrc declares the attachment source the adapter's media download takes: only Wrap puts a message in one, and the zero value carries none.
|
Package mediasrc declares the attachment source the adapter's media download takes: only Wrap puts a message in one, and the zero value carries none. |
|
keys
Package keys owns the keys directory of the data directory: it creates and checks the master key, keeps the retired ones, replaces the master on rotation and derives every purpose key.
|
Package keys owns the keys directory of the data directory: it creates and checks the master key, keeps the retired ones, replaces the master on rotation and derives every purpose key. |
|
listeners
Package listeners is the only package that opens sockets: named plain-HTTP listeners served by hardened servers.
|
Package listeners is the only package that opens sockets: named plain-HTTP listeners served by hardened servers. |
|
listeners/listenertest
Package listenertest reports the TCP sockets the calling process holds in the listening state.
|
Package listenertest reports the TCP sockets the calling process holds in the listening state. |
|
logx
Package logx is the one path from a logger to its output: fail-closed attribute rendering over a writer that redacts tokens, pseudonymises chat identifiers and drops lines carrying XML.
|
Package logx is the one path from a logger to its output: fail-closed attribute rendering over a writer that redacts tokens, pseudonymises chat identifiers and drops lines carrying XML. |
|
metrics
Package metrics is a small registry of counters and gauges with Prometheus text exposition.
|
Package metrics is a small registry of counters and gauges with Prometheus text exposition. |
|
notify
Package notify is the one place that emits operational events: one fixed-shape JSON line on standard output for each, also posted, signed, to an optional webhook.
|
Package notify is the one place that emits operational events: one fixed-shape JSON line on standard output for each, also posted, signed, to an optional webhook. |
|
policy
Package policy decides what an authenticated caller may do and mints the grants that prove it.
|
Package policy decides what an authenticated caller may do and mints the grants that prove it. |
|
policy/internal/seal
Package seal declares the chat, grant and credential types whose values only its constructors can build.
|
Package seal declares the chat, grant and credential types whose values only its constructors can build. |
|
ratelimit
Package ratelimit keeps one token bucket per key and weighted sliding-hour logs on an injected clock, and answers at once, never queueing a caller.
|
Package ratelimit keeps one token bucket per key and weighted sliding-hour logs on an injected clock, and answers at once, never queueing a caller. |
|
safego
Package safego starts goroutines and recovers panics without exposing panic values.
|
Package safego starts goroutines and recovers panics without exposing panic values. |
|
sanitize
Package sanitize removes the characters that let third-party text hide, reorder or rewrite what a reader or a terminal shows.
|
Package sanitize removes the characters that let third-party text hide, reorder or rewrite what a reader or a terminal shows. |
|
sender
Package sender sends one text message for a client that holds a write grant, at most once per idempotency key.
|
Package sender sends one text message for a client that holds a write grant, at most once per idempotency key. |
|
stage
Package stage owns the staging directory of the data directory: it admits one disk spool at a time and seals every 32 KiB sector of it with AES-256-GCM under a key held only in memory.
|
Package stage owns the staging directory of the data directory: it admits one disk spool at a time and seals every 32 KiB sector of it with AES-256-GCM under a key held only in memory. |
|
store/admin
Package admin holds the archive's administrative side: the status counters, the clients with their cached credentials, the hash-chained audit table and the chat listing.
|
Package admin holds the archive's administrative side: the status counters, the clients with their cached credentials, the hash-chained audit table and the chat listing. |
|
store/ingest
Package ingest owns archive.db: its schema, and the write side through which the engine records WhatsApp traffic with every identifier a canonical chat.
|
Package ingest owns archive.db: its schema, and the write side through which the engine records WhatsApp traffic with every identifier a canonical chat. |
|
store/inspect
Package inspect checks read-only copies of the archive and the device store taken from a backup and reports counts, never an identifier.
|
Package inspect checks read-only copies of the archive and the device store taken from a backup and reports counts, never an identifier. |
|
store/internal/db
Package db is the only holder of a database handle: it opens a SQLite file of the data directory with verified pragmas under an exclusive lock, keeps its one connection alive, and runs every call under a deadline.
|
Package db is the only holder of a database handle: it opens a SQLite file of the data directory with verified pragmas under an exclusive lock, keeps its one connection alive, and runs every call under a deadline. |
|
store/scoped
Package scoped is the archive's read side: every method takes a read grant first, resolves scope in the query itself, and returns rows that never marshal to JSON.
|
Package scoped is the archive's read side: every method takes a read grant first, resolves scope in the query itself, and returns rows that never marshal to JSON. |
|
store/session
Package session owns session.db: the protocol library's device store, kept in a SQLite file opened with the same checks, settings and lock as the archive.
|
Package session owns session.db: the protocol library's device store, kept in a SQLite file opened with the same checks, settings and lock as the archive. |
|
token
Package token generates, parses and hashes admin and client bearer tokens, and compares client token digests in constant time.
|
Package token generates, parses and hashes admin and client bearer tokens, and compares client token digests in constant time. |
Click to show internal directories.
Click to hide internal directories.