Data tables
SQL storage with near-zero setup
Store and query relational data from scripts, flows, and apps. Windmill manages the database, credentials, and schema so you just write SQL.
Query from any language
TypeScript, Python, DuckDB, and raw SQL are supported. In TypeScript, string interpolation is automatically converted to parameterized queries to prevent SQL injection. Python uses positional arguments for the same purpose.
Read the docsSchema organization
Use schemas to organize tables within a datatable. Set a default search path per script or use schema.table syntax. Typically one or a few datatables per workspace, with schemas for logical separation.
Asset tracking and data lineage
Windmill auto-detects datatable usage in scripts and shows them as asset nodes in flows. Read vs write mode is detected automatically. Click through to the Database Explorer to inspect schemas and data.
Read the docsFull-code apps integration
Whitelist tables in raw_app.yaml and query them from backend runnables with SQL. The CLI generates a DATATABLES.md context file so AI coding assistants understand the data model.
Database Studio
A built-in app component for browsing, editing, and managing tables visually. Available in both the app editor and as a standalone tool.
Read the docsFrequently asked questions
Build your internal platform on Windmill
Scripts, flows, apps, and infrastructure in one place.