Journaling: search, read and export over JMAP, and the chain check #118

Merged
jcoffey-dev merged 1 commits from feature/journal-search into main 2026-09-29 04:53:30 +00:00
Owner

Phase 4 of the journaling spec.

  • inbuxa:JournalEntry/query + /get (sysJournalSearch): time, sender, recipient, address, direction, subject words, Message-ID, journal; report only when asked.
  • inbuxa:JournalExport/set (sysJournalExport): reason required; ZIP in the hold export's shape, up to 10,000 reports / 1 GB (built in the request like the audit export; larger searches are refused with the count).
  • inbuxa:JournalVerification/set (sysJournalGet).
  • Search, listing, each read, export and check are audited before anything is returned (existing actions only, rollback-safe).

Tests: journal_tests (search section as a Compliance Officer; admins refused), compliance_tests, audit_log_tests, mail_rules_tests, unit tests, fork checks.

Phase 4 of the journaling spec. - `inbuxa:JournalEntry/query` + `/get` (sysJournalSearch): time, sender, recipient, address, direction, subject words, Message-ID, journal; `report` only when asked. - `inbuxa:JournalExport/set` (sysJournalExport): reason required; ZIP in the hold export's shape, up to 10,000 reports / 1 GB (built in the request like the audit export; larger searches are refused with the count). - `inbuxa:JournalVerification/set` (sysJournalGet). - Search, listing, each read, export and check are audited before anything is returned (existing actions only, rollback-safe). Tests: journal_tests (search section as a Compliance Officer; admins refused), compliance_tests, audit_log_tests, mail_rules_tests, unit tests, fork checks.
jcoffey-dev added 1 commit 2026-09-29 04:45:14 +00:00
Journaling: search, read and export over JMAP, and the chain check
ci / fork-checks (pull_request) Successful in 16s
ci / build (pull_request) Successful in 8m0s
daa486f7e7
Phase 4 of the journaling spec.

- inbuxa:JournalEntry/query and /get (sysJournalSearch): filter by time,
  sender, recipient, either, direction, subject words, Message-ID and
  journal, newest first; the whole report only when asked for.
- inbuxa:JournalExport/set (sysJournalExport): a reason is required; a
  ZIP of the matching reports with manifest.csv, exceptions.csv and
  manifest.sha256, up to 10,000 reports and 1 GB.
- inbuxa:JournalVerification/set (sysJournalGet): chains and reports
  rechecked.
- Every search, listing, read, export and check is written to the audit
  log before anything is returned, with existing actions only.
- Catalog entries for the three objects; spec as-built notes.

journal_tests: administrators can't search; a Compliance Officer searches,
lists, reads a report, exports (reason required) and checks the chain;
the officer can't change journals; each of those is in the audit log.
jcoffey-dev merged commit a992caf810 into main 2026-09-29 04:53:30 +00:00
jcoffey-dev deleted branch feature/journal-search 2026-09-29 04:53:30 +00:00
Sign in to join this conversation.
No Reviewers
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: inbuxa/inbuxa-server#118