Documentos de Decision Gate

Evaluación de puertas determinista, reproducible con decisiones auditables.

Documentación de Asset Core

Integración del Proveedor de Puertas de Decisión + Arquitectura del Registro de Capacidades

Audience: Engineers implementing provider integration or capability Audiencia: Ingenieros que implementan la integración de proveedores o la validación de capacidades para consultas de verificaciones, condiciones y evidencias.


Tabla de Contenidos

  1. Resumen Ejecutivo
  2. Configuración del proveedor
  3. Registro de Capacidades
  4. Contratos de Proveedores Externos
  5. Federación de Proveedores de Evidencia
  6. Cumplimiento a Nivel de Herramienta
  7. Referencia Cruzada Archivo por Archivo

Resumen Ejecutivo

Decision Gate admite dos tipos de proveedores:

  • Proveedores integrados (compilados en el binario)
  • Proveedores MCP externos (transporte stdio o HTTP)

Los contratos de capacidad del proveedor son el esquema autoritativo para los parámetros de verificación, resultados y comparadores permitidos. El registro de capacidades valida las especificaciones de escenario y las consultas de evidencia antes de la evaluación. La federación de evidencia dirige las consultas a los proveedores y aplica políticas de confianza. 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ón del Proveedor

La configuración del proveedor se define en ProviderConfig:

  • tipo: builtin o mcp
  • comando / url: selección de transporte para proveedores MCP
  • capabilities_path: ruta JSON del contrato (requerida para proveedores MCP)
  • auth.bearer_token: autenticación del proveedor opcional
  • trust: anulación de confianza por proveedor
  • allow_raw: opción para la divulgación de evidencia en bruto
  • timeouts: tiempos de espera para la conexión y la solicitud HTTP

Los controles de descubrimiento se definen en provider_discovery:

  • allowlist / denylist: restringir qué contratos de proveedores se divulgan
  • max_response_bytes: limitar el tamaño de la respuesta de descubrimiento

La validación impone:

  • Los proveedores de MCP deben especificar command o url y capabilities_path.
  • allow_insecure_http es necesario para URLs http://.
  • Los nombres de los proveedores son únicos y están recortados.
  • Los identificadores incorporados (time, env, json, http) están reservados; los proveedores de MCP no pueden utilizarlos.
  • Built-ins must use a reserved identifier and reject MCP-only fields (command, url, Los identificadores incorporados deben usar un identificador reservado y rechazar los campos solo de MCP (command, url, allow_insecure_http, auth, capabilities_path).

F:crates/decision-gate-config/src/config.rs L1883-L1990


Registro de Capacidades

El registro de capacidades carga contratos de proveedores y compila esquemas JSON para verificar parámetros y resultados. Valida:

  • Proveedor y verificar existencia
  • Presencia de parámetros requeridos
  • Conformidad con el esquema de parámetros
  • Conformidad con el esquema de valor esperado
  • Listas de permitidos del comparador
  • Anchor types declared by provider contracts (e.g., file_path_rooted for the Tipos de anclaje declarados por contratos de proveedor (por ejemplo, file_path_rooted para el proveedor json incorporado)

F:crates/decision-gate-mcp/src/capabilities.rs L313-L379 F:crates/decision-gate-mcp/src/capabilities.rs L598-L636

Las consultas del registro de capacidades son utilizadas tanto por la definición de escenarios como por las herramientas de consulta de evidencia. F:crates/decision-gate-mcp/src/tools.rs L2029-L2050 F:crates/decision-gate-mcp/src/tools.rs L979-L1017


Contratos de Proveedores Externos

Los proveedores externos deben suministrar un archivo JSON de contrato que:

  • Coincide con el id del proveedor configurado
  • Declara transport = "mcp"
  • Define comprobaciones con listas de comparadores permitidos

Los contratos tienen un tamaño limitado y son validados por ruta; los contratos inválidos fallan cerrados. F:crates/decision-gate-mcp/src/capabilities.rs L533-L591


Federación de Proveedores de Evidencia

La federación de evidencia combina proveedores integrados y proveedores MCP:

  • Los componentes integrados se registran a través del registro de proveedores.
  • Los proveedores de MCP se instancian con transporte stdio o HTTP.
  • El registro de proveedores rechaza registros duplicados para prevenir sobrescrituras silenciosas.
  • Stdio provider processes are terminated on drop to avoid orphaned provider Los procesos del proveedor de Stdio se terminan al eliminarse para evitar tiempos de ejecución de proveedor huérfanos durante el apagado o la desactivación de pruebas.
  • Las políticas del proveedor (trust + allow_raw) se aplican por proveedor.
  • Evidence results may include structured error metadata (code, message, Los resultados de evidencia pueden incluir metadatos de error estructurados (code, message, details) para apoyar bucles de recuperación determinísticos.
  • HTTP evidence providers enforce timeouts, disallow redirects, apply response Los proveedores de evidencia HTTP imponen tiempos de espera, desautorizan redirecciones, aplican límites de tamaño de respuesta y fallan en cerrado en cuerpos truncados (desajuste 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 aplicación de la política de confianza (verificación de firmas) se ejecuta por respuesta del proveedor. F:crates/decision-gate-mcp/src/evidence.rs L636-L677


Cumplimiento a Nivel de Herramienta

El comportamiento de la herramienta impone la política de capacidad y divulgación:

  • scenario_define valida la especificación contra las capacidades antes de registrarse.
  • evidence_query valida consultas y aplica la política de redacción de evidencia en bruto.
  • evidence_query execution is offloaded to a blocking task to isolate evidence_query se ejecuta en una tarea bloqueante para aislar a los proveedores bloqueantes (HTTP) del tiempo de ejecución asíncrono de MCP.
  • provider_contract_get / provider_check_schema_get apply disclosure policy and provider_contract_get / provider_check_schema_get aplican la política de divulgación y devuelven contratos de proveedor canónicos o esquemas de verificación.
  • Comparator allow-lists are enforced from provider contracts; json.path Las listas de permitidos del comparador se aplican a partir de los contratos de proveedor; json.path expone toda la superficie del comparador para evidencia JSON determinista.

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


Referencia Cruzada Archivo por Archivo

ÁreaArchivoNotas
Configuración y validación del proveedorcrates/decision-gate-config/src/config.rsTipo de proveedor, transporte, ruta del contrato, tiempos de espera, descubrimiento permitir/negar.
Registro de capacidadescrates/decision-gate-mcp/src/capabilities.rsCarga de contratos, compilación de esquemas, validación.
Federación de evidenciacrates/decision-gate-mcp/src/evidence.rsRegistro de proveedores + aplicación de confianza.
Integración de herramientascrates/decision-gate-mcp/src/tools.rsValidación de especificaciones/consultas y política de divulgación.