Djinious
DjiniousDataBase di conoscenza

Un numero senza le sue righeè un’opinione.

Piattaforma dati API-firstAssegnaOpera

DjiniousData ingerisce i file, i connettori e gli stream che già hai, li modella come il tuo dominio anziché il nostro, e mantiene ogni tile della dashboard, allarme e risposta IA collegati ai record da cui sono stati calcolati. Clicca su un finding e atterri sull’evidenza.

DjiniousData
La dashboard di telematica di flotta AcmeRail in DjiniousData: tile di punti di telemetria, velocità, distanza, carburante, refrigerante e allarme di minimo sopra una mappa live della flotta nel nord della Francia e in Belgio, una ciambella degli stati operativi, e ripartizioni per locomotiva.
Una dashboard di operatività di flotta assemblata a partire dalla telematica ingerita. Ogni tile è un aggregato live sui record sottostanti — non uno snapshot memorizzato — così la mappa, il mix di stati e le tendenze di salute rispondono tutti dalle stesse righe. Stack di sviluppo precaricato, fixture AcmeRail.
tipi di entità compilati
0tipi di entità compilatil’ontologia è dato, non codice
fasi di ingestione, provenienza applicata
7fasi di ingestione, provenienza applicataparse · normalize · dedupe · acl · enrich · embed · persist
strumenti MCP, la stessa autenticazione della UI
46strumenti MCP, la stessa autenticazione della UItoken API con ambito · nessuna porta di servizio
la linea tra unito e candidato
0.85la linea tra unito e candidatosotto di essa una corrispondenza aspetta un analista

Cos’è

Un’unica piattaforma per l’ingestione, il modello, il grafo e la risposta

La maggior parte degli stack dati sono quattro prodotti cuciti insieme: qualcosa che carica, qualcosa che modella, qualcosa che disegna grafici, e qualcosa che infine lascia avvicinare un’IA. Ognuno mantiene la propria copia di chi può vedere cosa, e la discendenza muore a ogni cucitura. DjiniousData è un unico piano di controllo API-first, e ogni capacità esiste come endpoint prima ancora di esistere come schermata.

Ingestione unificata

CSV, Excel, PDF, DOCX, JSON e Markdown dal document store; sistemi esterni tramite plugin connettori; video e telecamere live tramite la pipeline di visione. Tutto approda come oggetto di conoscenza che porta con sé la propria provenienza, e un oggetto la cui provenienza non si convalida viene rifiutato anziché memorizzato.

file · connettori · plugin · stream

Ontologia a runtime

I tipi di entità e di relazione sono definiti tramite la UI o l’API e memorizzati nel database — non dichiarati in un file di schema e rilasciati con una release. Un’organizzazione può stratificare i propri campi, etichette e flusso di stato sopra un tipo base condiviso senza doverlo forkare.

tipi di entità · tipi di relazione · overlay per organizzazione

Arricchimento offline-first

Entità, parole chiave, argomenti, sentiment e lingua vengono estratti da un enricher offline deterministico che non richiede né modello né rete. Un LLM migliora il risultato quando ne è configurato uno; non è mai ciò che si frappone tra i tuoi dati e la loro utilizzabilità.

deterministico, con l’LLM come acceleratore

Risoluzione delle entità

I record che descrivono la stessa cosa vengono raggruppati tramite blocking e scoring a coppie. Sopra 0,85 la piattaforma unisce; tra 0,7 e 0,85 tiene la coppia come candidata per una persona, e registra la decisione dell’analista così l’esecuzione successiva la rispetta.

identificatore 1,0 · nome esatto 0,85 · fuzzy 0,7

Grafo di conoscenza

Le entità risolte vengono correlate in un grafo navigabile i cui archi portano con sé gli oggetti da cui sono stati derivati. L’attraversamento ha un ambito ACL prima di restituire un vicino, così il grafo non può diventare la via per aggirare i permessi.

archi con evidenza, non solo frecce

Dashboard, allarmi e report

I widget interrogano direttamente gli oggetti sottostanti, così un tile è sempre aggiornato e sempre tracciabile. Le regole di allarme osservano un aggregato di un campo per gruppo e scattano su una soglia. I report citano le righe dietro ogni sezione.

aggregati sui record, calcolati in lettura

Dentro al prodotto

Guardala funzionare.

Ogni schermata qui sotto è il prodotto in esecuzione.

01 · Ingerisci

Ogni riga diventa un oggetto che sa da dove viene

Punta la piattaforma su una cartella di documenti, un connettore o una telecamera. Ogni riga, pagina o esecuzione diventa un oggetto di conoscenza: analizzato, normalizzato, deduplicato su un hash del contenuto, mappato nei permessi, arricchito, sottoposto a embedding e persistito — con il sistema sorgente, l’id dell’oggetto sorgente e il momento di ingestione registrati lungo il percorso.

  • CSV, XLS/XLSX, PDF, DOCX, JSON, Markdown e testo semplice, un oggetto per ogni riga tabellare
  • Le colonne numeriche confluiscono anche in uno store di serie temporali, così i grafici di telemetria e le regole di soglia lavorano sullo stesso caricamento
  • La deduplicazione avviene per hash del contenuto rispetto all’id dell’oggetto sorgente — reingerire un file è un no-op, non una seconda copia
DjiniousData
Risultati di ricerca di DjiniousData per una locomotiva: righe di telemetria ingerita, ciascuna con il proprio nome sorgente, il proprio punteggio di rilevanza e un’azione Ispeziona.
Ciò che l’ingestione produce, qualunque sia la porta da cui sono entrati i dati: un oggetto ricercabile per riga, che porta con sé la sorgente da cui proviene e apre sul record stesso.

02 · Modella

Descrivi il tuo dominio, e la piattaforma si costruisce intorno ad esso

Descrivi il tuo dominio come tipi di entità e tipi di relazione — campi, etichette, icone, un flusso di stato — e la piattaforma costruisce intorno ad essi il CRUD, le viste elenco, le pagine di dettaglio, le sfaccettature di ricerca e gli strumenti per gli agenti. Nessuna migrazione, nessun deploy, nessun codice.

  • I tipi sono record memorizzati: creane uno alle 11:00 e la sua vista elenco esiste alle 11:00
  • Gli overlay per organizzazione stratificano campi e flussi sopra un tipo base condiviso senza doverlo forkare
  • L’assistente IA può proporre un tipo a partire dai dati che ha ingerito, e tu approvi o respingi la proposta
DjiniousData
La pagina del modello dati di DjiniousData che elenca i cinque tipi di entità di AcmeRail — paese, flotta, evento di flotta, locomotiva e luogo — ciascuno etichettato come di proprietà dell’organizzazione.
Cinque tipi, definiti a runtime e di proprietà dell’organizzazione anziché della piattaforma. Ognuno ha ottenuto la propria vista elenco, pagina di dettaglio e strumenti per gli agenti senza che venisse scritta una sola riga per esso.

03 · Risolvi

Raggruppa ciò che è uguale, e mantieni l’evidenza sull’arco

Raggruppa i record che descrivono la stessa cosa reale, correla i gruppi in un grafo, e mantieni l’evidenza sull’arco. Ogni entità è anche correlata all’organizzazione che la possiede, come relazione derivata che la piattaforma sintetizza anziché un arco memorizzato che devi ricordarti di scrivere.

  • Blocking, scoring a coppie e raggruppamento union-find, tutto offline e deterministico
  • Le corrispondenze fuzzy sotto la linea di unione automatica restano candidate, e la decisione di un analista viene rispettata all’esecuzione successiva
  • L’attraversamento del grafo ha un ambito ACL prima di restituire un vicino, non viene filtrato dopo
DjiniousData
L’esploratore del grafo di conoscenza di DjiniousData che mostra il nodo della flotta AcmeRail collegato alle sue otto locomotive e all’organizzazione AcmeRail.
La flotta, le sue otto unità e l’organizzazione a cui appartengono. L’arco verso l’organizzazione è derivato dal record anziché memorizzato, così non può disallinearsi da esso.

04 · Segnali

Finding che arrivano con la loro evidenza allegata

L’analisi produce segnali — anomalie, pattern, segnali deboli — ciascuno con un soggetto, un metodo, una confidenza e riferimenti agli oggetti di conoscenza da cui è stato calcolato. La gravità è derivata dalla confidenza anziché assegnata, così due finding con la stessa confidenza non possono essere classificati diversamente da chi li ha scritti.

  • I riepiloghi dei segnali interpolano aggregati misurati, mai cifre codificate a mano
  • Ogni segnale porta con sé riferimenti agli oggetti di conoscenza da cui è stato tratto
  • Un’unica ricerca su entità, documenti, eventi e insight — per parola chiave, semantica o ibrida — con ogni risultato che apre sul record che c’è dietro
DjiniousData
La vista Analizza di DjiniousData, filtrata sulla locomotiva G1206-AR1042: cinque finding — tre critici — ciascuno con il proprio tipo, gravità, confidenza, metodo e un’azione Ispeziona, sopra un riepilogo di gravità dell’intera flotta.
Dodici finding su due settimane di telemetria di flotta, qui filtrati su una sola locomotiva. La gravità è derivata dalla confidenza anziché assegnata, e ogni riga apre sulle letture che ci sono dietro.

05 · Dal finding all’azione

Una regola che scatta è l’inizio del filo, non la fine

Un allarme senza un caso è una notifica che qualcuno prima o poi smette di leggere. Il percorso della piattaforma va nella direzione opposta: la regola scatta, il segnale spiega cosa è stato misurato e cosa implica, il caso raccoglie l’evidenza e assegna un responsabile, e il report è ciò che esce dall’edificio.

  • Le regole di allarme scattano su un massimo, minimo, media o conteggio di un campo in whitelist su una sorgente, per gruppo
  • La cronologia degli allarmi mantiene il valore osservato e la soglia accanto a ogni scatto, così una regola troppo sensibile è visibile come tale
  • I casi portano con sé collaboratori, tag, commenti e una traccia delle attività, e i loro elementi di evidenza mantengono i riferimenti agli oggetti sorgente
DjiniousData
Un caso di indagine aperto per la locomotiva G1206-AR1042 che consolida i suoi segnali di rischio di raffreddamento ed elettrico, con tre elementi di evidenza raccolti, i suoi tag, il suo responsabile e la sua traccia di attività.
Il caso che consolida i due flag di salute concorrenti della flotta su un’unica unità. I suoi elementi di evidenza mantengono i riferimenti alle righe di telemetria da cui i flag sono stati calcolati.

06 · Report

Una cifra in un report e il tile da cui proviene non possono essere in disaccordo

Report strutturati le cui sezioni sono tipizzate — narrativa, entità, segnali — e le cui citazioni puntano a record anziché ad altra prosa. Un report viene generato dallo stato della piattaforma, e può essere generato da un caso, mantenendo il collegamento ad esso. L’esportazione PDF ed Excel legge gli stessi record che sta leggendo la schermata.

  • Sezioni tipizzate, con citazioni verso gli oggetti sorgente
  • I report generati da un caso mantengono il collegamento ad esso
  • L’API non è un sottoinsieme della UI; la UI è un consumatore dell’API
DjiniousData
Un briefing generato di manutenzione e salute della flotta AcmeRail, con un riepilogo esecutivo, lo stato della flotta per unità, i flag di salute e le azioni raccomandate, ogni sezione con citazione della telemetria su cui si basa.
Il briefing cita distanza, ore motore, picco di refrigerante e tensione minima di bus per unità — tutti letti dalla telemetria ingerita anziché scritti nella prosa.

IA e agenti

Un agente dentro il modello dei permessi, non accanto ad esso

L’assistente non è un wrapper che legge la tua schermata. Chiama la stessa API REST che chiami tu, come il principal che sei, nell’organizzazione in cui sei — così non c’è un secondo modello di permessi da mantenere allineato al primo, e nulla che possa raggiungere che tu non potresti.

01

Ogni scrittura viene approvata

Gli strumenti di lettura girano liberamente; gli strumenti che creano, aggiornano, eliminano o correlano qualcosa si fermano e mostrano una scheda approva/respingi nella conversazione. Vedi la chiamata esatta e i suoi argomenti prima che avvenga.

02

La sua portata è un ruolo, non un prompt

Gli strumenti sono controllati lato server in base al ruolo del chiamante. All’assistente di un viewer non viene detto di comportarsi bene; gli viene consegnato un catalogo più piccolo. Non c’è alcuna istruzione da aggirare con un jailbreak, perché gli strumenti di scrittura non erano nella conversazione fin dall’inizio.

03

Risponde con i componenti della piattaforma stessa

Quando l’assistente riferisce sullo stato di salute del sistema, un’esecuzione di visione o un insieme di entità, renderizza lo stesso componente React che il resto dell’app usa per quel dato. Stai guardando la vista della piattaforma sul record, non la parafrasi che ne fa il modello.

04

Può chiedere, e i segreti restano lato server

L’agente può mettere in pausa un’attività a metà per un testo libero, una scelta o una password. Una risposta sensibile viene custodita lato server e raggiunge il modello solo come riferimento — così una credenziale può essere usata da uno strumento senza mai entrare nella trascrizione.

05

46 strumenti MCP, sugli stessi handler dell’API REST

Gli agenti esterni all’app raggiungono la piattaforma attraverso un server Model Context Protocol che inserisce il principal della chiave API negli stessi handler chiamati dalle route HTTP. Gli ambiti per token — read, write, admin, ai — sono delimitati dal ruolo del proprietario stesso, e viene memorizzato solo l’hash SHA-256 di un token.

06

L’assistente propone un’ontologia; solo una persona ne adotta una

Puntato su ciò che è stato ingerito, l’agente inferisce i tipi di entità, i loro campi e le relazioni tra essi, e scrive il risultato come record di proposta. Accettarne una crea i tipi attraverso la stessa API che userebbe una persona; niente cambia sulla sola autorità di un modello.

DjiniousData
Il pannello dei token di accesso API nelle impostazioni di DjiniousData, che elenca tre token generati per un client MCP, un audit schedulato e un notebook di sola lettura, ciascuno con la propria impronta, i propri ambiti, lo stato di ultimo utilizzo e la scadenza.
I token vengono generati per agente e con ambito indipendente. Viene memorizzato solo l’hash, il segreto viene mostrato una sola volta, e revocarne uno lascia gli altri funzionanti.

Funzionalità

L’intera superficie, parte per parte

DjiniousData è un unico processo Bun — HTTP, WebSocket e job in background — sopra SurrealDB per record, grafo, vettori e testo integrale, e TimescaleDB per le serie temporali, con un client React sopra il tutto.

Ingestione6 funzionalità

Il document store

Carica in cartelle persistenti, seleziona ciò che vuoi, e ingerisci. CSV, XLS/XLSX, PDF, DOCX, JSON, Markdown e testo semplice vengono analizzati in-process — PDF e DOCX senza un binario esterno — e ogni riga tabellare diventa un proprio oggetto di conoscenza.

Connettori

I sistemi esterni arrivano attraverso istanze di connettore, ciascuna delle quali marca il proprio nome sorgente così una dashboard può filtrare esattamente su un feed. I connettori portano un intervallo di sincronizzazione, e un job schedulato ricorrente sincronizza quelli il cui intervallo è trascorso.

La pipeline

Sette fasi, in ordine: parse, normalize, deduplicate, permission-map, enrich, embed, persist. Ognuna è una funzione pura dell’envelope che le viene passato, ed è per questo che la stessa catena gira per un caricamento file, una sincronizzazione connettore e un precaricamento fixture.

Provenienza, convalidata

Ogni oggetto registra il proprio sistema sorgente, il proprio id dell’oggetto sorgente, il proprio URI originale, il proprio momento di ingestione e la propria versione di pipeline. Un oggetto che fallisce la convalida della provenienza solleva un errore terminale invece di essere memorizzato — e fallisce anche un oggetto derivato senza riferimenti al genitore.

Deduplicazione

Un indice univoco su (sorgente, id esterno) più un hash del contenuto. Reingerire una riga invariata tocca solo il suo momento di aggiornamento e nient’altro; una riga cambiata viene aggiornata sul posto. Due writer in competizione per la stessa chiave convergono su un unico record anziché due.

Serie temporali in parallelo

Le colonne numeriche vengono scritte anche in una tabella di metriche TimescaleDB sullo stesso caricamento, così una regola di soglia e un grafico di tendenza leggono la stessa ingestione anziché una seconda copia che rischia di disallinearsi.

Modello5 funzionalità

I tipi sono record

I tipi di entità e di relazione sono righe, create tramite la UI o l’API. Campi, etichette, plurali, icone e un flusso di stato sono tutti dato. Non c’è codice generato né migrazione tra la definizione di un tipo e il suo utilizzo.

CRUD generico

Tutte le letture e scritture di entità passano attraverso un unico insieme di endpoint sotto /api/entities, guidato dalla definizione del tipo. Un nuovo tipo ottiene la propria vista elenco, pagina di dettaglio, sfaccettature di ricerca e strumenti per gli agenti senza che venga scritta una sola riga per esso.

Overlay per organizzazione

Un overlay indicizzato da (tipo, organizzazione) stratifica campi, etichette e stati di flusso aggiuntivi sopra un tipo base condiviso, risolto per l’organizzazione del chiamante. L’estensione di un tenant non diventa lo schema di ogni tenant.

Entità ↔ organizzazione

Ogni entità porta con sé una relazione derivata verso l’organizzazione che la possiede. Viene sintetizzata dal campo di proprietà anziché memorizzata come arco, così non può disallinearsi dal record, ed è di sola lettura nell’esploratore del grafo.

Tipi proposti dall’IA

L’assistente può leggere ciò che è stato ingerito e proporne un’ontologia — tipi, campi, relazioni. La proposta è un record che rivedi e accetti o respingi; non viene mai applicata sulla sola autorità del modello.

Risoluzione5 funzionalità

Corrispondenza deterministica

Un identificatore condiviso ottiene un punteggio di 1,0, un nome normalizzato esatto 0,85, un nome fuzzy 0,7. I matcher sono funzioni pure senza alcun modello dietro, così gli stessi due record ottengono lo stesso punteggio oggi e nel prossimo trimestre.

Raggruppamento, e la linea

Blocking, scoring a coppie, poi union-find. Le coppie pari o sopra 0,85 vengono unite automaticamente; una fuzzy a 0,7 resta candidata. Quel divario è deliberato — è lì che serve una persona.

Le decisioni dell’analista sono durevoli

Quando un analista conferma o respinge una candidata la decisione viene memorizzata, e l’esecuzione di risoluzione successiva la rispetta. Rieseguire la pipeline non rimette in discussione un giudizio che qualcuno ha già espresso.

Gli archi portano evidenza

Gli archi materializzati del grafo mantengono i riferimenti agli oggetti da cui sono stati derivati, così un arco risponde a “perché pensi che siano collegati” con righe anziché con una confidenza.

Attraversamento con ambito

Le ricerche dei vicini filtrano in base ai permessi del chiamante prima di restituire, non dopo. Un grafo che filtrasse in seguito ti avrebbe comunque detto che il nodo esisteva.

Osserva5 funzionalità

Widget sui record

I widget di metrica, ripartizione, tendenza e mappa interrogano direttamente gli oggetti di conoscenza, con una sfaccettatura, un filtro, un campo metrica e un’aggregazione. Non c’è alcuna tabella di dashboard materializzata da aggiornare, e quindi nessuna che possa risultare obsoleta.

Il widget mappa

L’ultima posizione per gruppo, tracciata sullo stesso componente mappa usato dal resto dell’app. Viene alimentato dall’ingestione ordinaria, così una flotta appare su una dashboard perché la sua telemetria è stata caricata, non perché è stata acquistata una funzione di mappatura.

Regole di allarme sulla telemetria

Una regola osserva un massimo, minimo, media o conteggio di un campo in whitelist su una sorgente, raggruppato — per locomotiva, per sito, per dispositivo — e scatta quando supera una soglia. Le regole hanno un ambito legato al proprietario e valutano rispetto a ciò che quel proprietario può vedere.

Dashboard condivise

Una dashboard è un record con nome, con ambito legato a un’organizzazione e a uno spazio di lavoro. Pubblicarne una è il modo in cui un team ottiene la stessa vista, invece che ognuno la ricostruisca dallo stesso catalogo di widget.

Aggiornamenti live

Gli stream di cambiamento dal database si propagano attraverso un hub WebSocket, così una pagina riflette una scrittura da un’altra sessione senza un ciclo di poll sotto di essa.

Vision5 funzionalità

Rilevamento come ingestione

Una pipeline di rilevamento oggetti gira su un documento memorizzato, un URL pubblico o uno stream live, e i suoi risultati si materializzano in tre modi: metriche per grafici e allarmi, un oggetto di conoscenza per la ricerca, e opzionalmente un’entità per ogni oggetto tracciato.

I rilevamenti non sono oggetti

Un tracker collassa centinaia di riquadri di un camion parcheggiato in un’unica traccia, perché il numero che appartiene a una dashboard è “un camion”, non “novecento rilevamenti”.

L’avvertenza sul campionamento, dichiarata

Il tracking presuppone che i fotogrammi campionati consecutivi si sovrappongano. Su un filmato 1080p60 di un singolo lavoratore che cammina, uno stride di 30 ha riportato 13 persone distinte e uno stride di 5 ne ha riportate 2. I conteggi di rilevamento non ne risentono; solo il conteggio degli oggetti unici degrada. Mantieni l’intervallo campionato sotto ~0,2 s quando quel numero conta.

Gli stream sono opt-in

Le telecamere sono per natura su rete privata, così una sorgente stream viene rifiutata a meno che il suo prefisso non sia nell’allow-list dell’operatore. Gli URL pubblici vengono verificati con la stessa protezione che la piattaforma usa per i webhook.

I risultati parziali sopravvivono

Il worker invia i rilevamenti in modo incrementale, ed è ciò che rende osservabile una telecamera live e ciò che preserva il lavoro quando un’esecuzione lunga muore a metà.

Agisci5 funzionalità

Segnali

L’analisi produce segnali — anomalie, pattern, segnali deboli — ciascuno con un soggetto, un metodo, una confidenza e riferimenti agli oggetti che ci sono dietro. La gravità è derivata dalla confidenza anziché scelta.

Indagini

Un caso raccoglie segnali, note ed elementi di evidenza in un unico filo con un responsabile e una priorità, così un finding diventa lavoro anziché una scheda che scorre via.

Report

Report strutturati con sezioni tipizzate e citazioni verso gli oggetti sorgente. Un report viene generato dallo stato stesso della piattaforma, così una cifra in un report e il tile da cui proviene non possono essere in disaccordo.

Automazioni

Script con schedulazioni e webhook, versionati, con log di esecuzione. Chiamano la stessa API della piattaforma, il che significa che un’automazione è soggetta agli stessi permessi della persona che l’ha scritta.

Esporta

Esportazione PDF ed Excel dagli stessi record che la schermata sta leggendo, più una superficie REST documentata per tutto il resto. L’API non è un sottoinsieme della UI; la UI è un consumatore dell’API.

Sotto il cofano4 funzionalità

SurrealDB possiede

Utenti, credenziali, sessioni, organizzazioni, spazi di lavoro e appartenenze; l’ontologia e i suoi overlay; oggetti di conoscenza con i loro embedding e indice full-text; entità risolte e archi del grafo; dashboard, regole di allarme, segnali, indagini e report; il log di audit e la coda dei job.

TimescaleDB possiede

L’hypertable delle metriche — le serie numeriche estratte dalle righe ingerite e inviate dal worker di visione, dove una query a bucket temporali su milioni di punti è l’intero compito.

Perché separare, dopotutto

Un unico store per i record significa che il grafo, la ricerca vettoriale e la ricerca full-text vedono tutti le stesse righe con gli stessi permessi, senza alcuna sincronizzazione tra loro. Le serie temporali sono l’unico carico di lavoro che vuole davvero un motore diverso, così ne ottiene uno — e nient’altro lo fa.

Il costo, dichiarato

Due connessioni, due modalità di guasto, e metriche che possono essere in ritardo rispetto ai record da cui sono state derivate. L’ingestione scrive entrambe nello stesso passaggio così la finestra è piccola, ma non è zero e non è nascosta.

Fiducia

Ambito applicato dove le righe vengono selezionate, non dove vengono renderizzate

Il multi-tenancy è di solito un problema di revisione: ogni nuova query è a un filtro dimenticato di distanza da una perdita di dati, e la difesa è che qualcuno se ne sarebbe accorto. DjiniousData restringe il confine in un unico punto per famiglia di record, lo applica negli handler condivisi da ogni route, e registra cosa è successo, che qualcuno stia osservando o no.

Un unico elenco di ciò che ha un ambito

Le famiglie di record che appartengono a un cliente — oggetti di conoscenza, entità risolte, documenti, dashboard, regole di allarme, segnali, casi, report — sono enumerate in un unico modulo. Aggiungere una tabella che dovrebbe avere un ambito è una modifica di una riga lì, invece di un audit di ogni handler che potrebbe toccarla.

WORKSPACED_TABLES

Il parametro di restrizione può solo restringere

Un chiamante può chiedere di vedere meno. Nominare un’organizzazione diversa dalla propria non amplia il risultato: un utente tenant è vincolato lato server alla propria organizzazione indipendentemente da ciò che passa.

?organization=

Due livelli di admin, nessun secondo ruolo

Un admin senza organizzazione è un super-user cross-tenant; un admin con un’organizzazione ha il suo ambito limitato ad essa. Un admin di organizzazione non può generare un admin globale, spostare un utente tra organizzazioni, o modificare l’ontologia base condivisa.

isGlobalAdmin · isOrgAdmin

Gli agenti sono principal, non eccezioni

Il server MCP inserisce il principal della chiave API negli stessi handler usati dalle route REST. Non esiste un percorso a forma di agente che aggiri i controlli, e la portata di un token è delimitata dal ruolo dell’utente che lo ha generato.

MCP dispatch

Un log di audit solo in append, scritto lungo il percorso

Ogni mutazione viene registrata nel momento in cui avviene — chi, quale azione, quale record, e da dove — dal middleware attraverso cui passa ogni route. Le modifiche a entità, ontologia, connettori, token e regole di allarme approdano tutte nello stesso log, e un job di retention spazza via periodicamente gli eventi scaduti e le sessioni morte.

audit

Un account, un hash

Credenziali Argon2id, verificate rispetto a un database di identità condiviso così un unico account funziona su ogni applicazione Djinious, e sessioni come JWT firmato con HMAC-SHA256. I ruoli sono admin, user e viewer; i controlli lato server vivono accanto agli handler, e la UI li rispecchia ma non è mai lei ad applicarli.

Argon2id · JWT

Dove sono i limiti

I record e le serie temporali vivono in due store, così una query sulle metriche può essere momentaneamente in ritardo rispetto ai record da cui è stata derivata. L’ingestione guidata dai connettori gira al di fuori di un contesto di richiesta e non marca l’organizzazione sugli oggetti che scrive; un deployment che ingerisce per singolo cliente li delimita esplicitamente.

limiti dichiarati

Nel filo digitale

Cosa riceve. Cosa consegna.

DjiniousData svolge la propria parte del ciclo di ingegneria e trasmette le proprie evidenze — e funziona altrettanto bene anche da sola.

Da sola

DjiniousData è di per sé una piattaforma dati completa e API-first: porta i file, i connettori e gli stream che già hai, e li ingerisce, modella, risolve e osserva senza alcuna altra parte della suite.

Prenota una demo

Guardala sul tuo problema.

Porta l’export di cui nessuno si fida. Novanta minuti sui tuoi dati, non sui nostri. Lo ingeriremo davanti a te e leggeremo il risultato man mano che arriva — incluse le righe che la piattaforma rifiuta di unire, e perché le trattiene.

  1. Ingerisci un file che porti — un CSV, un foglio di calcolo, un PDF — e osserva cosa diventa
  2. Leggi ad alta voce la sua provenienza: sistema sorgente, oggetto sorgente, momento di ingestione, e l’hash del contenuto che rende un reingest un no-op
  3. Modellalo come tipi di entità e di relazione, live, e osserva apparire le viste elenco e le pagine di dettaglio senza un deploy
  4. Risolvi i duplicati al suo interno, e guarda le coppie che la piattaforma ha deliberatamente scelto di non unire
  5. Mettici sopra un tile di dashboard e una regola di soglia, poi clicca sul tile fino alle righe sottostanti
  6. Chiedi all’assistente qualcosa per cui non ci siamo preparati, e osserva a quali strumenti ricorre