polyc-query-credential 2026.9.6

Credential verification and query scope derivation, shared by the control plane's forensics authorization funnel and the standalone Query plane, with no DataFusion, Arrow, or engine dependency.
docs.rs failed to build polyc-query-credential-2026.9.6
Please check the build logs for more information.
See Builds for ideas on how to fix a failed build, or Metadata for how to configure docs.rs builds.
If you believe this is docs.rs' fault, open an issue.

The credential and scoping core, shared by polyc-control-plane's forensics authorization funnel and the standalone Query plane polyc-query-service composes.

Why this crate exists (Epic 1565, chunk 10C-1)

Two entry paths need credential verification and scope derivation: polyc-control-plane's forensics conversation-read funnel, which needs an authorization verdict and never a runnable engine session, and the standalone Query service, which verifies a presented credential at its own boundary. They must not be two implementations — a change that landed on one and missed the other would be an authorization difference reachable from exactly one surface, the hardest kind to notice in review. Before this crate existed, both reached that one mechanism only by depending on polyc-query, which at the time also linked the embedded DataFusion engine — so polyc-control-plane could not stop linking the engine (POLY-359) without losing the credential mechanism too. The embedded engine itself is deleted now (POLY-196); this crate still holds exactly the DataFusion-free half: grant verification, the verified [principal::Principal] types, and the current-participation check a scope derivation performs. Building a runnable query session from a derived scope stays in polyc-query, next to the projected read path it feeds.

The seal

[principal::Scoping], every [principal::Principal] variant's inner type, and [credential::CredentialWitness] have no public constructor, no Default, and no public From in a production build. The only way to obtain one is through [credential::CredentialAuthority]'s own verifying methods. See [principal]'s module doc for the full seal design, including the test-util-gated escape hatches polyc-query's own test fixtures need, and this crate's tests/compile-fail/sealed_construction.rs for the compile-time proof.