Skip to main content

PostgreSQL Database Architecture

NoETL uses PostgreSQL as its primary data store for platform metadata, execution tracking, and runtime state management. The system employs a dual-database architecture to separate platform operations from playbook workspaces.

Database Architecture​

Two-Database Design​

NoETL uses two separate PostgreSQL databases with distinct purposes:

1. NoETL Platform Database (noetl)​

Purpose: Stores all NoETL platform metadata and operational data.

  • Database Name: noetl (configurable via NOETL_POSTGRES_DB)
  • Schema: noetl (configurable via NOETL_SCHEMA)
  • Owner: noetl user (configurable via NOETL_USER)
  • Access: Isolated - only accessible by the noetl user
  • Location: noetl/database/ddl/postgres/schema_ddl.sql

Contains:

  • Playbook catalog and versions
  • Execution event logs and traces
  • Runtime registrations (servers, workers, brokers)
  • Credentials and keychain (encrypted)
  • Schedules and cron jobs
  • Transient execution variables

2. Demo/Playbook Database (demo_noetl)​

Purpose: Workspace for playbook operations and testing.

  • Database Name: demo_noetl (configurable via POSTGRES_DB)
  • Schema: public (configurable via POSTGRES_SCHEMA)
  • Owner: demo user (configurable via POSTGRES_USER)
  • Access: Used by playbooks for data operations
  • Extensions: plpython3u for Python-based transformations

Contains:

  • Playbook-created tables and data
  • Demo and test datasets
  • User-defined schemas and objects

Security Model​

The NoETL platform database is completely isolated:

  • NoETL User Privileges:

    • LOGIN privilege only (no CREATEDB)
    • Full access to noetl database and schema only
    • No access to demo_noetl or any other database
    • All platform tables, sequences, and functions are owned by noetl user
  • Demo User Privileges:

    • LOGIN and CREATEDB privileges
    • Full access to demo_noetl database
    • Can create additional databases for playbook testing
    • No access to noetl platform database

This separation ensures:

  1. Platform metadata cannot be accidentally modified by playbooks
  2. Playbook failures do not affect platform operations
  3. Clear security boundaries between system and user data

Database Schema​

Platform Tables (noetl schema)​

catalog​

Stores playbook definitions and versions.