Decision Gate Docs

Avaluació de portes determinista, reproduïble amb decisions auditable.

Asset Core docs

Prova de confiança de la porta de decisió + Arquitectura d’ancoratge

Audience: Engineers implementing or reviewing evidence trust enforcement, Audiència: Enginyers que implementen o revisen l’aplicació de la confiança en les proves, la validació de signatures i el comportament de la política d’ancoratge.


Taula de continguts

  1. Visió Executiva
  2. Model d’Evidència
  3. Línies de confiança i requisits
  4. Política de confiança del proveïdor (Signatures)
  5. Política de Divulgació d’Evidències
  6. Configuració de la Política d’Ancoratge
  7. Validació d’ancoratge al pla de control
  8. Verificació de l’Ancoratge de Runpack
  9. Evidència Afirmada (Precomprovació)
  10. File per Fitxer Referència Creuada

Executive Overview

La Decision Gate separa trust (evidència verificada vs afirmada) de integrity (ancoratges i signatures). Les vies de confiança controlen si l’evidència és elegible per a l’evaluació de la porta, mentre que les polítiques d’ancoratge i les signatures proporcionen enllaços verificables a sistemes externs. L’aplicació es produeix en dos llocs:

  • Control plane runtime: applies trust requirements and validates anchors Temps d’execució del pla de control: aplica requisits de confiança i valida ancoratges quan està configurat.
  • Verificador de Runpack: reprodueix les comprovacions de política d’ancoratge fora de línia.

La divulgació d’evidències es controla per separat a la capa d’eines. F:crates/decision-gate-core/src/core/evidence.rs L97-L257 F:crates/decision-gate-core/src/runtime/engine.rs L511-L618 F:crates/decision-gate-core/src/runtime/engine.rs L983-L1018 F:crates/decision-gate-core/src/runtime/runpack.rs L519-L567 F:crates/decision-gate-mcp/src/tools/router.rs L2294-L2334

La selecció de perfils de temps d’execució tipats ara admet una costura de resolutor delimitada (TypedProfileResolver) clauada per (tenant_id, namespace_id, provider_id). Això canvia els límits de cerca de perfils de temps d’execució però no altera la semàntica de validació de la confiança, la signatura o l’ancoratge. El temps d’execució REST també exposa una costura d’evaluador de polítiques (RestPolicyEvaluator) que pot denegar l’egress/pla d’autenticació abans de les trucades de xarxa mentre preserva els formats d’ancoratge existents.


Model d’Evidència

Els tipus d’evidència bàsica defineixen les càrregues útils canòniques i la metadada d’integritat:

  • EvidenceResult carries a value, trust lane, hash, anchor, and optional EvidenceResult porta un valor, un canal de confiança, un hash, un ancoratge i una signatura opcional.
  • EvidenceAnchor conté un tipus d’ancora i un valor d’ancora codificat en JSON.
  • EvidenceAnchorPolicy mapeja proveïdors als tipus d’ancora i camps requerits.

F:crates/decision-gate-core/src/core/evidence.rs L175-L257


Trust Lanes i Requisits

Les vies de confiança són una reixeta de dos nivells:

  • Verificat (per defecte) per a proves proporcionades pel proveïdor.
  • Afirmat per a proves subministrades pel client.

TrustRequirement especifica el mínim acceptable per a la via i s’aplica per condició i porta. Si l’evidència no compleix el requisit, es converteix en un resultat Unknown amb un error de trust_lane.

F:crates/decision-gate-core/src/core/evidence.rs L97-L141 F:crates/decision-gate-core/src/runtime/engine.rs L730-L746 F:crates/decision-gate-core/src/runtime/engine.rs L1573-L1593

La configuració del pla de control exposa:

  • requisit_de_confiança_global
  • sobrescriptures per proveïdor (a través de provider_trust_overrides)

F:crates/decision-gate-core/src/runtime/engine.rs L111-L145


Política de confiança del proveïdor (Signatures)

La federació d’evidències MCP aplica la política de confiança del proveïdor abans que els resultats arribin a l’evaluació del pla de control:

  • TrustPolicy::Audit accepta resultats sense signar.
  • TrustPolicy::RequireSignature requires EvidenceSignature and validates TrustPolicy::RequireSignature requereix EvidenceSignature i valida signatures ed25519 utilitzant claus públiques configurades.

Avaluació de polítiques:

  • Les signatures mancants, els esquemes no suportats o les claus no autoritzades són rebutjades.
  • Si falta el hash de l’evidència, es calcula a partir de la càrrega canònica.
  • Si el hash de l’evidència està present, ha de coincidir amb el hash de la càrrega útil canònica.

F:crates/decision-gate-mcp/src/evidence.rs L122-L210 F:crates/decision-gate-mcp/src/evidence.rs L628-L701


Política de Divulgació d’Evidències

La divulgació d’evidències s’aplica en el moment de evidence_query:

  • evidence.allow_raw_values controla la divulgació global de valors en brut.
  • evidence.require_provider_opt_in requereix addicionalment l’opt-in del proveïdor.
  • Els proveïdors opten per participar a través de ProviderConfig.allow_raw.

Si no s’accepten valors en brut, la resposta de l’eina redacta value i content_type, però conserva els hashes i els ancoratges. F:crates/decision-gate-config/src/config.rs L1226-L1234 F:crates/decision-gate-mcp/src/tools/router.rs L2294-L2334 F:crates/decision-gate-mcp/src/evidence.rs L138-L196


Configuració de la Política d’Ancoratge

La configuració de la política d’ancoratge s’expressa en la configuració MCP com anchors.providers[{provider_id, anchor_type, required_fields}]. La configuració es valida i es converteix en la EvidenceAnchorPolicy en temps d’execució utilitzada pel pla de control i el verificador de runpack. Els ids de proveïdor han de ser únics i retallats per evitar l’aplicació ambigua de l’ancoratge. F:crates/decision-gate-config/src/config.rs L1378-L1466


Validació d’Ancoratge al Pla de Control

Quan es configura un requisit d’ancoratge per a un proveïdor:

  • Els resultats de l’evidència han d’incloure evidence_anchor.
  • anchor_type ha de coincidir amb el requisit.
  • anchor_value ha de ser un objecte JSON canònic amb els camps escalar requerits.
  • Gate evaluation evidence records are stored in canonical condition order to Els registres d’evidència d’evaluació de portes es guarden en ordre de condició canònica per mantenir els artefactes de runpack deterministes a través de les execucions.

Per al proveïdor json integrat, els ancoratges utilitzen file_path_rooted amb els camps requerits root_id i path. El valor de path es normalitza a un camí relatiu d’estil POSIX sota l’arrel configurada per mantenir els hashes de runpack estables a través de plataformes.

Per al proveïdor rest integrat, els ancoratges utilitzen rest_request amb valors d’ancoratge JSON canònics. Les comprovacions json_path inclouen el context de la sol·licitud més un hash del cos de resposta a la metadada de l’ancoratge, mentre que les comprovacions header inclouen el context de la sol·licitud/comprovació sense un hash del cos. En ambdues comprovacions, evidence_hash es deriva del valor d’evidència retornat (o s’omet perquè el pla de control el calculi), no del cos de resposta brut.

Per als proveïdors tipats (type = "typed"), els valors d’ancoratge són impulsats pel perfil i emeten el tipus d’ancoratge tipat configurat (per defecte typed_request) amb metadades JSON canòniques que inclouen la identitat del proveïdor/comprovació/operació, l’URL de la sol·licitud, l’estat i el resum del perfil d’execució. Els proveïdors tipats romanen en la via de confiança verificada i estan subjectes al mateix camí de validació de la política d’ancoratge en l’execució central i la verificació de runpack. El vincle de sol·licitud tipada es neteja abans de l’execució sortint (rebuig d’encapçalaments reservats/propietat d’autenticació i substitució de camins codificats en percentatge), prevenint l’ambigüitat de la forma de la sol·licitud que pugui contaminar les metadades d’ancoratge o les comparacions d’integritat a la baixa.

Els ancoratges no vàlids resulten en un error de proveïdor anchor_invalid i el resultat de l’evidència es converteix en un resultat verificat buit per a l’avaluació. F:crates/decision-gate-core/src/runtime/engine.rs L730-L755 F:crates/decision-gate-core/src/runtime/engine.rs L983-L1018


Verificació de l’Ancoratge de Runpack

La verificació de runpack reprodueix les comprovacions de política d’ancoratge fora de línia:

  • Els registres de l’especificació de l’escenari i d’evaluació de la porta es carreguen a partir dels artefactes de runpack.
  • El mapeig de condicions a proveïdors es deriva de l’especificació.
  • Els ancoratges d’evidència en els registres d’evaluació de portes es validen contra la política.

Els errors es recullen i es reporten en el informe de verificació. F:crates/decision-gate-core/src/runtime/runpack.rs L519-L567 F:crates/decision-gate-core/src/runtime/runpack.rs L579-L612


Evidència Afirmada (Precomprovació)

Precheck utilitza evidència assertada sense contactar amb els proveïdors:

  • Els valors de càrrega útil estan embolicats com a EvidenceResult amb el carril Asserted.
  • Control plane applies trust requirements per condition/gate, which can force El pla de control aplica requisits de confiança per condició/portella, que poden forçar l’evidència afirmada a Unknown depenent de la configuració.

F:crates/decision-gate-mcp/src/tools/router.rs L2663-L2707 F:crates/decision-gate-core/src/runtime/engine.rs L511-L618


File per Fitxer Referència Creuada

ÀreaFitxerNotes
Model d’evidència + vies de confiançacrates/decision-gate-core/src/core/evidence.rsTipus canònics per a vies de confiança, ancoratges, polítiques.
Aplicació de confiança + validació d’ancoratgecrates/decision-gate-core/src/runtime/engine.rsAplica requisits de confiança i valida ancoratges.
Verificació d’ancoratge de Runpackcrates/decision-gate-core/src/runtime/runpack.rsValidació offline contra la política d’ancoratge.
Política de signatura del proveïdorcrates/decision-gate-mcp/src/evidence.rsAnàlisi de TrustPolicy + aplicació de signatura.
Ancoratges de proveïdor tipatscrates/decision-gate-providers/src/typed.rsEmissió d’ancoratge de runtime tipat i vinculació de resum de perfil.
Política de divulgació d’evidènciescrates/decision-gate-mcp/src/tools/router.rsRedacció d’evidències en brut per a evidence_query.
Superfície de configuraciócrates/decision-gate-config/src/config.rsconfiguració evidence.* i anchors.*.