94 Commits

Author SHA1 Message Date
mo 944635ffe1 feat(masking): add PII columns to generators + backfill (Faker-style, no deps)
Source generators (postgres/mysql/mongodb) now emit realistic PII
(name/email/phone/ip/iban/address/national_id/dob). deploy/mask_pii_setup.py
ALTERs the source tables and backfills a bounded sample so Debezium CDC and
OpenMetadata PII auto-classification see real sensitive values.
2026-06-27 02:50:28 +02:00
mo c70639c46d feat(dataflow): add OpenMetadata governance node + catalog edges + UI link
Data Flow graph now shows OpenMetadata as a governance node linked to all
sources and Trino (catalog edges); node inspector exposes an 'Open in
OpenMetadata' deep link and PII-columns-cataloged metric.
2026-06-27 02:43:22 +02:00
mo 3b247fa2bd feat(om): OpenMetadata integration — registry node, link, PII tag source
Add OpenMetadata node (atc-docker02 .47) to node_registry with UI links.
pii_catalog now reads OM column PII tags (Presidio auto-classification) as the
authoritative source, merged with the name heuristic; OPENMETADATA_URL wired
into the api service (token via atc.env).
2026-06-27 02:40:27 +02:00
mo 6f20e24b8b feat(ui): Data Flow tab — live lineage graph + PII overlay + movement triggers
New DataFlowView (topology-style): nodes positioned from /api/dataflow with
measured-anchor SVG edges and animated particles (active CDC + running
movements). PII overlay shows shield badges + per-column detail inspector.
Bottom strip triggers ETL movements and toggles the ETL agent. Wired into
SideNav (Data Flow) and App routing; added types + api helpers.
2026-06-27 02:09:38 +02:00
mo ee9357aa31 feat(dataflow): live Data Flow graph API + PII catalog
api/dataflow.py: node-link landscape (generators->sources->CDC/Kafka->sinks,
HDFS->Iceberg, sources->curated_masked) with live overlays (movement run state,
CDC volume, Trino counts) and PII overlay. api/pii_catalog.py: column PII
classification via Trino information_schema (OM-ready). Endpoints /api/dataflow,
/api/dataflow/{id}/run, /api/pii.
2026-06-27 02:04:46 +02:00
mo a724615a9a feat(etl): Hadoop->Trino movement DAG + movements registry + autonomous ETL-agents
- DAG hadoop_to_trino (deployed to Airflow) + worker hadoop_to_trino.py (on the
  Hadoop master) move HDFS historical_sales -> iceberg.hadoop.historical_sales_hdfs.
- api/movements.py: movement registry, Airflow trigger+watch, run tracking
  (state/duration/rows), endpoints /api/movements, /{id}/run, /runs.
- agent_ops.py: ETL-agent loop autonomously triggers movements on an interval
  and logs each run; /api/agent-ops/etl/toggle + etl status.
2026-06-27 01:59:35 +02:00
mo 921342442f feat(ui): Live Changes (CDC) tab — real-time Debezium stream with filters, volume bars and before/after diff 2026-06-27 01:44:26 +02:00
mo 1a454f76cf feat(cdc): live Debezium CDC consumer + /api/changes for the Changes dashboard
Add api/cdc_consumer.py: aiokafka background consumer subscribes to the CDC
topics (postgres_sales/mysql_hr/mongodb_supplychain + cassandra/neo4j), parses
Debezium before/after envelopes, keeps a ring buffer and publishes each change
live as type=cdc_change. Endpoints /api/changes, /api/changes/stats, /status.
2026-06-27 01:31:18 +02:00
mo 5147538b05 fix(agents): use in-memory PK pools for DML (avoid full-table scans on 54M-row tables) 2026-06-27 01:27:56 +02:00
mo 3c9661e7f9 feat(agents): autonomous guard-railed DML on source DBs for Debezium CDC
Add api/agent_ops.py: background loop performs small INSERT/UPDATE/DELETE on
public.sales_orders (PG), hr.employee_events (MySQL) and supplychain.events
(Mongo). Agent rows are tagged (notes/atc_agent); UPDATE/DELETE only ever touch
agent-created rows. Env kill-switch + interval + per-tick row cap. Endpoints
/api/agent-ops/{status,toggle,run-once}. Loop started in lifespan.
2026-06-27 01:25:08 +02:00
mo 96d490807a feat(hadoop): real Hive engine + filterable, detailed analytics with lineage
Deploys Apache Hive 3.1.3 (Derby metastore + external table over the HDFS
historical CSV, MapReduce exec) on the Hadoop master, so the engine comparison
shows a REAL measured Hive latency (~5.2s) next to live Trino (~0.3s); Impala
stays clearly-labelled representative. The API re-measures Hive over SSH on a
30-min TTL (cached + persisted, with a committed seed). Adds filters
(year/region/category/channel), a region×category heatmap, Trino exec stats,
and a "where is this data read from" lineage panel (Trino->S3/Iceberg/Parquet
with snapshot+files, Hive->HDFS/CSV with namenode+files). Mounts host SSH key
read-only into the api container for the live Hive benchmark.
2026-06-26 17:08:57 +00:00
mo 71a64d5a21 feat(hadoop): embedded lakehouse analytics + Impala/Hive vs Trino comparison
Adds an Analytics sub-tab to the Hadoop view with live KPIs and revenue
breakdowns (by year/region/category/channel) queried from Trino over
iceberg.hadoop.historical_sales, plus a query-engine comparison panel. Trino
latency is measured live; Impala and Hive are shown as clearly-labelled
representative figures (those engines are not deployed). New cached endpoints
/api/hadoop/analytics and /api/hadoop/engines.
2026-06-26 15:44:43 +00:00
mo 1147826dee fix(superset): disable Secure session cookie over HTTP so mo/bart can log in
Talisman forced Secure on the session cookie while Superset is served over
plain HTTP, so browsers never returned the cookie and every login failed CSRF
validation ("CSRF session token is missing"). Set session_cookie_secure=False
(+ SESSION_COOKIE_SECURE/WTF_CSRF_SSL_STRICT). Also rename S3 lakehouse prefix
iceberg-warehouse -> hadoop (Trino iceberg.hadoop.historical_sales) and repoint
the Superset dataset. Adds sanitized infra backup scripts.
2026-06-26 15:27:34 +00:00
mo 2d14eae55f feat(historical): offload historical_sales to S3 (Iceberg/Parquet on Dell ECS), repoint dashboard, drop Postgres copy 2026-06-26 11:38:30 +00:00
mo 8437ded990 topology: add direct source->Trino federated-query edges 2026-06-26 11:16:13 +00:00
mo 37c03b6881 feat(historical): durable Postgres-backed historical_sales + repoint Superset dashboard (no Trino downtime) 2026-06-26 09:43:21 +00:00
mo be2bbcbd92 feat(cdc): app-level Cassandra+Neo4j change events to Kafka (->S3) on generate 2026-06-26 09:21:17 +00:00
mo f4cd33b784 infra: historical sales -> iceberg.historical (Trino) + Superset dashboard scripts 2026-06-26 09:04:33 +00:00
mo 88ca338f5a feat: neo4j in topology + agent-driven datagen with activity log; fix all-sources generate 2026-06-26 08:51:39 +00:00
mo 9cbdccb403 infra: fix mongodb uuid encoding + combined DAG honors rows conf 2026-06-26 08:41:44 +00:00
mo 897ccaa9f3 api: non-blocking /sync via background refresher (full-scan counts cached) 2026-06-26 01:39:53 +00:00
mo d26698a0c7 infra: hadoop historical sales loader (HDFS partitioned by year) 2026-06-26 01:26:43 +00:00
mo 2f2cecd16f infra: neo4j generator creates indexes for fast relationship MERGE 2026-06-26 01:24:56 +00:00
mo 89b31c680a infra: fix cassandra (prepared stmt) + neo4j (drop APOC, grouped MERGE) generators 2026-06-26 01:24:06 +00:00
mo be526bb0e3 ui: Data Generation view (per-DB tabs, light generate, run status) + topology pulse 2026-06-26 01:17:51 +00:00
mo bac3a90775 api: pipeline_ops router (per-source generate trigger, run status, Trino sync counts) 2026-06-26 01:12:07 +00:00
mo 62b416d210 infra: mirror light per-source Airflow DAGs + generators (GEN_ROWS), fix script path 2026-06-26 01:07:23 +00:00
mo 9400f9410c Add scripts/save.sh helper for commit+push per change 2026-06-26 00:48:11 +00:00
mo 46b51a891c Add HDFS browser, SSH terminal, presentation editor, lab health panel
- HDFS WebHDFS file browser (api/hdfs_api.py + HdfsView)
- In-browser SSH terminal via paramiko WebSocket bridge (api/ssh_terminal.py + SshTerminal, xterm.js)
- Presentation deck editor (text + image upload) and CRUD endpoints
- Collapsible GPU matrix + new LabHealthPanel in SideNav
- Topology fixes (edge alignment, Hadoop node, compact nodes)
- nginx ws timeout bump for long-lived SSH sessions
2026-06-26 00:47:49 +00:00
mo fefe3016ad Fix dangling topology edge by routing wide ETL paths below intermediate nodes 2026-06-25 10:12:43 +00:00
mo ff2c31a6b5 Fix remaining Dutch string in DataQualityView 2026-06-25 10:00:07 +00:00
mo 41a8a3b18e Resizable workbench with proper scroll and fix chat message contrast.
Workbench drag handle for SQL/agent panels; dark-theme user bubbles and input field readable.
2026-06-25 01:42:25 +00:00
mo 4ff9f5589e Fix MySQL demo query for existing hr tables 2026-06-25 01:34:07 +00:00
mo 7da2dd60f0 Add MySQL/MongoDB consoles, fit topology without scroll, longer flow lines.
Compact workbench panel, collapsible infra bar, narrower topology nodes with wider inter-stage gaps for visible connection lines.
2026-06-25 01:33:48 +00:00
mo 4e1cf9ef6c Use equivalent 5M sin benchmark query on Trino 2026-06-25 01:24:58 +00:00
mo 2cf90c9e14 Fix Trino benchmark and sample queries for valid syntax and parallel demo 2026-06-25 01:24:35 +00:00
mo 170eb2418b Add agent workbench terminal and live PostgreSQL/Trino SQL consoles.
Clicking agents opens a dedicated terminal panel; topology PostgreSQL/Trino nodes open SQL workbench with ten demo queries and Postgres vs Trino benchmark.
2026-06-25 01:10:57 +00:00
mo d4538a002f ES/Kibana login: admin or elastic via lab credentials 2026-06-25 00:59:16 +00:00
mo c9faa517d1 Document Elasticsearch firewall rules for lab subnets 2026-06-25 00:56:38 +00:00
mo 9deda7fcb1 Full stack visibility: mo S3 buckets, Elasticsearch/Kibana UI and topology 2026-06-25 00:53:11 +00:00
mo 4a5aed21ee Point env_file to visible atc.env 2026-06-25 00:45:58 +00:00
mo 5320af2e60 Use visible atc.env instead of hidden .env for configuration 2026-06-25 00:45:44 +00:00
mo a11621b21f Add Command Center v2: DQ/RAG integration, S3 browser, Jupyter, GPU matrix.
Mirror mo/atc-GPU layout with config/, docs/, scripts/ for Gitea deploy.
2026-06-25 00:28:23 +00:00
mo fb9cc21c9a Add ATC Command Center v1 with light UI theme.
Agent hub dashboard, FastAPI backend, and Docker stack for VM 304 MCP.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-23 15:07:51 +02:00