Skip to content

2.18.0 — agent read redaction

Choose a tag to compare

@BenKalsky BenKalsky released this 17 Sep 05:56
f3eeb21

Known webhook endpoints no longer leave the site in a REST response that an AI agent reads. Aura's own page snapshots still get the real values.

What ships

  • Read redaction. In responses served to agents, Make, Zapier, Slack (including GovSlack), Discord, IFTTT and Telegram hook URLs are replaced with aura-redacted:v1:<kind>, with or without https://. So are Elementor Pro form webhooks fields on any host. Agents means Aura's gateway tools, an MCP client using an Application Password, or any logged-in non-browser caller. The replacement also covers _elementor_data, _elementor_page_settings, MCP content[].text and snapshot_get payloads. A snapshot payload that cannot be read safely comes back as payload: null, payload_redacted: true. People in wp-admin, public visitors and Aura's own system calls see the real values.
  • Placeholder writes are refused. An agent write that carries a redacted placeholder in any parameter source is refused with 409 aura_redacted_placeholder. Leave that field out and the stored value is kept.
  • Unredacted reads for Aura. A signed X-Aura-Unredacted-Grant header on an MCP tools/call or gateway call returns the real values. An invalid grant gets 403 aura_unredacted_grant_invalid. Aura (Digitizers/Aura#564) sends it for its pre-change page capture.
  • Reporting. audit_rules now reports redacted_24h, placeholder_refused_24h, and the read_redaction and placeholder_guard points. /status now reports redaction: { v: 1 }.

Verification

  • PHPUnit: 2733 tests pass. Aura side: 4996 tests, plus an end-to-end grant test that uses a real Ed25519 key and a copy of the PHP verifier.
  • Staging (WP Engine), REST served in-process through core:
    • Agent read: returns placeholders in content and in _elementor_data, and no secret in the body.
    • Public read: returns the real values.
    • Placeholder write: refused with 409 aura_redacted_placeholder, and the stored value is unchanged.
    • Write without the field: accepted, and the stored secrets are kept.
    • Reporting: the counters moved, and /status reports redaction: {v: 1}.

Release order

The Aura side (Digitizers/Aura#564) was merged and deployed before this release.

Implementation: #111. Design: Digitizers/Aura#419.