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/router.rs L2294-L2334

La selección de perfil de tiempo de ejecución tipado ahora admite una costura de resolutor de ámbito (TypedProfileResolver) claveada por (tenant_id, namespace_id, provider_id). Esto cambia los límites de búsqueda de perfil de tiempo de ejecución, pero no altera la semántica de validación de confianza, firma o anclaje. El tiempo de ejecución REST también expone una costura de evaluador de políticas (RestPolicyEvaluator) que puede denegar egress/auth-scheme antes de las llamadas de red, mientras preserva los formatos de anclaje existentes.


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/router.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.

Para el proveedor rest incorporado, los anclajes utilizan rest_request con valores de anclaje JSON canónicos. Las comprobaciones de json_path incluyen el contexto de la solicitud más un hash del cuerpo de la respuesta en los metadatos del anclaje, mientras que las comprobaciones de header incluyen el contexto de la solicitud/comprobación sin un hash del cuerpo. En ambas comprobaciones, evidence_hash se deriva del valor de evidencia devuelto (o se omite para que el plano de control lo calcule), no del cuerpo de respuesta sin procesar.

Para proveedores tipados (type = "typed"), los valores de anclaje son impulsados por el perfil y emiten el tipo de anclaje tipado configurado (por defecto typed_request) con metadatos JSON canónicos que incluyen la identidad del proveedor/comprobación/operación, URL de solicitud, estado y resumen del perfil de tiempo de ejecución. Los proveedores tipados permanecen en la vía de confianza verificada y están sujetos al mismo camino de validación de políticas de anclaje en el tiempo de ejecución central y la verificación de runpack. El enlace de solicitud tipada se sanitiza antes de la ejecución saliente (rechazo de encabezados reservados/propiedad de autenticación y sustitución de rutas codificadas en porcentaje), previniendo que la ambigüedad en la forma de la solicitud contamine los metadatos de anclaje o las comparaciones de integridad aguas abajo.

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/router.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, anclas, políticas.
Aplicación de confianza + validación de anclascrates/decision-gate-core/src/runtime/engine.rsAplica requisitos de confianza y valida anclas.
Verificación de anclas de Runpackcrates/decision-gate-core/src/runtime/runpack.rsValidación fuera de línea contra la política de anclas.
Política de firma del proveedorcrates/decision-gate-mcp/src/evidence.rsAnálisis de TrustPolicy + aplicación de firma.
Anclas de proveedor tipadascrates/decision-gate-providers/src/typed.rsEmisión de anclas de tiempo de ejecución tipadas y enlace de resumen de perfil.
Política de divulgación de evidenciacrates/decision-gate-mcp/src/tools/router.rsRedacción de evidencia en bruto para evidence_query.
Superficie de configuracióncrates/decision-gate-config/src/config.rsconfiguración de evidence.* y anchors.*.