Documentos de Decision Gate

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

Documentación de Asset Core

Evidencia de Puerta de Decisión + Arquitectura de Anclaje

Audience: Engineers implementing or reviewing evidence trust enforcement, Audiencia: Ingenieros que implementan o revisan la aplicación de confianza en la evidencia, la validación de firmas y el comportamiento de la política de anclaje.


Tabla de Contenidos

  1. Resumen Ejecutivo
  2. Modelo de Evidencia
  3. Líneas de confianza y requisitos
  4. Política de Confianza del Proveedor (Firmas)
  5. Política de Divulgación de Evidencias
  6. Configuración de la Política de Anclaje
  7. Validación de Anclaje en el Plano de Control
  8. Verificación de Anclaje de Runpack
  9. Evidencia Afirmada (Preverificación)
  10. Referencia Cruzada Archivo por Archivo

Resumen Ejecutivo

La puerta de decisión separa confianza (evidencia verificada vs. evidencia afirmada) de integridad (anclas y firmas). Los carriles de confianza controlan si la evidencia es elegible para la evaluación de la puerta, mientras que las políticas de anclaje y las firmas proporcionan enlaces verificables a sistemas externos. La aplicación se lleva a cabo en dos lugares:

  • Control plane runtime: applies trust requirements and validates anchors Tiempo de ejecución del plano de control: aplica requisitos de confianza y valida anclas cuando está configurado.
  • Verificador de Runpack: reproduce las verificaciones de políticas de anclaje fuera de línea.

La divulgación de evidencia se controla por separado en la capa de herramientas. 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.rs L2294-L2334


Modelo de Evidencia

Los tipos de evidencia fundamentales definen las cargas útiles canónicas y los metadatos de integridad:

  • EvidenceResult carries a value, trust lane, hash, anchor, and optional EvidenceResult lleva un valor, un canal de confianza, un hash, un ancla y una firma opcional.
  • EvidenceAnchor contiene un tipo de ancla y un valor de ancla codificado en JSON.
  • EvidenceAnchorPolicy asigna proveedores a los tipos y campos de anclaje requeridos.

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


Líneas de Confianza y Requisitos

Las vías de confianza son una red de dos niveles:

  • Verificado (predeterminado) para evidencia proporcionada por el proveedor.
  • Afirmado para evidencia proporcionada por el cliente.

TrustRequirement especifica el carril mínimo aceptable y se aplica por condición y puerta. Si la evidencia no cumple con el requisito, se convierte en un resultado Unknown con 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ón del plano de control expone:

  • global trust_requirement
  • sobrescrituras por proveedor (a través de provider_trust_overrides)

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


Política de Confianza del Proveedor (Firmas)

La federación de evidencia MCP aplica la política de confianza del proveedor antes de que los resultados lleguen a la evaluación del plano de control:

  • TrustPolicy::Audit acepta resultados no firmados.
  • TrustPolicy::RequireSignature requires EvidenceSignature and validates TrustPolicy::RequireSignature requiere EvidenceSignature y valida las firmas ed25519 utilizando las claves públicas configuradas.

Evaluación de políticas:

  • Se rechazan las firmas faltantes, los esquemas no soportados o las claves no autorizadas.
  • Si falta el hash de evidencia, se calcula a partir de la carga útil canónica.
  • Si el hash de evidencia está presente, debe coincidir con el hash de carga ú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ón de Evidencias

La divulgación de evidencia se aplica en el momento de evidence_query:

  • evidence.allow_raw_values controla la divulgación global de valores en bruto.
  • evidence.require_provider_opt_in requiere además la opción de participación del proveedor.
  • Los proveedores optan por participar a través de ProviderConfig.allow_raw.

Si no se permiten valores en bruto, la respuesta de la herramienta redacta value y content_type, pero retiene hashes y anclajes. F:crates/decision-gate-config/src/config.rs L1226-L1234 F:crates/decision-gate-mcp/src/tools.rs L2294-L2334 F:crates/decision-gate-mcp/src/evidence.rs L138-L196


Configuración de la Política de Anclaje

La configuración de la política de anclaje se expresa en la configuración de MCP como anchors.providers[{provider_id, anchor_type, required_fields}]. La configuración se valida y se convierte en el EvidenceAnchorPolicy en tiempo de ejecución utilizado por el plano de control y el verificador de runpack. Los identificadores de proveedor deben ser únicos y recortados para evitar la aplicación ambigua de anclajes. F:crates/decision-gate-config/src/config.rs L1378-L1466


Validación de Anclaje en el Plano de Control

Cuando se configura un requisito de anclaje para un proveedor:

  • Los resultados de evidencia deben incluir evidence_anchor.
  • anchor_type debe coincidir con el requisito.
  • anchor_value debe ser un objeto JSON canónico con los campos escalares requeridos.
  • Gate evaluation evidence records are stored in canonical condition order to Los registros de evidencia de evaluación de puertas se almacenan en orden de condición canónica para mantener los artefactos de ejecución determinísticos a través de las ejecuciones.

Para el proveedor json incorporado, los anclajes utilizan file_path_rooted con los campos requeridos root_id y path. El valor de path se normaliza a una ruta relativa de estilo POSIX bajo la raíz configurada para mantener estables los hashes de runpack en diferentes plataformas.

Los anclajes inválidos resultan en un error de proveedor anchor_invalid y el resultado de evidencia se convierte en un resultado verificado vacío para su evaluación. F:crates/decision-gate-core/src/runtime/engine.rs L730-L755 F:crates/decision-gate-core/src/runtime/engine.rs L983-L1018


Verificación de Anclaje de Runpack

Verificaciones de ejecución de Runpack realizan comprobaciones de políticas de anclaje fuera de línea:

  • Los registros de evaluación de especificaciones de escenario y de puertas se cargan desde los artefactos de runpack.
  • El mapeo de condición a proveedor se deriva de la especificación.
  • Los anclajes de evidencia en los registros de evaluación de puertas se validan contra la política.

Los errores se recopilan y se informan en el informe de verificación. F:crates/decision-gate-core/src/runtime/runpack.rs L519-L567 F:crates/decision-gate-core/src/runtime/runpack.rs L579-L612


Evidencia Afirmada (Preverificación)

Precheck utiliza evidencia afirmada sin contactar a los proveedores:

  • Los valores de carga útil están envueltos como EvidenceResult con carril Asserted.
  • Control plane applies trust requirements per condition/gate, which can force El plano de control aplica requisitos de confianza por condición/puerta, lo que puede forzar la evidencia afirmada a Desconocido dependiendo de la configuración.

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


Referencia Cruzada Archivo por Archivo

ÁreaArchivoNotas
Modelo de evidencia + carriles de confianzacrates/decision-gate-core/src/core/evidence.rsTipos canónicos para carriles de confianza, anclajes, políticas.
Aplicación de confianza + validación de anclajescrates/decision-gate-core/src/runtime/engine.rsAplica requisitos de confianza y valida anclajes.
Verificación de anclajes de Runpackcrates/decision-gate-core/src/runtime/runpack.rsValidación fuera de línea contra la política de anclajes.
Política de firma del proveedorcrates/decision-gate-mcp/src/evidence.rsAnálisis de TrustPolicy + aplicación de firma.
Política de divulgación de evidenciacrates/decision-gate-mcp/src/tools.rsRedacción de evidencia en bruto para evidence_query.
Superficie de configuracióncrates/decision-gate-config/src/config.rsconfiguración de evidence.* y anchors.*.