Rows the provider reads
Gate classification strings the provider understands:
Any classification may carry a trailing
@<environment> naming the deployment environment it was derived from; the provider repeats it in the evidence.
Exposure facts
kind=exposure rows, one per deployment and environment, say how a service is reachable: object is external, internal or cluster-only, subject is the environment, file the values file that decided it. kind=exposure_host rows list the hostnames. The provider uses the strongest exposure across environments when it classifies a new route in a repository that has no whitelist patterns: external or internal exposure with no route-level authentication in that repository answers yes; cluster-only answers no with the caller count; a repository whose existing routes mostly carry authentication dependencies answers unknown, because the answer depends on whether the new handler declares the dependency, which the gate cannot see.
For a route the store has never seen, the provider collects every via <pattern> from the repository’s route_gate rows and matches the candidate route against them: a trailing * matches any depth, {param} segments match any single segment. Matching an authenticated pattern answers no; matching an open pattern, or matching nothing, answers yes.
Keeping it fresh
The store is only as current as its last build. The provider reports the store file’s age in every answer and adds a warning above--max-age-days. Rebuild on a schedule that matches how fast routes change, typically nightly, and on demand before large refactors.