Zum Inhalt springen

OSL-API-Referenz

Dieser Abschnitt definiert die öffentlichen Verträge der OSL-Engine. Was hier festgehalten wird, ist das, was jeder Client annehmen darf, und was jede OSL-konforme Engine MUSS exakt implementieren.

Für die vollständige Objekt-Semantik (welche Primitiven existieren, ihre Felder) siehe die Spezifikation. Hier: wie sie aufgerufen wird und was sie zurückgibt.

OSL v1 stellt vier separate Oberflächen bereit:

Oberfläche Wer sie konsumiert Form
REST BI-Tools, Apps, Dashboards, Skripte HTTP/JSON · optional Arrow IPC für /query-Bulk
MCP-Tools AI-Agenten (Claude, GPT, Copilot, custom) Tool-Definitionen über das MCP-Protokoll
CLI Entwickler, CI-Pipelines das osl-Binary
OpenLineage-Events Marquez, DataHub, Observability Webhook-/Kafka-Emitter

Alles, was du liest, läuft durch einen einzigen Endpoint/osl/query. Strukturierte Analytik, Metriken, gesteuertes Vektor-Retrieval, Entity-Datensätze und Graph-Traversierung sind alle Formen der OSL-SQL-Oberfläche.

Endpoint Zweck
POST /osl/query Die Konsum-Oberfläche — OSL-SQL (osql), rohes sql oder MetricFlow
POST /osl/sample Gesteuerte Content-Vorschau — ACL + serverseitige Redaktion (keine Algebra-Query)
GET /osl/domain-map Der vereinheitlichte Domain-Graph (Entities, Metriken, Kandidaten)
GET /osl/schema Das kompilierte Manifest (cacheable)
GET /osl/schema/resolve Lexicon-Resolver — Business-Begriff → kanonischer FQN
POST /osl/suggest · POST /osl/validate · POST /osl/objects Assistiertes Authoring (draft → validate → publish)
GET /osl/candidates Discovery — Kandidaten-Entities (noch nicht adoptiert)
GET /osl/conformance Deklarierte Konformitätsstufen
GET /health Health-Check ohne Authentifizierung

OSL liefert MCP-Tools, die jeder Agent aufrufen kann: metric_lookup, doc_search, entity_get, schema_describe, joint_explore. Sie rufen dieselben gesteuerten Resolver auf, die die OSL-SQL-Formen unterlegen — doc_search kapselt RETRIEVE, entity_get kapselt die Joint-Datensatz-Form — sodass ein Agent dieselbe Durchsetzung erhält wie jeder andere Konsument.

/osl/ ist die v1-Wurzel. Eine v2 mit Breaking Changes würde unter /osl/v2/ leben, während /osl/ den v1-Vertrag mindestens zwei aufeinanderfolgende Minor-Versionen lang weiter bedient. Endpoints DÜRFEN innerhalb von v1.x optionale Response-Felder ergänzen; Clients MÜSSEN unbekannte Felder ignorieren.