A governance and orchestration layer that controls how models access enterprise data -- enforcing policy, minimizing exposure, and producing audit trails.
Every request follows a deterministic path through Atlas. No step is optional. If any stage fails, the request is rejected with a structured error and an audit event is emitted.
Request includes bearer token, tenant ID, and target collection scope. Wire format is JSON over mTLS.
Token validated against configured IdP. Session binding established. Failed auth returns 401 immediately.
OPA-compatible policy evaluation. Decision includes permission set, data classification ceiling, and operation whitelist. Decision ID assigned.
Collection set filtered by policy decision. Denied collections are excluded before any vector search executes. No fallback to broader scope.
Query embedding generated. Search runs against Qdrant with metadata filters enforced server-side. Results ranked and truncated to configured limit.
Redaction rules applied per classification tag. PII masking, field truncation, and citation injection. Output is the assembled prompt context.
Selected model receives prompt with system template. Tool/function calling gated by policy. Token budget enforced. Timeout applied.
Streaming response with server-sent events. Output filters applied inline. Response hash computed on completion.
Immutable record: query hash, retrieval set, policy decision ID, model ID, token count, latency, output hash, redaction flags.
External model APIs (OpenAI, Anthropic, etc.) are supported but require explicit configuration per-zone. External connections are logged and subject to policy evaluation. No data leaves the environment without an auditable decision chain.
No data egress by default. External connections require explicit configuration, policy approval, and produce audit events on every call. Air-gapped deployments have no external network path.
1allow {
2 input.user.role == "analyst"
3 input.collection.id == "collection-a"
4 input.operation in ["read", "retrieve", "summarize"]
5 not input.document.tags["PCI-high"]
6}
7
8allow {
9 input.user.role == "legal"
10 input.zone.id == "zone-b"
11 input.operation == "agent-summarize"
12}
13
14deny {
15 input.model.id == "gpt-4"
16 input.zone.classification == "classified-research"
17}
Atlas defaults to closed on all failure paths. There is no degradation mode that silently bypasses policy or drops audit events.
All requests denied. No bypass. Alert fires to ops channel within 30s.
Circuit breaker opens after configurable error threshold. Partial results returned with degraded flag. Automatic recovery probe.
Request queued with TTL. Per-tenant rate limits enforced. 429 returned when queue depth exceeds threshold. Priority lanes for critical tenants.
Audit events buffered to local WAL. If buffer fills, requests are rejected. No silent audit gaps.
Atlas + embedded DB + local model
Atlas replicas + external Postgres + Qdrant cluster + model pool
Offline artifact distribution + local model hosting + no external connections
All internal and external traffic encrypted. mTLS between Atlas components. Configurable cipher suites.
Vault integration or K8s secrets. No secrets in environment variables or config files. Rotation without restart.
Rolling upgrades with automatic rollback on health check failure. Schema migrations are forward-compatible.
Every request produces an immutable audit record. These records are append-only, tamper-evident, and exportable to external SIEM systems. The schema below covers the core fields emitted per request.
| field | type | description |
|---|---|---|
| request_id | uuid | Unique identifier for the request |
| timestamp | timestamptz | Server-side wall clock, UTC |
| user_id | text | Authenticated user principal |
| tenant_id | text | Tenant isolation boundary |
| policy_decision_id | uuid | Reference to evaluated policy decision |
| collection_ids | text[] | Collections accessed during retrieval |
| retrieved_doc_ids | text[] | SHA-256 hashes of retrieved documents |
| model_id | text | Model identifier + version string |
| token_count | integer | Total tokens consumed (prompt + completion) |
| latency_ms | integer | End-to-end request latency |
| output_hash | text | SHA-256 of complete model response |
| redaction_applied | boolean | Whether any redaction transform executed |
| redaction_types | text[] | Classification tags that triggered redaction |
Zone/collection metadata ingest + manifest sync
Starfish provides the data organization layer. Atlas reads zone definitions, collection metadata, and classification manifests. Sync is pull-based on configurable interval.
Upsert / search / filter contract
OpenAPI-compatible vector operations. Primary support for Qdrant. Filter expressions enforce tenancy and classification at query time. Batch upsert for ingestion pipelines.
OpenAI-compatible API / vLLM endpoints
Chat completions and embeddings endpoints. vLLM for self-hosted models. Model registry tracks available models, versions, and capability tags.
OIDC / SAML mapping
Standard OIDC discovery or SAML metadata import. Group-to-role mapping configurable via admin API. Supports multi-IdP for federated environments.
Audit export via syslog, webhook, or file
Structured audit events exported in CEF or JSON. Supports syslog (TCP/TLS), webhook POST, or local file rotation. Configurable export filters.
OPA-compatible policy evaluation
Built-in policy engine for standard RBAC. Optional OPA sidecar for complex Rego policies. Policy bundles versionable and auditable.
We deploy Atlas on your infrastructure, with your identity provider, against your data sources. No SaaS dependency. No data egress.