Architecture

High-level platform

                     OneOpen ML Studio
                            │
          ┌─────────────────┴─────────────────┐
          │                                   │
     Web Application                     Public API
          │                                   │
          └─────────────────┬─────────────────┘
                            │
                   Authentication Layer
                   (Local: optional / off)
                   (Team/Enterprise: required)
                            │
                     FastAPI API Layer
                            │
    ┌───────────────────────┼───────────────────────┐
    │                       │                       │
Identity & Access    Data Lifecycle            ML Lifecycle
    │                       │                       │
 Orgs / Workspaces     Projects / Datasets     Training
 Users / Roles         Annotation / Review     Experiments
 Permissions           Validation / Versions   Model Registry
                       Transform / Export      Deployment export
                            │
                     Workflow Engine
                            │
              ┌─────────────┴─────────────┐
              │                           │
       Background Jobs              Events (planned)
       In-process or                WebSockets / cursors
       Redis / Celery
              │
     CPU / GPU Inference / GPU Training Workers
              │
     PostgreSQL|SQLite · Redis · Object Storage (local/S3/MinIO)

Shipped today: modular FastAPI + Jinja UI; Local (SQLite, local files, in-process train); Team/Enterprise modes with /setup, Postgres/Redis/MinIO via Compose, Celery workers when Redis is configured, visual pipeline editor, experiments, model registry.

Still planned: full SSO login handshake, realtime WebSockets/cursors, HA operators beyond the K8s starter.

Platform modes

Mode

Auth

Storage

Workers

Local

None by default (single workstation)

SQLite + filesystem

In-process

Team

Users, roles, sessions, API tokens

PostgreSQL, Redis, MinIO/S3 (Compose)

Celery when Redis set

Enterprise

Team auth + SSO config stubs, audit

Same + K8s starter

Same; handshake not fully wired

Set with ONEOPEN_DEPLOYMENT_MODE=local|team|enterprise.

Organizational hierarchy

Platform
└── Organization
    ├── Workspaces
    │   ├── Projects
    │   │   ├── Datasets
    │   │   ├── Annotation Tasks
    │   │   ├── Pipelines
    │   │   ├── Training Runs
    │   │   └── Models
    │   └── Members
    └── Organization Settings

This hierarchy is wired today: projects require a parent workspace; Local mode uses Personal → Default workspace.

Universal dataset schema (direction)

Internal samples are framework-neutral (not YOLO/COCO-native). Export adapters convert to Ultralytics, COCO, Hugging Face, etc.

Conceptual sample:

{
  "sample_id": "sample_000123",
  "modality": "image",
  "task": {"type": "object_detection", "schema_version": "1.0"},
  "source": {"uri": "…", "checksum": "sha256-…", "mime_type": "image/jpeg"},
  "annotations": [],
  "predictions": [],
  "metadata": {},
  "lineage": {"dataset_version": "v5", "transformations": []}
}

Plugin surfaces (target)

oneopen.datasource · importer · annotation · model · auto_labeler
oneopen.validator · transform · augmentation · splitter · exporter
oneopen.trainer · evaluator · metric · visualization · notification

Training adapters

Shipped adapters cover Ultralytics, LibreYOLO, Torchvision, sklearn, Hugging Face prepare, and modality packaging. Broader frameworks (XGBoost, Detectron2, MMDetection, spaCy, …) are direction — see Principles.

Suggested modular backend layout (evolution)

oneopen_ml_studio/
├── api/ identity/ projects/ data_sources/ datasets/
├── annotations/ reviews/ pipelines/
├── training/ experiments/ models/ active_learning/
├── plugins/ notifications/ audit/ storage/ workers/
└── common/

Start as a modular monolith; split services only when scale requires it.

Technology direction

Layer

Today

Direction

Frontend

Jinja + CSS + vanilla JS

React + TypeScript (future)

Backend

FastAPI, SQLAlchemy, Pydantic

Same

Local DB

SQLite

Server DB

PostgreSQL + Redis + Celery

Same

Object storage

Local FS; MinIO / S3 when configured

Same

Deploy

oneopen start; Docker Compose; K8s starter

Deeper HA operators

See Roadmap for shipped capabilities and planned work.