Azure DevOps Service Hook Reviewer — R10 Local Candidate (MC #105993)
Azure DevOps Service Hook Reviewer — R10 Local Candidate (MC #105993)
Status: Accepted local exact-SHA candidate only. Not deployed. Live rollout remains blocked.
Candidate
- Commit:
ba1714499a5be29d8112fea16e967f15144df821 - Tree:
5b5ea20fa17623ba1f9cabf34d145711863aa578 - Worktree:
/private/tmp/alai/flowforge-105961-stage1-r5 - Accepted base: R4
437e64fd54574e6ff7e6a2665d081c3e6125d080
R10 adds a separately deployable, dedicated Key Vault prerequisite and preserves the main private-endpoint/DNS integration candidate. It also provides an approval-gated helper for exactly three fixed secret child resources through Azure Resource Manager control-plane APIs. No secret value is stored in source, command arguments, environment variables, files, deployment parameters, logs, or evidence.
R10 security remediation
Every ARM HTTP response path uses a centralized 64 KiB reader. Content-Length is accepted only when, after trimming HTTP SP/HTAB optional whitespace, it is non-empty ASCII decimal digits 0–9. Plus signs, underscores, Unicode digits, CR/LF, embedded whitespace, empty values, comma/duplicate forms, negatives, and over-limit lengths fail closed before reading. Missing and lying headers remain bounded by read(MAX+1).
Transport is direct and fail closed:
- no ambient proxies (
ProxyHandler({})) - no redirects
- HTTPS only to exact
management.azure.comon the default/443 port - standard platform certificate and hostname verification
- bounded response reads and sanitized failures
Preserved controls
- account, token, and locked-vault verification before confirmation or secret prompts
- hidden in-memory secret collection and local input validation
- minimal nonsecret Azure CLI environment
- exact secret-name and child-resource-ID metadata binding
- dedicated RBAC-enabled, purge-protected, public-network-disabled Key Vault
- private endpoint and
privatelink.vaultcore.azure.netDNS integration - closed live gate by default
- immutable image, managed-identity
AcrPull, restricted Service Bus, private Table Storage, NAT egress - accepted R4/R11 runtime/provider bytes unchanged
Validation and acceptance
- Python tests: 18/18
- Node tests: 157/157
- lint, local IaC validation, both Bicep compiles, offline production audit, diff check, Gitleaks, and byte comparison: PASS
- Proveo exact-SHA review: PASS
- Securion exact-SHA audit: PASS
- Company Mesh P2P: PASS,
mesh-msg-d904645a-7404-42dd-8edf-728769280ffe
Canonical acceptance evidence:
/Users/makinja/system/evidence/105993/R10-LOCAL-CANDIDATE-ACCEPTANCE.md
Operational gate
This page does not authorize Azure what-if, prerequisite deployment, role assignment, helper --execute, secret mutation, image push, main deployment, ingress binding, Service Hook creation, provider invocation, PR comments, repository push/merge, or Bilko v1 retirement.
If separately approved, the next action is only the dedicated Key Vault prerequisite what-if. Every later action remains a separate gate. Azure DevOps minimum-permission identity and reviewed ingress snapshot/drift semantics remain unresolved rollout prerequisites.