Skip to content

Architecture

Tech Stack

Layer Technology
Backend FastAPI + SQLAlchemy (async)
Database PostgreSQL
Auth Keycloak (OIDC)
Frontend HTMX + Jinja2
Real-time WebSockets + Redis

Core Entities

Tenant (organization)
  └── Workspace (container)
        └── Project (profile: miappe, isa, dissco, dwc)
              └── Entities (Investigation, Study, etc.)

Database Schema

Projects store entity data as JSONB:

CREATE TABLE projects (
    id UUID PRIMARY KEY,
    workspace_id UUID NOT NULL,
    name VARCHAR(255) NOT NULL,
    profile VARCHAR(100) NOT NULL,
    version VARCHAR(50) NOT NULL,
    data JSONB NOT NULL DEFAULT '{}'
);

Integration with metaseed

Metaseed Hub uses metaseed as a library:

from metaseed.ui.state import AppState
from metaseed.ui.services.export import export_to_bytes
from metaseed.ui.services.graph import build_graph

Key integrations:

Service Module Purpose
Entity forms metaseed.facade Dynamic form generation
Validation metaseed.validators Schema validation
Export metaseed.ui.services.export Excel export
Graph metaseed.ui.services.graph Visualization data