ONEX Infrastructure - Service integration and database infrastructure tools
Project description
ONEX Infrastructure
Production infrastructure services for the ONEX execution layer. Handlers, adapters, and runtime services for PostgreSQL, Kafka, Consul, Vault, and Redis.
What is This?
This repository provides the infrastructure layer for ONEX-based systems. While omnibase_core defines the execution protocol and node archetypes, this package provides:
- Handlers for external services (database, HTTP, messaging)
- Adapters wrapping infrastructure clients
- Event bus abstractions for Kafka/Redpanda
- Runtime services deployable via Docker
Built on omnibase-core ^0.8.0 and omnibase-spi ^0.5.0.
Install Model
omnibase_infra serves two distinct purposes depending on how you use it:
As a library / runtime (pip install)
pip install omnibase-infra
# or
uv add omnibase-infra
This gives you the Python library and bundled runtime CLIs (onex-runtime, omni-infra,
onex-status, etc.). No clone required for library use or running the runtime.
For operational bootstrapping (clone required)
The operational scripts in scripts/ are not bundled in the pip package. A local
clone is required to run them:
git clone https://github.com/OmniNode-ai/omnibase_infra.git
cd omnibase_infra
uv sync
Scripts that require a clone:
scripts/seed-infisical.py— Populate Infisical from contract YAMLsscripts/bootstrap-infisical.sh— Full first-time Infisical bootstrapscripts/provision-infisical.py— Create machine identities
See CLAUDE.md — Install Model for the full decision matrix.
Quick Start
# Clone the repository
git clone https://github.com/OmniNode-ai/omnibase_infra.git
cd omnibase_infra
# Start infrastructure services with Docker
cd docker
cp .env.example .env
# Edit .env - set POSTGRES_PASSWORD (required for Docker fallback)
# Set OMNIBASE_INFRA_DB_URL (required for CLI/scripts; recommended for Docker)
docker compose -f docker-compose.infra.yml up -d
# Verify services are running
docker compose -f docker-compose.infra.yml ps
Docker Services
Self-contained infrastructure via docker-compose.infra.yml:
| Service | Profile | Port | Description |
|---|---|---|---|
| PostgreSQL | default | 5436 | Persistence (always starts) |
| Redpanda | default | 29092 | Event bus (always starts) |
| Valkey | default | 16379 | Caching (always starts) |
| Consul | consul |
28500 | Service discovery (optional) |
| Infisical | secrets |
8880 | Secrets management (optional) |
| Runtime | runtime |
8085 | ONEX runtime services (optional) |
Profiles:
# Infrastructure only (default)
docker compose -f docker-compose.infra.yml up -d
# With service discovery
docker compose -f docker-compose.infra.yml --profile consul up -d
# With secrets management
docker compose -f docker-compose.infra.yml --profile secrets up -d
# Everything
docker compose -f docker-compose.infra.yml --profile full up -d
Configure via .env file - see docker/README.md for details.
Documentation
| I want to... | Go to... |
|---|---|
| Get started quickly | Quick Start Guide |
| Understand the architecture | Architecture Overview |
| Deploy with Docker | Docker Guide |
| See a complete example | Registration Walkthrough |
| Write a contract | Contract Reference |
| Find implementation patterns | Pattern Documentation |
| Read coding standards | CLAUDE.md |
Full documentation: docs/index.md
Repository Structure
src/omnibase_infra/
├── handlers/ # Request/message handlers
├── event_bus/ # Kafka/Redpanda abstractions
├── clients/ # Service clients
├── models/ # Pydantic models
├── nodes/ # ONEX nodes (Effect, Compute, Reducer, Orchestrator)
├── errors/ # Error hierarchy
├── mixins/ # Reusable behaviors
└── enums/ # Centralized enums
Development
# Install dependencies
uv sync
# Run tests
uv run pytest
# Type checking
uv run mypy src/omnibase_infra/
# Format code
uv run ruff format .
uv run ruff check --fix .
Pre-commit Hooks Setup
Run once after cloning:
uv run pre-commit install
uv run pre-commit install --hook-type pre-push
Contributing
See CONTRIBUTING.md for commit conventions and PR guidelines.
License
MIT License - see LICENSE for details.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file omnibase_infra-0.20.1.tar.gz.
File metadata
- Download URL: omnibase_infra-0.20.1.tar.gz
- Upload date:
- Size: 6.5 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.10.10 {"installer":{"name":"uv","version":"0.10.10","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
910b1d65a7eb389b1a56196e7ee5235c22a4977e48498c453435242cb9a5434f
|
|
| MD5 |
d94debc6f03c0bfb2643e5ed2a097385
|
|
| BLAKE2b-256 |
81ef1c6ae6766aa0dd77c2710bbd60f5c44f34fb0050511cfe112a63f00c34cf
|
File details
Details for the file omnibase_infra-0.20.1-py3-none-any.whl.
File metadata
- Download URL: omnibase_infra-0.20.1-py3-none-any.whl
- Upload date:
- Size: 3.8 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.10.10 {"installer":{"name":"uv","version":"0.10.10","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
684a5e79aa8b0651c238248f6aa6a9486a5002f5ba0ad8f721028c642b2f14ff
|
|
| MD5 |
2c97841c1966c0580880829c7fffb4f7
|
|
| BLAKE2b-256 |
732fee93d47415f9ca3cd9a37eb52eee12bc6685e50f136ead667a98db992331
|