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 viaNOETL_POSTGRES_DB) - Schema:
noetl(configurable viaNOETL_SCHEMA) - Owner:
noetluser (configurable viaNOETL_USER) - Access: Isolated - only accessible by the
noetluser - 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 viaPOSTGRES_DB) - Schema:
public(configurable viaPOSTGRES_SCHEMA) - Owner:
demouser (configurable viaPOSTGRES_USER) - Access: Used by playbooks for data operations
- Extensions:
plpython3ufor 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:
LOGINprivilege only (noCREATEDB)- Full access to
noetldatabase and schema only - No access to
demo_noetlor any other database - All platform tables, sequences, and functions are owned by
noetluser
-
Demo User Privileges:
LOGINandCREATEDBprivileges- Full access to
demo_noetldatabase - Can create additional databases for playbook testing
- No access to
noetlplatform database
This separation ensures:
- Platform metadata cannot be accidentally modified by playbooks
- Playbook failures do not affect platform operations
- Clear security boundaries between system and user data
Database Schema
Platform Tables (noetl schema)
catalog
Stores playbook definitions and versions.