Phase summary
UI surfaces (configure everything from the sidebar)
Validation contract (defense in depth)
Every IR write goes through three checks server-side:- HTTP body validation — Zod on each route
parsePipelineIR— Phase 1 two-phase validator (Zod + structural acyclic + ref-integrity)- AuditLog — every AI proposal + IR save + connector register
- All outbound webhooks + AI generator docs fetch + YAML HTTP runtime use
validateAndResolveSSRF guard - All SQL identifiers go through a strict identifier-regex check plus the safe-identifier helper
- Hook SQL: forbidden-leading-verb check (DROP/DELETE/UPDATE/TRUNCATE/INSERT/MERGE/COPY/GRANT/REVOKE/ALTER)
- Transform SQL:
sanitizeExpressionallowlist - All MCP write tools respect the read-only safety gate;
MCP_ALLOW_WRITES=trueunlocks
Lineage on every row
Every Phase 4 target write augments rows with a_kaireon_lineage
JSONB column:
ALTER TABLE ... ADD COLUMN IF NOT EXISTS runs before
every load. The future “Errors UI” + the MCP inspectFlowError tool
both query against this column.
Honest residuals
Each remaining gap has a clear runtime error or env gate, never a silent stub:
When a residual lifts, no UI or schema work is needed — the
configurable surface is already there.
Test + typecheck health
- All
lib/flowtest suites passing (json-bigint, build-insert-select, incremental-watermark, ir-to-react-flow, plus the existing 260+ pre-Phase-6 tests) npx tsc --noEmitclean acrosslib/flow,components/flow-editor, flow API routes- Eight Mintlify pages now cover every user-visible capability: pipeline-ir, ai-pipeline-authoring, mcp-flow-server, file-ingestion, loading-modes-validation, system-health, flow-editor-ui, flow-lineage.
Reading order
- Pipeline IR — the typed contract
- AI Pipeline Authoring — NL → IR
- MCP Flow Server — external-agent surface
- File Ingestion — source-side semantics
- Loading Modes & Validation — target-side semantics
- YAML Connectors — declarative HTTP/REST connectors