Problem/Motivation

Webhook delivery is the only intake mechanism. A site installed after prior suppressions, or recovering from an extended outage, has no supported way to compare its local decisions with provider state.

Evidence and scope

Reviewed 1.0.0-alpha1, source commit 02fd9d36af5237e712cecb7155d79725f7824880. Location: README.md.

Resilience opportunity, not proof that Postmark retries are insufficient in a particular deployment. Reference: https://postmarkapp.com/developer/api/suppressions-api .

Proposed resolution

Provide an optional read-only reconciliation command/integration with paginated checkpointing, dry-run differences and idempotent local imports. Keep the core receiver usable without API credentials. Store any API token outside exported configuration, and never reactivate provider addresses automatically.

Acceptance criteria

Cover rate limits, interrupted resume, source scope, stale results and privacy-safe reports. Review differences before applying changes; reconcile against the same state service used by live events.

Comments

jmcerda created an issue. See original summary.

jmcerda’s picture

Assigned: Unassigned » jmcerda
Status: Active » Needs review

The optional reconciliation module is implemented and tested. A Drush preview verifies the server and stream, retrieves a bounded provider suppression dump using GET requests only, and records a digest for explicit local application. Apply imports at most 250 entries per checkpoint through the shared suppression store. Changed dumps, expired plans, rate limits and interrupted work cannot silently advance the checkpoint. Tokens stay in settings, and reports omit recipient addresses. No provider write or automatic reactivation is performed.

The provider endpoint does not expose offset pagination: retrieval uses a date filter with response and row limits; local application is paginated. Oversized dumps require a separately reviewed migration. Tests cover 251-row resume, digest changes, source restrictions, 429 responses, transaction rollback and evidence ordering. All six CI jobs pass, and review findings are addressed. Pending integration and release.

  • jmcerda committed f13edef6 on 1.x
    Issue #3621136: Batch preview lookups and match evidence ordering
    

  • jmcerda committed 45fb6e47 on 1.x
    Issue #3621136: Add reviewed read-only provider reconciliation
    
jmcerda’s picture

Status: Needs review » Fixed

Integrated into the 1.x development branch and included in 1.0.0-alpha2. The release tag and branch are mirrored to Drupalcode. The six-job Drupal 10/11 and Mailer Plus integration matrix passes. See the release notes for database updates and retained-history limitations. This records module publication; site deployment is a separate operation.

Now that this issue is closed, review the contribution record.

As a contributor, attribute any organization that helped you, or if you volunteered your own time.

Maintainers, credit people who helped resolve this issue.

Status: Fixed » Closed (fixed)

Automatically closed - issue fixed for 2 weeks with no activity.