Ir al contenido

Datos gobernados para Claude

Esta ruta permite que Claude Code consulte tus contenidos de Google Drive o S3 sin convertir Olivares en un gateway de IA. El control plane trae el contenido a una knowledge base gobernada, registra procedencia por documento y expone por MCP solo las herramientas de retrieval:

DefaultQué significa
KB semánticaembed_policy=model_backed; /status debe mostrar retrieval_semantic=true antes de ingestar.
Fallback visibleSi no hay embedder semántico, el create/ingest de la KB se niega en vez de fingir que los vectores local-hash son semánticos.
Guard ACL-awareEl agente solicitante debe resolver a una identidad vinculada con attr_clearance suficiente y grupos que coincidan con las ACL.
Source scopeVincula la KB al agente de Claude Code; los subjects fuera de scope fallan cerrado.
Modo live honestoUna respuesta de conector live lleva source_mode=live; los exports estáticos quedan como source_mode=export y nunca se presentan como live.

Mantén la credencial de la fuente live en el runtime secret store. La config de la fuente la referenciará como store:<name>, nunca inline.

Ventana de terminal
olivares secrets put \
--data-dir /var/lib/olivares \
--name s3/prod-runbooks-read \
--value-file /run/secrets/s3-prod-runbooks-read

Para Google Drive, guarda el material OAuth que tu despliegue usa para acceso read-only a Drive y usa otro nombre de secreto.

Para S3:

Ventana de terminal
olivares quickstart governed-rag \
--data-dir /var/lib/olivares \
--tenant-id ten_... \
--source s3 \
--source-name prod-runbooks-live \
--bucket prod-runbooks \
--prefix claude/ \
--credential-ref store:s3/prod-runbooks-read \
--mcp-issuer https://idp.example.com/ \
--mcp-jwks-url https://idp.example.com/.well-known/jwks.json

Para Google Drive, usa --source gdrive --drive-id <shared-drive-id> y una referencia de credencial de Drive.

El comando escribe:

FicheroPropósito
sources.jsonRegistra la content source bajo documents[] con mode=live.
agent-gateway.jsonHabilita el MCP resource server con retrieval.enabled=true.
bootstrap-after-login.shCrea la KB semántica, ingesta la fuente live, vincula el agente y añade el binding de source scope.

Si el comando avisa que retrieval_semantic=false, configura primero OLIVARES_EMBEDDINGS_*. Una KB model-backed se niega intencionadamente a ingestar con solo el fallback local-hash.

Ventana de terminal
OLIVARES_SOURCES_CONFIG=/var/lib/olivares/quickstart/governed-rag/sources.json \
OLIVARES_AGENT_GATEWAY_CONFIG=/var/lib/olivares/quickstart/governed-rag/agent-gateway.json \
olivares quickstart --data-dir /var/lib/olivares

Completa el setup inicial en consola si es una instalación nueva. Después ejecuta el script de bootstrap con un token admin:

Ventana de terminal
OLIVARES_TOKEN=<admin-token> \
OLIVARES_TENANT=ten_... \
/var/lib/olivares/quickstart/governed-rag/bootstrap-after-login.sh

El retrieval guard lee hechos de identidad desde el grafo de roster/SCIM. La identidad vinculada debe existir antes de que Claude Code pueda recuperar contenido restringido:

Hecho de identidadEjemplo
Subject del token del agente / agent_refclaude-code-governed
Identidad NHI vinculadaagent:claude-code-governed
Metadata de clearanceattr_clearance=confidential o superior
Membership de grupogroup:engineering que coincida con la ACL del documento

Si el agente no tiene identidad, clearance o grupo coincidente, los chunks restringidos no se devuelven. Si el agente no está vinculado a la KB por source scope, la llamada MCP de retrieval falla cerrado.

Configura Claude Code con la URL de protected resource que imprime el quickstart, normalmente:

http://127.0.0.1:8446/mcp

El access token presentado a ese MCP resource server debe tener:

Claim/controlValor requerido
issEl issuer configurado con --mcp-issuer.
subEl external id del agente, por ejemplo claude-code-governed.
Scopeknowledge:retrieval:read.
Audience/resourceLa URL MCP configurada en agent-gateway.json.

Ejecuta el E2E demo de referencia:

Ventana de terminal
task demo:governed-rag

Comprueba status semántico, procedencia live, retrieval permitido con scope, no-retrieval por clearance bajo, denegación fuera de scope y source_mode=live en la respuesta MCP.

En despliegues existentes, verifica también un documento real:

Ventana de terminal
curl -sk "$OLIVARES_BASE_URL/v1/m/knowledge/kbs/$KB_ID/documents" \
-H "Authorization: Bearer $OLIVARES_TOKEN" \
-H "X-Olivares-Tenant: $OLIVARES_TENANT"

Cada documento ingestado live debe mostrar source_mode: "live". Si dice export, la KB se ingestó desde un fichero export y debe describirse así a los operadores.