feat: enforce Mail-owned campaign transport boundary
This commit is contained in:
43
README.md
43
README.md
@@ -19,9 +19,41 @@ This repository owns:
|
||||
|
||||
Core owns auth, tenants, RBAC evaluation, database/session primitives, secret helpers, CSRF/API helpers, and shell layout.
|
||||
|
||||
## Credential inheritance policy
|
||||
## Profile and credential ownership
|
||||
|
||||
SMTP and IMAP each have one credential inheritance decision: descendants inherit profile credentials, may inherit profile credentials, or must provide local credentials. The lower-level override switch for `smtp_credentials.inherit` and `imap_credentials.inherit` decides whether child scopes may change that decision. There is no separate "override the override" credential policy field.
|
||||
Mail profiles are separate governed definitions. Mail owns their SMTP/IMAP
|
||||
endpoints, encrypted credentials, tests, scope, and policy. Consumers such as
|
||||
Campaign store only a stable profile identifier and resolve the authorized,
|
||||
active profile through `mail.campaign_delivery`; they never copy or override
|
||||
transport settings or credentials in their own JSON.
|
||||
|
||||
The campaign capability returns read-only availability flags and random,
|
||||
persisted Mail-owned transport revisions without decrypting secrets. Effect calls perform authorization,
|
||||
revision comparison, credential resolution, policy checks, and SMTP/IMAP
|
||||
effects inside Mail. Consumer-visible outcomes are sanitized: provider banners,
|
||||
raw response bytes, hosts, account identities, and credentials are not returned.
|
||||
|
||||
A remaining observability slice, tracked in [govoplan-mail#17](https://git.add-ideas.de/add-ideas/govoplan-mail/issues/17), is a Mail-owned durable outbox and transport-attempt store with
|
||||
restricted diagnostic access, retention controls, and correlation identifiers.
|
||||
Until that exists, Campaign retains only sanitized delivery evidence; raw
|
||||
provider diagnostics must not be copied into consumer records.
|
||||
|
||||
SMTP effects decrypt only SMTP credentials; Sent-folder effects decrypt only
|
||||
IMAP credentials. A connection loss after an effect starts is surfaced as an
|
||||
unknown outcome. Campaign does not automatically retry an unknown IMAP append,
|
||||
preventing silent duplicate Sent copies while an operator inspects the mailbox.
|
||||
|
||||
The existing SMTP/IMAP credential-inheritance policy remains part of the Mail
|
||||
policy model for compatibility. Campaign delivery requires effective
|
||||
inheritance: a policy that requires campaign-local credentials now fails
|
||||
closed with guidance to store those credentials on a Mail profile and enable
|
||||
inheritance.
|
||||
|
||||
Deleting a profile deactivates its non-secret tombstone metadata and scrubs
|
||||
both encrypted SMTP and IMAP passwords immediately in the same transaction as
|
||||
a non-secret audit event. Destructive module retirement applies the same rule
|
||||
to every remaining profile before any Mail table is dropped; a scrub or audit
|
||||
failure blocks retirement.
|
||||
|
||||
## Development
|
||||
|
||||
@@ -54,8 +86,9 @@ Frontend package:
|
||||
@govoplan/mail-webui
|
||||
```
|
||||
|
||||
The campaign module consumes `mail.campaign_delivery` for sending,
|
||||
append-to-Sent behavior, profile selection, and policy checks. Mail does not
|
||||
The campaign module consumes `mail.campaign_delivery` for authorized runtime
|
||||
profile resolution, sending, append-to-Sent behavior, profile selection, and
|
||||
policy checks. Mail does not
|
||||
import campaign internals; campaign-scoped policy and owner context are resolved
|
||||
through the core `campaigns.mailPolicyContext` capability when the campaign
|
||||
module is installed.
|
||||
@@ -70,6 +103,8 @@ SMTP/IMAP first, prefer JMAP for modern mailbox sync/search later, and add POP3
|
||||
only for explicit legacy-download requirements.
|
||||
|
||||
Platform RBAC and governance rules are documented in `govoplan-core/docs/`.
|
||||
The [Mail handbook](docs/MAIL_HANDBOOK.md) provides the adaptive user,
|
||||
governance, technical, security, and operations perspectives.
|
||||
|
||||
## Release packaging
|
||||
|
||||
|
||||
Reference in New Issue
Block a user