generated: '2026-10-18' method: searched generator: extract-docs-artifacts.py (local) source: https://plainrouter.com/security.md sources: - https://plainrouter.com/security.md - https://plainrouter.com/privacy.md - https://dev.plainrouter.com/security - https://dev.plainrouter.com/privacy standards: - id: gdpr conforms: true evidence: For measurement data collected through a customer's installation, the customer determines the purposes and instructions. Wudaku Oy acts as a processor under Article 28 of the GDPR, processes that data on the customer's instructions, and is governed by the Data Processing Agreement. - id: gdpr conforms: true evidence: Where processing by Cloudflare or Laravel services involves a transfer to the United States, we rely on the EU-U.S. Data Privacy Framework while the recipient's certification remains valid. - id: openapi-3.1 conforms: true evidence: the document declares 3.1.0 - id: oauth2 conforms: true evidence: 'securitySchemes: agentContextKey (http), agentContextOAuth (oauth2), creativeWriter (http), planReader (http), planWriter (http), ruleReader (http), ruleWriter (http), sandboxCredential (http), testReader (http), testWriter (http), workspaceActionKey (http), workspaceInventoryKey (http), workspaceSecret (http)' - id: rfc9457 conforms: false evidence: no response declares application/problem+json - id: idempotency conforms: true evidence: idempotency_key declared on 6 of 41 mutating operations (partial) - id: pagination conforms: true evidence: list operations take cursor, limit, page, per_page - id: ratelimit-headers conforms: true evidence: responses declare Retry-After docs: https://plainrouter.com/security.md note: 8 extracted row(s) were dropped because their quote was not on the page.