oto_admin_access_shadow
[platform admin] L7 shadow window (ADR 0053): during the double-read window the grant CHAIN computes alongside while the legacy cascade decides; every pair of verdicts is compared and filed under a closed set of classes. op=read (days, default 7; optional connector, classe) → one row per day x connector x org x class, with the first sample of the day (sub is hashed, never in clear), plus a verdict block. These divergence classes are EXPECTED and named by the ADR — elargissement_equipe (the chain reads every team of the caller, the cascade only the ACTIVE one; counted per org because it changes served behaviour), free_tier_hors_modele (an open platform key has no grantee in 0053 — the everyone-edge exists now (grants_chain.EVERYONE, the platform scope), so this counts what is LEFT to migrate and reaches zero once the seeding command has run), partage_hors_modele (its sibling: a platform key CLOSED on an allowlist that no edge accounts for — the NOMINAL edges are missing, L5 only seeded the switched connectors), perso_cross_org (the cascade follows a personal key across orgs). Only inconnu must stay at zero: verdict.porte_ouverte is true when there is no unknown divergence AND the denominator is non-zero, for the origin it names; verdict.origine_inconnue counts observations left out because they predate the origin column. Read-only — the counter is fed by the resolution path and switched off by the OTO_L7_SHADOW env, never from here.
Tool call template
This tool declares no required parameters. Add optional parameters from the input schema as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {},
"name": "oto_admin_access_shadow"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| op | No | read | |
| _org | No | ||
| days | No | ||
| classe | No | ||
| origine | No | prod | |
| connector | No |