Integració del Proveïdor de Decision Gate + Arquitectura del Registre de Capacitats
Audience: Engineers implementing provider integration or capability Audiència: Enginyers que implementen la integració de proveïdors o la validació de capacitats per a consultes de verificació, condicions i evidències.
Taula de continguts
- Visió Executiva
- Configuració del Proveïdor
- Registre de Capacitats
- Contracts de Proveïdors Externs
- Federació de Proveïdors d’Evidències
- Tool-Level Enforcement
- File per Fitxer Referència Creuada
Executive Overview
La Decision Gate admet dos tipus de proveïdors:
- Proveïdors integrats (compilats en el binari)
- Proveïdors MCP externs (transport stdio o HTTP)
Els contractes de capacitat del proveïdor són l’esquema autoritatiu per als paràmetres de comprovació, resultats i comparadors permesos. El registre de capacitats valida les especificacions d’escenaris i les consultes d’evidència abans de l’avaluació. La federació d’evidències dirigeix les consultes als proveïdors i aplica les polítiques de confiança. F:crates/decision-gate-config/src/config.rs L1883-L1990 F:crates/decision-gate-mcp/src/capabilities.rs L229-L379 F:crates/decision-gate-mcp/src/evidence.rs L138-L210
Configuració del proveïdor
La configuració del proveïdor es defineix en ProviderConfig:
tipus:builtinomcpcommand/url: selecció de transport per a proveïdors MCPcapabilities_path: ruta JSON del contracte (requerida per a proveïdors MCP)auth.bearer_token: autenticació del proveïdor opcionaltrust: substitució de confiança per proveïdorallow_raw: opt-in per a la divulgació d’evidències en bruttimeouts: temps d’espera per a la connexió i les sol·licituds HTTP
Els controls de descoberta es defineixen a provider_discovery:
allowlist/denylist: restringir quins contractes de proveïdor es divulguenmax_response_bytes: mida màxima de la resposta de descoberta
La validació imposa:
- Els proveïdors de MCP han de especificar
commandourlicapabilities_path. allow_insecure_httpés necessari per a URLshttp://.- Els noms dels proveïdors són únics i es retallen.
- Els identificadors integrats (
time,env,json,http) estan reservats; els proveïdors de MCP no poden utilitzar-los. - Built-ins must use a reserved identifier and reject MCP-only fields (
command,url, Els identificadors integrats han d’utilitzar un identificador reservat i rebutjar els camps només MCP (command,url,allow_insecure_http,auth,capabilities_path).
F:crates/decision-gate-config/src/config.rs L1883-L1990
Registre de Capacitats
El registre de capacitats carrega contractes de proveïdors i compila esquemes JSON per a comprovar paràmetres i resultats. Valida:
- Proveïdor i comprovar existència
- Presència de paràmetres requerits
- Conformitat amb l’esquema de paràmetres
- Conformitat amb l’esquema de valor esperat
- Llistes blanques de comparadors
- Anchor types declared by provider contracts (e.g.,
file_path_rootedfor the Tipus d’ancoratge declarats pels contractes del proveïdor (per exemple,file_path_rootedper al proveïdorjsonintegrat)
F:crates/decision-gate-mcp/src/capabilities.rs L313-L379 F:crates/decision-gate-mcp/src/capabilities.rs L598-L636
Les consultes del registre de capacitats són utilitzades tant per les eines de definició d’escenaris com per les eines de consulta d’evidències. F:crates/decision-gate-mcp/src/tools.rs L2029-L2050 F:crates/decision-gate-mcp/src/tools.rs L979-L1017
Contracts de Proveïdors Externs
Els proveïdors externs han de subministrar un fitxer JSON de contracte que:
- Coincideix amb l’identificador del proveïdor configurat
- Declara
transport = "mcp" - Define comprovacions amb llistes de comparadors permeses
Els contractes tenen un límit de mida i són validats pel camí; els contractes invàlids fallen tancats. F:crates/decision-gate-mcp/src/capabilities.rs L533-L591
Federació de Proveïdors d’Evidències
La federació d’evidències combina proveïdors integrats i proveïdors MCP:
- Els integrats es registren a través del registre de proveïdors.
- Els proveïdors MCP es creen amb transport stdio o HTTP.
- El registre de proveïdors rebutja registres duplicats per evitar sobrescriptures silencioses.
- Stdio provider processes are terminated on drop to avoid orphaned provider Els processos del proveïdor Stdio es finalitzen en caiguda per evitar temps d’execució orfes del proveïdor durant l’apagat o la desinstal·lació de proves.
- Les polítiques del proveïdor (trust + allow_raw) s’apliquen per proveïdor.
- Evidence results may include structured error metadata (
code,message, Els resultats d’evidència poden incloure metadades d’error estructurat (code,message,details) per suportar bucles de recuperació deterministes. - HTTP evidence providers enforce timeouts, disallow redirects, apply response Els proveïdors d’evidència HTTP imposen temps d’espera, no permeten redireccions, apliquen límits de mida de resposta i fallen tancats en cossos truncats (desajustament de Content-Length).
F:crates/decision-gate-mcp/src/evidence.rs L138-L210 F:crates/decision-gate-mcp/src/evidence.rs L248-L266 F:crates/decision-gate-providers/src/http.rs L82-L239
La política de confiança (verificació de signatures) s’executa per resposta del proveïdor. F:crates/decision-gate-mcp/src/evidence.rs L636-L677
Tool-Level Enforcement
El comportament de l’eina imposa la política de capacitat i divulgació:
scenario_definevalida l’especificació contra les capacitats abans de registrar.evidence_queryvalida les consultes i aplica la política de redacció d’evidències en brut.evidence_queryexecution is offloaded to a blocking task to isolateevidence_querys’executa en una tasca bloquejant per aïllar proveïdors bloquejants (HTTP) del temps d’execució asíncron de MCP.provider_contract_get/provider_check_schema_getapply disclosure policy andprovider_contract_get/provider_check_schema_gets’apliquen a la política de divulgació i retornen contractes de proveïdor canònics o esquemes de comprovació.- Comparator allow-lists are enforced from provider contracts;
json.pathLes llistes blanques de comparadors s’apliquen a partir dels contractes dels proveïdors;json.pathexposa tota la superfície del comparador per a proves JSON deterministes.
F:crates/decision-gate-mcp/src/tools.rs L2029-L2050 F:crates/decision-gate-mcp/src/tools.rs L979-L1037 F:crates/decision-gate-mcp/src/tools.rs L1110-L1150 F:crates/decision-gate-mcp/src/tools.rs L2294-L2334
File per Fitxer Referència Creuada
| Àrea | Fitxer | Notes |
|---|---|---|
| Configuració del proveïdor + validació | crates/decision-gate-config/src/config.rs | Tipus de proveïdor, transport, ruta del contracte, temps d’espera, descoberta permetre/denegar. |
| Registre de capacitats | crates/decision-gate-mcp/src/capabilities.rs | Càrrega de contractes, compilació d’esquemes, validació. |
| Federació d’evidències | crates/decision-gate-mcp/src/evidence.rs | Registre de proveïdors + aplicació de confiança. |
| Integració d’eines | crates/decision-gate-mcp/src/tools.rs | Validació de especificacions/consultes i política de divulgació. |