From 464524da27deaaec6059747df6df6784b2f799c2 Mon Sep 17 00:00:00 2001 From: Andy Dixon Date: Thu, 26 Feb 2026 13:16:32 +0000 Subject: [PATCH] docs: note serialized decision behavior for approval actions Clarify that approve/reject/cancel decisions for a single approval request should be treated as serialized and not submitted in parallel. --- README.md | 1 + docs/INTEGRATION_GUIDE.md | 1 + 2 files changed, 2 insertions(+) diff --git a/README.md b/README.md index d4f33ae..e11fcea 100644 --- a/README.md +++ b/README.md @@ -139,6 +139,7 @@ This wrapper now delegates to `BlackWall\Auth\AuthClient`. - Treat generated enrollment URLs as secrets and keep them out of URL query strings and request logs. - For reverse-proxy deployments, harden trusted proxy/IP forwarding configuration to prevent spoofed client IP headers. - Keep client-side admin mutation retries idempotent; approval workflows can be lock-serialized and should not be assumed to execute twice. +- Do not submit parallel approve/reject/cancel decisions for the same approval request ID. - Never place client secrets, refresh tokens, or access tokens in URL query strings. - For OIDC providers, include a per-request `nonce` in authorisation requests. - For direct Cryptbin API usage, send `key_b64url` on unwrap calls; provider rejects key-mismatch unwrap attempts with `403 Forbidden`. diff --git a/docs/INTEGRATION_GUIDE.md b/docs/INTEGRATION_GUIDE.md index 5278a93..2e9200b 100644 --- a/docs/INTEGRATION_GUIDE.md +++ b/docs/INTEGRATION_GUIDE.md @@ -158,6 +158,7 @@ Provider user/project assignment views may exclude disabled projects even if his - Treat enrollment URLs as sensitive bearer material: do not place them in redirect query parameters, logs, or analytics tags; keep them in one-time server-side flash/session state. - If your deployment runs behind reverse proxies, ensure trusted-proxy configuration is strict so spoofed forwarding headers cannot bypass IP-based abuse controls. - For approval-driven admin mutations, assume provider-side execution is serialized per approval item; client retries should still be idempotent and bounded. +- This serialization applies across approval actions (approve/reject/cancel), so clients should avoid parallel decision submissions for the same request ID. - Configure OAuth client redirect URIs as HTTPS in production; reserve HTTP for localhost loopback testing only. - Assume provider rate limits are enforced per source identity (for example IP) and shared across related auth endpoints. - Treat report/export-style provider endpoints as high-cost and expect stricter rate limits.