Una sorgente osserva un sistema esterno ed emette osservazioni normalizzate — non si interpone mai nel percorso dei dati, non fa proxy del traffico, e non legge i payload. Questa pagina copre il modello di connettore e come cablare una sorgente reale tramite OLIVARES_SOURCES_CONFIG. Se vuoi solo collegare un agente di coding, inizia con Collegare Claude Code; quella è una sorgente sul percorso cooperativo, e questo è il modello sottostante.
Cosa fa una sorgente
Una sorgente osserva un sistema e riporta ciò che ha visto come osservazioni tipizzate. La mappa degli accessi lettura/scrittura viene costruita da ciò che la sorgente riporta, non dall’intercettazione di ciò che transita. Il motore gestisce la schedulazione: una sorgente streaming (un tail di log) blocca fino alla cancellazione; una sorgente batch esegue il suo lavoro e ritorna, e il motore decide quando rieseguirla.
Un’osservazione porta solo identificatori e una classificazione lettura/scrittura — mai corpi SQL, payload di richieste, segreti o PII. Questa è una proprietà del vocabolario wire che il connettore parla, non un’impostazione che puoi attivare o disattivare. Vedi Permesso vs osservato per come queste osservazioni atterrano sulla mappa.
Ogni arco registra quale sorgente lo ha prodotto e un livello di confidenza, e il prodotto mostra entrambi. L’attribuzione e firm quando l’accesso è legato a un’identità per agente e approximate quando e inferita o approssimativa (un account di servizio condiviso, una connessione in pool). La modalità di accesso è una tra unknown, read, write o readwrite — unknown e esplicito e mai indovinato. Vedi Fedeltà.
Dove gira
I collector che eseguono queste sorgenti girano sempre sulla tua infrastruttura. Il piano di controllo che li acquisisce può essere un singolo binario self-hosted, un deployment distribuito, o air-gapped — i dati dell’estate osservato non lasciano mai il tuo confine. Vedi Self-host e la panoramica dell’architettura.
Il file di configurazione
Le sorgenti reali (non-demo) vengono cablate da un singolo file di configurazione operatore indicato dalla variabile d’ambiente OLIVARES_SOURCES_CONFIG, letto prima dell’avvio del motore. È un documento JSON che dichiara una lista di sources. Ogni voce seleziona un connettore per kind, nomina il tenant a cui appartengono le sue osservazioni, assegna un name alla sorgente e porta la config propria del connettore. Un poll_seconds opzionale riesegue una sorgente batch a intervalli; una sorgente streaming lo ignora.
I kind di sorgente sono nomi registrati nel motore. I due osservatori di file a livello clean sono pgaudit (PostgreSQL) e s3cloudtrail (AWS S3). Usa esattamente quelle stringhe — documentazione precedente che scriveva pg_audit o cloudtrail era errata e quelle stringhe non si risolvono.
Una sorgente pgaudit reale
La sorgente pgAudit segue il log di audit strutturato di PostgreSQL ed emette un arco per ogni accesso ai dati registrato. La modalità lettura/scrittura viene presa letteralmente dalla classe di pgAudit (READ, WRITE, DDL) — mai inferita dal testo SQL. E in sola lettura sul file di log e non apre mai una connessione al database.
{
"sources": [
{
"name": "prod-postgres",
"kind": "pgaudit",
"tenant": "acme",
"config": {
"log_path": "/var/log/postgresql/postgresql.json",
"format": "jsonlog",
"follow": "true",
"shared_accounts": "app_pool,reporting"
}
}
]
}
I valori di config sono stringhe. Le chiavi sopra sono di proprietà del connettore pgAudit:
log_path(obbligatorio) — percorso al file di log PostgreSQL da leggere.format—csvlogojsonlog; defaultcsvlog.follow— segui continuamente. Si applica solo ajsonlog; un filecsvlogviene letto come batch perché i suoi record possono estendersi su più righe.shared_accounts— ruoli oapplication_nameseparati da virgola che sono in pool o condivisi. L’accesso attribuito a uno di questi viene marcatoapproximate, deliberatamente, perché il trail non può separare i veri chiamanti dietro un’identità condivisa.
Un application_name distinto e il ponte per agente che guadagna un arco firm. Se molti agenti condividono un ruolo o un connection pool, ogni accesso collassa su quell’identità e l’attribuzione diventa approximate — il prodotto lo dichiara anziché fingere di poter distinguere gli agenti.
Una sorgente s3cloudtrail reale
La sorgente CloudTrail legge i file di log AWS CloudTrail ed emette un arco per ogni evento S3, prendendo lettura/scrittura letteralmente dal campo readOnly di CloudTrail. L’origine e il principal IAM; un ruolo assunto condiviso tra i chiamanti viene marcato approximate.
{
"sources": [
{
"name": "prod-s3",
"kind": "s3cloudtrail",
"tenant": "acme",
"config": {
"path": "/var/log/cloudtrail/",
"shared_accounts": "shared-pipeline-role"
}
}
]
}
La chiave path (obbligatoria) e un file di log CloudTrail o una directory di file *.json / *.json.gz. shared_accounts si comporta come per pgAudit.
Quando nulla è cablato, il motore avvisa
Il motore fallisce in modo sicuro, non rumoroso:
- Se
OLIVARES_SOURCES_CONFIGnon è impostata, il motore parte senza sorgenti. - Se il file manca, non è leggibile o non è JSON valido, il motore avvisa e continua senza sorgenti — non crasha all’avvio.
- Se la lista delle sorgenti è vuota, avvisa che nessun connettore fara ingestione e che l’estate funziona senza traffico reale.
In ogni caso il log di avvio ti dice chiaramente che nulla di reale è cablato. Una mappa degli accessi vuota non dovrebbe mai sembrare una mappa pulita.
Non tutti i connettori in-tree sono cablati nel serve standard
Olivares AI distribuisce più connettori in-tree di quanti un binario serve standard registri come kind di sorgente selezionabili. Gli osservatori di file pgaudit, s3cloudtrail, il backstop kernel ebpf, il lettore host runtime e l’introspezione mcp sono cablati nel serve standard, insieme a un set di osservatori per piattaforme dati, segreti, rete e identità. Altri connettori esistono nel tree ma non sono ancora cablati nel registro sorgenti del serve standard — e un follow-up tracciato, non un’affermazione che tutto sia selezionabile oggi. Se un kind che ti aspetti non si risolve, trattalo come non ancora cablato anziché mal configurato, e conferma contro il descrittore proprio del connettore prima di farci affidamento.
Questa pagina descrive solo chiavi che sono verificate rispetto ai connettori sopra. Le esatte chiavi config per qualsiasi altro connettore sono di proprietà di quel connettore; leggi il suo descrittore anziché copiare uno schema non verificato.
Correlati
- Collegare Claude Code — il percorso cooperativo, da cima a fondo.
- La mappa degli accessi lettura/scrittura — ciò che queste osservazioni costruiscono.
- Fedeltà — livelli di copertura e attribuzione.
- Trasparenza e limiti — cosa è verificato rispetto a cosa e in fase di progettazione.