Dieu43 Query: architecture_mmd (directus DB)
WITH dbs AS ( SELECT datname AS db_name, replace(datname, '-', '') AS node_id, datname || ' ' || pg_size_pretty(pg_database_size(datname)) AS label FROM pg_database WHERE datistemplate = false ), scan_cfg AS ( SELECT COALESCE(value::jsonb, '[]'::jsonb) AS paths FROM dot_config WHERE key = 'context_pack_scan_paths' ), scan_paths AS ( SELECT 'scan' || regexp_replace(trim(both '/' from p.val), '[^a-zA-Z0-9]+', '_', 'g') AS node_id, p.val AS label FROM scan_cfg sc CROSS JOIN LATERAL jsonb_array_elements_text(sc.paths) AS p(val) ), edges AS ( SELECT 'agent_data' AS "from", node_id AS "to" FROM dbs WHERE db_name = 'incomex_metadata' UNION ALL SELECT 'directus_admin' AS "from", node_id AS "to" FROM dbs WHERE db_name = 'directus' ) SELECT 'flowchart' AS diagram_type, COALESCE( (SELECT jsonb_agg( jsonb_build_object('node_id', node_id, 'label', label) ORDER BY node_id ) FROM dbs), '[]'::jsonb ) AS database_nodes, COALESCE( (SELECT jsonb_agg( jsonb_build_object('node_id', node_id, 'label', label) ORDER BY node_id ) FROM scan_paths), '[]'::jsonb ) AS scan_path_nodes, COALESCE( (SELECT jsonb_agg( jsonb_build_object('from', "from", 'to', "to") ORDER BY "from", "to" ) FROM edges), '[]'::jsonb ) AS runtime_edges