Skip to content

databrickslabs/ontos

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Ontos

A comprehensive data governance and management platform built for Databricks Unity Catalog.

Home

Overview

Ontos provides enterprise teams with the tools to organize, govern, and deliver high-quality data products following Data Mesh principles and industry standards like ODCS (Open Data Contract Standard) and ODPS (Open Data Product Specification).

Key Features

πŸ“Š Data Products

Group and manage related Databricks assets (tables, views, functions, models, dashboards) as cohesive, consumable products with clear ownership and lifecycle management.

πŸ“ Data Contracts

Define formal specifications for data assets with schema definitions, quality rules, SLOs, and semantic meaning following the ODCS v3.0.2 standard.

πŸ“¦ Datasets

Register and group existing data assets across systems (Unity Catalog, Snowflake) and environments (dev, staging, prod), bridging physical assets to formal contracts.

🏒 Organizational Structure

Organize data work using Domains, Teams, and Projects aligned with your organizational structure and data mesh architecture.

🧠 Semantic Models

Link technical data assets to business concepts through a knowledge graph, enabling semantic search and maintaining a shared vocabulary.

βœ… Compliance Automation

Define and enforce governance policies using a declarative DSL (Domain-Specific Language). Run automated compliance checks with configurable actions (tagging, notifications, enforcement).

πŸ” Asset Review Workflows

Enable Data Stewards to formally review and approve assets before production promotion, with AI-assisted analysis and full audit trails.

πŸ€– AI Integration (MCP)

Expose your data governance platform to AI assistants via the Model Context Protocol (MCP), enabling natural language queries and automation.

Architecture

Ontos is designed to run as a Databricks App:

  • Frontend: React + TypeScript with Tailwind CSS and Shadcn UI
  • Backend: Python + FastAPI with SQLAlchemy ORM
  • Database: PostgreSQL (or Databricks Lakebase in production)
  • Integration: Native Databricks SDK integration for Unity Catalog operations

Quick Start

Prerequisites

  • Python 3.10 - 3.12
  • Node.js 18+
  • Yarn (v1.x Classic)
  • Hatch (Python build tool)
  • PostgreSQL (for local development)

Installation

# Clone the repository
git clone https://github.com/larsgeorge/ontos.git
cd ontos

# Install frontend dependencies
cd src/frontend
yarn install

# Copy and configure environment
cd ../..
cp .env.example .env
# Edit .env with your configuration

Running Locally

Terminal 1 - Frontend:

cd src/frontend
yarn dev:frontend

Terminal 2 - Backend:

cd src
yarn dev:backend

Deploying to Databricks

databricks bundle deploy --var="catalog=app_data" --var="schema=app_ontos"
databricks apps deploy <app-name>

Documentation

Document Description
User Guide Comprehensive guide for end users
Configuring Environment variables, database setup, and deployment
Contributing Development setup, commit guidelines, and release process
API Docs Interactive API documentation (when running locally)
Compliance DSL Guide Quick start for writing compliance rules
Compliance DSL Reference Complete DSL syntax reference

User Roles

Ontos supports role-based access control with predefined roles:

Role Description
Admin Full system access
Data Governance Officer Broad governance oversight
Data Steward Review and approve contracts/products
Data Producer Create and manage data products
Data Consumer Discover and use data products
Security Officer Security and entitlements management

Project Structure

ontos/
β”œβ”€β”€ src/
β”‚   β”œβ”€β”€ backend/           # FastAPI backend
β”‚   β”‚   β”œβ”€β”€ src/
β”‚   β”‚   β”‚   β”œβ”€β”€ common/    # Shared utilities
β”‚   β”‚   β”‚   β”œβ”€β”€ controller/# Business logic managers
β”‚   β”‚   β”‚   β”œβ”€β”€ db_models/ # SQLAlchemy models
β”‚   β”‚   β”‚   β”œβ”€β”€ models/    # Pydantic API models
β”‚   β”‚   β”‚   β”œβ”€β”€ repositories/ # Database access
β”‚   β”‚   β”‚   └── routes/    # API endpoints
β”‚   β”‚   └── alembic/       # Database migrations
β”‚   β”œβ”€β”€ frontend/          # React frontend
β”‚   β”‚   └── src/
β”‚   β”‚       β”œβ”€β”€ components/# UI components
β”‚   β”‚       β”œβ”€β”€ views/     # Page components
β”‚   β”‚       β”œβ”€β”€ hooks/     # Custom React hooks
β”‚   β”‚       β”œβ”€β”€ stores/    # State management
β”‚   β”‚       └── types/     # TypeScript definitions
β”‚   β”œβ”€β”€ docs/              # Documentation
β”‚   └── scripts/           # Build and utility scripts
β”œβ”€β”€ docs/                  # Additional documentation
β”œβ”€β”€ CONTRIBUTING.md        # Contributing guidelines
└── README.md              # This file

Standards & Specifications

Ontos implements and integrates with these standards:

  • ODCS - Open Data Contract Standard (v3.0.2)
  • ODPS - Open Data Product Specification
  • MCP - Model Context Protocol for AI integration

Contributing

We welcome contributions! Please see our Contributing Guide for:

  • Development setup instructions
  • Commit message conventions (we use Conventional Commits)
  • Versioning and release process
  • Code style guidelines
  • Pull request process

License

This project is licensed under the Apache Software License 2.0 - see the LICENSE.txt file for details.


Version: 0.4.0
Maintained by: Databricks