{"ts":"2026-07-07T23:45:57+00:00","ok":true,"duration_s":19.18,"row_counts":{"cc_auto_rules":5,"cc_expense_batches":2,"cc_expense_lines":102,"cc_highlight_keywords":7,"clients":47,"clockify_imports":17,"comments":2,"invoices":3,"operators":2,"organization_members":3,"organizations":2,"pending_imports":6,"profiles":2,"project_rate_overrides":1,"projects":62,"team_members":9,"teams":2,"time_entries":4593,"users":2},"steps":{"dump":{"ok":true,"duration_s":17.38,"auth_users_bytes":4607,"public_bytes":2462552},"load_scrub":{"ok":true,"duration_s":0.19,"load_sql_bytes":2468434},"row_counts":{"ok":true,"duration_s":0.14,"tables":19,"total_rows":4869},"extract":{"ok":true,"duration_s":0.08,"out_file":"legacy-2026-07-07.json","bytes":221561},"transform":{"ok":true,"duration_s":1.02,"straggler_count":1,"warnings":1,"errors":[],"steps":{"preflight":{"source":0,"written":0},"2.1 parties -> tenant -> users":{"source":62,"written":59},"2.2 direct_client engagements":{"source":47,"written":47},"2.3 worker engagements + compensation terms":{"source":9,"written":9},"2.4 projects (+ rate overrides)":{"source":62,"written":62},"2.5 import batches":{"source":17,"written":17},"2.6 time entries":{"source":4593,"written":4593},"2.7 invoices + time-kind lines":{"source":3,"written":3},"2.8 CC expense batches/lines/rules/keywords":{"source":2,"written":116},"2.9 comments":{"source":2,"written":2}}},"extract_new":{"ok":true,"duration_s":0.07,"out_file":"new-2026-07-07.json","bytes":221569},"compare":{"ok":true,"duration_s":0.01,"result":"GREEN","failures":0,"failure_paths":[],"allowed":25},"backup_sidecar":{"ok":true,"duration_s":0.28,"file":"with-public-20260707-234616.sql.gz","bytes":475654,"retained":1}},"error":null}
{"ts":"2026-07-08T02:27:25+00:00","ok":false,"duration_s":0.03,"row_counts":null,"steps":{"dump":{"ok":false,"duration_s":0.0,"error":"SUPABASE_DB_* not configured (.supabase-export.env)"}},"error":"dump: SUPABASE_DB_* not configured (.supabase-export.env)"}
{"ts":"2026-07-08T02:32:48+00:00","ok":true,"duration_s":19.19,"row_counts":{"cc_auto_rules":5,"cc_expense_batches":2,"cc_expense_lines":102,"cc_highlight_keywords":7,"clients":47,"clockify_imports":17,"comments":2,"invoices":3,"operators":2,"organization_members":3,"organizations":2,"pending_imports":6,"profiles":2,"project_rate_overrides":1,"projects":62,"team_members":9,"teams":2,"time_entries":4593,"users":2},"steps":{"dump":{"ok":true,"duration_s":17.35,"auth_users_bytes":4607,"public_bytes":2462552},"load_scrub":{"ok":true,"duration_s":0.19,"load_sql_bytes":2468434},"row_counts":{"ok":true,"duration_s":0.16,"tables":19,"total_rows":4869},"extract":{"ok":true,"duration_s":0.08,"out_file":"legacy-2026-07-07.json","bytes":221561},"transform":{"ok":true,"duration_s":1.08,"straggler_count":1,"warnings":1,"errors":[],"steps":{"preflight":{"source":0,"written":0},"2.1 parties -> tenant -> users":{"source":62,"written":59},"2.2 direct_client engagements":{"source":47,"written":47},"2.3 worker engagements + compensation terms":{"source":9,"written":9},"2.4 projects (+ rate overrides)":{"source":62,"written":62},"2.5 import batches":{"source":17,"written":17},"2.6 time entries":{"source":4593,"written":4593},"2.7 invoices + time-kind lines":{"source":3,"written":3},"2.8 CC expense batches/lines/rules/keywords":{"source":2,"written":116},"2.9 comments":{"source":2,"written":2}}},"extract_new":{"ok":true,"duration_s":0.08,"out_file":"new-2026-07-07.json","bytes":221569},"compare":{"ok":true,"duration_s":0.02,"result":"GREEN","failures":0,"failure_paths":[],"allowed":25},"backup_sidecar":{"ok":true,"duration_s":0.21,"file":"with-public-20260708-023307.sql.gz","bytes":475779,"retained":2}},"error":null}
{"ts":"2026-07-08T03:27:37+00:00","ok":true,"duration_s":17.83,"row_counts":{"cc_auto_rules":5,"cc_expense_batches":2,"cc_expense_lines":102,"cc_highlight_keywords":7,"clients":47,"clockify_imports":17,"comments":2,"invoices":3,"operators":2,"organization_members":3,"organizations":2,"pending_imports":6,"profiles":2,"project_rate_overrides":1,"projects":62,"team_members":9,"teams":2,"time_entries":4593,"users":2},"steps":{"dump":{"ok":true,"duration_s":16.34,"auth_users_bytes":4607,"public_bytes":2462552},"load_scrub":{"ok":true,"duration_s":0.15,"load_sql_bytes":2468434},"row_counts":{"ok":true,"duration_s":0.11,"tables":19,"total_rows":4869},"extract":{"ok":true,"duration_s":0.06,"out_file":"legacy-2026-07-07.json","bytes":221561},"transform":{"ok":true,"duration_s":0.88,"straggler_count":1,"warnings":1,"errors":[],"steps":{"preflight":{"source":0,"written":0},"2.1 parties -> tenant -> users":{"source":62,"written":59},"2.2 direct_client engagements":{"source":47,"written":47},"2.3 worker engagements + compensation terms":{"source":9,"written":9},"2.4 projects (+ rate overrides)":{"source":62,"written":62},"2.5 import batches":{"source":17,"written":17},"2.6 time entries":{"source":4593,"written":4593},"2.7 invoices + time-kind lines":{"source":3,"written":3},"2.8 CC expense batches/lines/rules/keywords":{"source":2,"written":116},"2.9 comments":{"source":2,"written":2}}},"extract_new":{"ok":true,"duration_s":0.05,"out_file":"new-2026-07-07.json","bytes":221569},"compare":{"ok":true,"duration_s":0.01,"result":"GREEN","failures":0,"failure_paths":[],"allowed":25},"backup_sidecar":{"ok":true,"duration_s":0.21,"file":"with-public-20260708-032754.sql.gz","bytes":476193,"retained":3}},"error":null}
{"ts":"2026-07-08T04:27:06+00:00","ok":true,"duration_s":17.34,"row_counts":{"cc_auto_rules":5,"cc_expense_batches":2,"cc_expense_lines":102,"cc_highlight_keywords":7,"clients":47,"clockify_imports":17,"comments":2,"invoices":3,"operators":2,"organization_members":3,"organizations":2,"pending_imports":6,"profiles":2,"project_rate_overrides":1,"projects":62,"team_members":9,"teams":2,"time_entries":4593,"users":2},"steps":{"dump":{"ok":true,"duration_s":15.83,"auth_users_bytes":4607,"public_bytes":2462552},"load_scrub":{"ok":true,"duration_s":0.15,"load_sql_bytes":2468434},"row_counts":{"ok":true,"duration_s":0.12,"tables":19,"total_rows":4869},"extract":{"ok":true,"duration_s":0.06,"out_file":"legacy-2026-07-07.json","bytes":221561},"transform":{"ok":true,"duration_s":0.87,"straggler_count":1,"warnings":1,"errors":[],"steps":{"preflight":{"source":0,"written":0},"2.1 parties -> tenant -> users":{"source":62,"written":59},"2.2 direct_client engagements":{"source":47,"written":47},"2.3 worker engagements + compensation terms":{"source":9,"written":9},"2.4 projects (+ rate overrides)":{"source":62,"written":62},"2.5 import batches":{"source":17,"written":17},"2.6 time entries":{"source":4593,"written":4593},"2.7 invoices + time-kind lines":{"source":3,"written":3},"2.8 CC expense batches/lines/rules/keywords":{"source":2,"written":116},"2.9 comments":{"source":2,"written":2}}},"extract_new":{"ok":true,"duration_s":0.07,"out_file":"new-2026-07-07.json","bytes":221569},"compare":{"ok":true,"duration_s":0.01,"result":"GREEN","failures":0,"failure_paths":[],"allowed":25},"backup_sidecar":{"ok":true,"duration_s":0.21,"file":"with-public-20260708-042723.sql.gz","bytes":476444,"retained":4}},"error":null}
{"ts":"2026-07-08T05:09:00+00:00","ok":true,"duration_s":18.81,"row_counts":{"cc_auto_rules":5,"cc_expense_batches":2,"cc_expense_lines":102,"cc_highlight_keywords":7,"clients":47,"clockify_imports":17,"comments":2,"invoices":3,"operators":2,"organization_members":3,"organizations":2,"pending_imports":6,"profiles":2,"project_rate_overrides":1,"projects":62,"team_members":9,"teams":2,"time_entries":4593,"users":2},"steps":{"dump":{"ok":true,"duration_s":17.32,"auth_users_bytes":4607,"public_bytes":2462552},"load_scrub":{"ok":true,"duration_s":0.14,"load_sql_bytes":2468434},"row_counts":{"ok":true,"duration_s":0.13,"tables":19,"total_rows":4869},"extract":{"ok":true,"duration_s":0.06,"out_file":"legacy-2026-07-07.json","bytes":221561},"transform":{"ok":true,"duration_s":0.87,"straggler_count":1,"warnings":1,"errors":[],"steps":{"preflight":{"source":0,"written":0},"2.1 parties -> tenant -> users":{"source":62,"written":59},"2.2 direct_client engagements":{"source":47,"written":47},"2.3 worker engagements + compensation terms":{"source":9,"written":9},"2.4 projects (+ rate overrides)":{"source":62,"written":62},"2.5 import batches":{"source":17,"written":17},"2.6 time entries":{"source":4593,"written":4593},"2.7 invoices + time-kind lines":{"source":3,"written":3},"2.8 CC expense batches/lines/rules/keywords":{"source":2,"written":116},"2.9 comments":{"source":2,"written":2}}},"extract_new":{"ok":true,"duration_s":0.05,"out_file":"new-2026-07-07.json","bytes":221569},"compare":{"ok":true,"duration_s":0.01,"result":"GREEN","failures":0,"failure_paths":[],"allowed":25},"backup_sidecar":{"ok":true,"duration_s":0.21,"file":"with-public-20260708-050919.sql.gz","bytes":476740,"retained":5}},"error":null}
{"ts":"2026-07-08T05:58:31+00:00","ok":true,"duration_s":18.71,"row_counts":{"cc_auto_rules":5,"cc_expense_batches":2,"cc_expense_lines":102,"cc_highlight_keywords":7,"clients":47,"clockify_imports":17,"comments":2,"invoices":3,"operators":2,"organization_members":3,"organizations":2,"pending_imports":6,"profiles":2,"project_rate_overrides":1,"projects":62,"team_members":9,"teams":2,"time_entries":4593,"users":2},"steps":{"dump":{"ok":true,"duration_s":16.93,"auth_users_bytes":4607,"public_bytes":2462552},"load_scrub":{"ok":true,"duration_s":0.18,"load_sql_bytes":2468434},"row_counts":{"ok":true,"duration_s":0.14,"tables":19,"total_rows":4869},"extract":{"ok":true,"duration_s":0.07,"out_file":"legacy-2026-07-07.json","bytes":221561},"transform":{"ok":true,"duration_s":1.02,"straggler_count":1,"warnings":1,"errors":[],"steps":{"preflight":{"source":0,"written":0},"2.1 parties -> tenant -> users":{"source":62,"written":59},"2.2 direct_client engagements":{"source":47,"written":47},"2.3 worker engagements + compensation terms":{"source":9,"written":9},"2.4 projects (+ rate overrides)":{"source":62,"written":62},"2.5 import batches":{"source":17,"written":17},"2.6 time entries":{"source":4593,"written":4593},"2.7 invoices + time-kind lines":{"source":3,"written":3},"2.8 CC expense batches/lines/rules/keywords":{"source":2,"written":116},"2.9 comments":{"source":2,"written":2}}},"extract_new":{"ok":true,"duration_s":0.07,"out_file":"new-2026-07-07.json","bytes":221569},"compare":{"ok":true,"duration_s":0.01,"result":"GREEN","failures":0,"failure_paths":[],"allowed":25},"backup_sidecar":{"ok":true,"duration_s":0.27,"file":"with-public-20260708-055849.sql.gz","bytes":476790,"retained":6}},"error":null}
{"ts":"2026-07-08T07:06:08+00:00","ok":true,"duration_s":17.27,"row_counts":{"cc_auto_rules":5,"cc_expense_batches":2,"cc_expense_lines":102,"cc_highlight_keywords":7,"clients":47,"clockify_imports":17,"comments":2,"invoices":3,"operators":2,"organization_members":3,"organizations":2,"pending_imports":6,"profiles":2,"project_rate_overrides":1,"projects":62,"team_members":9,"teams":2,"time_entries":4593,"users":2},"steps":{"dump":{"ok":true,"duration_s":15.96,"auth_users_bytes":4607,"public_bytes":2462552},"load_scrub":{"ok":true,"duration_s":0.15,"load_sql_bytes":2468434},"row_counts":{"ok":true,"duration_s":0.01,"tables":19,"total_rows":4869},"extract":{"ok":true,"duration_s":0.06,"out_file":"legacy-2026-07-08.json","bytes":221561},"transform":{"ok":true,"duration_s":0.78,"straggler_count":1,"warnings":1,"errors":[],"steps":{"preflight":{"source":0,"written":0},"2.1 parties -> tenant -> users":{"source":62,"written":59},"2.2 direct_client engagements":{"source":47,"written":47},"2.3 worker engagements + compensation terms":{"source":9,"written":9},"2.4 projects (+ rate overrides)":{"source":62,"written":62},"2.5 import batches":{"source":17,"written":17},"2.6 time entries":{"source":4593,"written":4593},"2.7 invoices + time-kind lines":{"source":3,"written":3},"2.8 CC expense batches/lines/rules/keywords":{"source":2,"written":116},"2.9 comments":{"source":2,"written":2}}},"extract_new":{"ok":true,"duration_s":0.05,"out_file":"new-2026-07-08.json","bytes":221569},"compare":{"ok":true,"duration_s":0.01,"result":"GREEN","failures":0,"failure_paths":[],"allowed":25},"backup_sidecar":{"ok":true,"duration_s":0.22,"file":"with-public-20260708-070625.sql.gz","bytes":477383,"retained":7}},"error":null}
{"ts":"2026-07-08T07:31:46+00:00","ok":true,"duration_s":17.72,"row_counts":{"cc_auto_rules":5,"cc_expense_batches":2,"cc_expense_lines":102,"cc_highlight_keywords":7,"clients":47,"clockify_imports":17,"comments":2,"invoices":3,"operators":2,"organization_members":3,"organizations":2,"pending_imports":6,"profiles":2,"project_rate_overrides":1,"projects":62,"team_members":9,"teams":2,"time_entries":4593,"users":2},"steps":{"dump":{"ok":true,"duration_s":16.28,"auth_users_bytes":4607,"public_bytes":2462552},"load_scrub":{"ok":true,"duration_s":0.17,"load_sql_bytes":2468434},"row_counts":{"ok":true,"duration_s":0.01,"tables":19,"total_rows":4869},"extract":{"ok":true,"duration_s":0.07,"out_file":"legacy-2026-07-08.json","bytes":221561},"transform":{"ok":true,"duration_s":0.88,"straggler_count":1,"warnings":1,"errors":[],"steps":{"preflight":{"source":0,"written":0},"2.1 parties -> tenant -> users":{"source":62,"written":59},"2.2 direct_client engagements":{"source":47,"written":47},"2.3 worker engagements + compensation terms":{"source":9,"written":9},"2.4 projects (+ rate overrides)":{"source":62,"written":62},"2.5 import batches":{"source":17,"written":17},"2.6 time entries":{"source":4593,"written":4593},"2.7 invoices + time-kind lines":{"source":3,"written":3},"2.8 CC expense batches/lines/rules/keywords":{"source":2,"written":116},"2.9 comments":{"source":2,"written":2}}},"extract_new":{"ok":true,"duration_s":0.06,"out_file":"new-2026-07-08.json","bytes":221569},"compare":{"ok":true,"duration_s":0.01,"result":"GREEN","failures":0,"failure_paths":[],"allowed":25},"backup_sidecar":{"ok":true,"duration_s":0.23,"file":"with-public-20260708-073203.sql.gz","bytes":491183,"retained":8}},"error":null}
{"ts":"2026-07-08T10:29:59+00:00","ok":true,"duration_s":18.27,"row_counts":{"cc_auto_rules":5,"cc_expense_batches":2,"cc_expense_lines":102,"cc_highlight_keywords":7,"clients":47,"clockify_imports":17,"comments":2,"invoices":3,"operators":2,"organization_members":3,"organizations":2,"pending_imports":6,"profiles":2,"project_rate_overrides":1,"projects":62,"team_members":9,"teams":2,"time_entries":4593,"users":2},"steps":{"dump":{"ok":true,"duration_s":17.08,"auth_users_bytes":4607,"public_bytes":2462552},"load_scrub":{"ok":true,"duration_s":0.13,"load_sql_bytes":2468434},"row_counts":{"ok":true,"duration_s":0.01,"tables":19,"total_rows":4869},"extract":{"ok":true,"duration_s":0.05,"out_file":"legacy-2026-07-08.json","bytes":221561},"transform":{"ok":true,"duration_s":0.7,"straggler_count":1,"warnings":1,"errors":[],"steps":{"preflight":{"source":0,"written":0},"2.1 parties -> tenant -> users":{"source":62,"written":59},"2.2 direct_client engagements":{"source":47,"written":47},"2.3 worker engagements + compensation terms":{"source":9,"written":9},"2.4 projects (+ rate overrides)":{"source":62,"written":62},"2.5 import batches":{"source":17,"written":17},"2.6 time entries":{"source":4593,"written":4593},"2.7 invoices + time-kind lines":{"source":3,"written":3},"2.8 CC expense batches/lines/rules/keywords":{"source":2,"written":116},"2.9 comments":{"source":2,"written":2}}},"extract_new":{"ok":true,"duration_s":0.05,"out_file":"new-2026-07-08.json","bytes":221569},"compare":{"ok":true,"duration_s":0.05,"result":"GREEN","failures":0,"failure_paths":[],"allowed":25},"backup_sidecar":{"ok":true,"duration_s":0.19,"file":"with-public-20260708-103018.sql.gz","bytes":477589,"retained":9}},"error":null}
{"ts":"2026-07-09T10:30:00+00:00","ok":true,"duration_s":18.01,"row_counts":{"cc_auto_rules":5,"cc_expense_batches":2,"cc_expense_lines":102,"cc_highlight_keywords":7,"clients":47,"clockify_imports":17,"comments":2,"invoices":3,"operators":2,"organization_members":3,"organizations":2,"pending_imports":6,"profiles":2,"project_rate_overrides":1,"projects":62,"team_members":9,"teams":2,"time_entries":4593,"users":2},"steps":{"dump":{"ok":true,"duration_s":16.86,"auth_users_bytes":4607,"public_bytes":2462552},"load_scrub":{"ok":true,"duration_s":0.17,"load_sql_bytes":2468434},"row_counts":{"ok":true,"duration_s":0.01,"tables":19,"total_rows":4869},"extract":{"ok":true,"duration_s":0.05,"out_file":"legacy-2026-07-09.json","bytes":221561},"transform":{"ok":true,"duration_s":0.68,"straggler_count":1,"warnings":1,"errors":[],"steps":{"preflight":{"source":0,"written":0},"2.1 parties -> tenant -> users":{"source":62,"written":59},"2.2 direct_client engagements":{"source":47,"written":47},"2.3 worker engagements + compensation terms":{"source":9,"written":9},"2.4 projects (+ rate overrides)":{"source":62,"written":62},"2.5 import batches":{"source":17,"written":17},"2.6 time entries":{"source":4593,"written":4593},"2.7 invoices + time-kind lines":{"source":3,"written":3},"2.8 CC expense batches/lines/rules/keywords":{"source":2,"written":116},"2.9 comments":{"source":2,"written":2}}},"extract_new":{"ok":true,"duration_s":0.06,"out_file":"new-2026-07-09.json","bytes":221569},"compare":{"ok":true,"duration_s":0.01,"result":"GREEN","failures":0,"failure_paths":[],"allowed":24},"backup_sidecar":{"ok":true,"duration_s":0.17,"file":"with-public-20260709-103017.sql.gz","bytes":477666,"retained":10}},"error":null}
{"ts":"2026-07-10T10:30:00+00:00","ok":true,"duration_s":17.98,"row_counts":{"cc_auto_rules":5,"cc_expense_batches":2,"cc_expense_lines":102,"cc_highlight_keywords":7,"clients":47,"clockify_imports":17,"comments":2,"invoices":3,"operators":2,"organization_members":3,"organizations":2,"pending_imports":6,"profiles":2,"project_rate_overrides":1,"projects":62,"team_members":9,"teams":2,"time_entries":4593,"users":2},"steps":{"dump":{"ok":true,"duration_s":16.8,"auth_users_bytes":4607,"public_bytes":2462552},"load_scrub":{"ok":true,"duration_s":0.15,"load_sql_bytes":2468434},"row_counts":{"ok":true,"duration_s":0.02,"tables":19,"total_rows":4869},"extract":{"ok":true,"duration_s":0.09,"out_file":"legacy-2026-07-10.json","bytes":221561},"transform":{"ok":true,"duration_s":0.66,"straggler_count":1,"warnings":1,"errors":[],"steps":{"preflight":{"source":0,"written":0},"2.1 parties -> tenant -> users":{"source":62,"written":59},"2.2 direct_client engagements":{"source":47,"written":47},"2.3 worker engagements + compensation terms":{"source":9,"written":9},"2.4 projects (+ rate overrides)":{"source":62,"written":62},"2.5 import batches":{"source":17,"written":17},"2.6 time entries":{"source":4593,"written":4593},"2.7 invoices + time-kind lines":{"source":3,"written":3},"2.8 CC expense batches/lines/rules/keywords":{"source":2,"written":116},"2.9 comments":{"source":2,"written":2}}},"extract_new":{"ok":true,"duration_s":0.04,"out_file":"new-2026-07-10.json","bytes":221569},"compare":{"ok":true,"duration_s":0.01,"result":"GREEN","failures":0,"failure_paths":[],"allowed":24},"backup_sidecar":{"ok":true,"duration_s":0.21,"file":"with-public-20260710-103017.sql.gz","bytes":477715,"retained":11}},"error":null}
{"ts":"2026-07-11T03:40:22+00:00","ok":true,"duration_s":17.74,"row_counts":{"cc_auto_rules":5,"cc_expense_batches":2,"cc_expense_lines":102,"cc_highlight_keywords":7,"clients":47,"clockify_imports":17,"comments":2,"invoices":3,"operators":2,"organization_members":3,"organizations":2,"pending_imports":6,"profiles":2,"project_rate_overrides":1,"projects":62,"team_members":9,"teams":2,"time_entries":4593,"users":2},"steps":{"dump":{"ok":true,"duration_s":16.48,"auth_users_bytes":4607,"public_bytes":2462552},"load_scrub":{"ok":true,"duration_s":0.14,"load_sql_bytes":2468434},"row_counts":{"ok":true,"duration_s":0.01,"tables":19,"total_rows":4869},"extract":{"ok":true,"duration_s":0.05,"out_file":"legacy-2026-07-10.json","bytes":221561},"transform":{"ok":true,"duration_s":0.83,"straggler_count":1,"warnings":1,"errors":[],"steps":{"preflight":{"source":0,"written":0},"2.1 parties -> tenant -> users":{"source":62,"written":59},"2.2 direct_client engagements":{"source":47,"written":47},"2.3 worker engagements + compensation terms":{"source":9,"written":9},"2.4 projects (+ rate overrides)":{"source":62,"written":62},"2.5 import batches":{"source":17,"written":17},"2.6 time entries":{"source":4593,"written":4593},"2.7 invoices + time-kind lines":{"source":3,"written":3},"2.8 CC expense batches/lines/rules/keywords":{"source":2,"written":116},"2.9 comments":{"source":2,"written":2}}},"extract_new":{"ok":true,"duration_s":0.04,"out_file":"new-2026-07-10.json","bytes":221569},"compare":{"ok":true,"duration_s":0.01,"result":"GREEN","failures":0,"failure_paths":[],"allowed":25},"backup_sidecar":{"ok":true,"duration_s":0.18,"file":"with-public-20260711-034039.sql.gz","bytes":478820,"retained":12}},"error":null}
{"ts":"2026-07-11T09:54:05+00:00","ok":true,"duration_s":18.12,"row_counts":{"cc_auto_rules":5,"cc_expense_batches":2,"cc_expense_lines":102,"cc_highlight_keywords":7,"clients":47,"clockify_imports":17,"comments":2,"invoices":3,"operators":2,"organization_members":3,"organizations":2,"pending_imports":6,"profiles":2,"project_rate_overrides":1,"projects":62,"team_members":9,"teams":2,"time_entries":4593,"users":2},"steps":{"dump":{"ok":true,"duration_s":16.58,"auth_users_bytes":4607,"public_bytes":2462552},"load_scrub":{"ok":true,"duration_s":0.14,"load_sql_bytes":2468434},"row_counts":{"ok":true,"duration_s":0.01,"tables":19,"total_rows":4869},"extract":{"ok":true,"duration_s":0.06,"out_file":"legacy-2026-07-11.json","bytes":221561},"transform":{"ok":true,"duration_s":1.01,"straggler_count":1,"warnings":1,"errors":[],"steps":{"preflight":{"source":0,"written":0},"2.1 parties -> tenant -> users":{"source":62,"written":59},"2.2 direct_client engagements":{"source":47,"written":47},"2.3 worker engagements + compensation terms":{"source":9,"written":9},"2.4 projects (+ rate overrides)":{"source":62,"written":62},"2.5 import batches":{"source":17,"written":17},"2.6 time entries":{"source":4593,"written":4593},"2.7 invoices + time-kind lines":{"source":3,"written":3},"2.8 CC expense batches/lines/rules/keywords":{"source":2,"written":116},"2.9 comments":{"source":2,"written":2}}},"extract_new":{"ok":true,"duration_s":0.06,"out_file":"new-2026-07-11.json","bytes":221569},"compare":{"ok":true,"duration_s":0.01,"result":"GREEN","failures":0,"failure_paths":[],"allowed":25},"backup_sidecar":{"ok":true,"duration_s":0.24,"file":"with-public-20260711-095423.sql.gz","bytes":478871,"retained":13}},"error":null}
{"ts":"2026-07-11T10:29:59+00:00","ok":true,"duration_s":17.41,"row_counts":{"cc_auto_rules":5,"cc_expense_batches":2,"cc_expense_lines":102,"cc_highlight_keywords":7,"clients":47,"clockify_imports":17,"comments":2,"invoices":3,"operators":2,"organization_members":3,"organizations":2,"pending_imports":6,"profiles":2,"project_rate_overrides":1,"projects":62,"team_members":9,"teams":2,"time_entries":4593,"users":2},"steps":{"dump":{"ok":true,"duration_s":16.15,"auth_users_bytes":4607,"public_bytes":2462552},"load_scrub":{"ok":true,"duration_s":0.17,"load_sql_bytes":2468434},"row_counts":{"ok":true,"duration_s":0.01,"tables":19,"total_rows":4869},"extract":{"ok":true,"duration_s":0.05,"out_file":"legacy-2026-07-11.json","bytes":221561},"transform":{"ok":true,"duration_s":0.78,"straggler_count":1,"warnings":1,"errors":[],"steps":{"preflight":{"source":0,"written":0},"2.1 parties -> tenant -> users":{"source":62,"written":59},"2.2 direct_client engagements":{"source":47,"written":47},"2.3 worker engagements + compensation terms":{"source":9,"written":9},"2.4 projects (+ rate overrides)":{"source":62,"written":62},"2.5 import batches":{"source":17,"written":17},"2.6 time entries":{"source":4593,"written":4593},"2.7 invoices + time-kind lines":{"source":3,"written":3},"2.8 CC expense batches/lines/rules/keywords":{"source":2,"written":116},"2.9 comments":{"source":2,"written":2}}},"extract_new":{"ok":true,"duration_s":0.05,"out_file":"new-2026-07-11.json","bytes":221569},"compare":{"ok":true,"duration_s":0.01,"result":"GREEN","failures":0,"failure_paths":[],"allowed":25},"backup_sidecar":{"ok":true,"duration_s":0.19,"file":"with-public-20260711-103017.sql.gz","bytes":478953,"retained":14}},"error":null}
{"ts":"2026-07-11T10:59:02+00:00","ok":false,"duration_s":21.5,"row_counts":{"cc_auto_rules":5,"cc_expense_batches":2,"cc_expense_lines":102,"cc_highlight_keywords":7,"clients":47,"clockify_imports":17,"comments":2,"invoices":3,"operators":2,"organization_members":3,"organizations":2,"pending_imports":6,"profiles":2,"project_rate_overrides":1,"projects":62,"team_members":9,"teams":2,"time_entries":4593,"users":2},"steps":{"dump":{"ok":true,"duration_s":16.75,"auth_users_bytes":4607,"public_bytes":2462552},"load_scrub":{"ok":true,"duration_s":0.14,"load_sql_bytes":2468434},"row_counts":{"ok":true,"duration_s":0.01,"tables":19,"total_rows":4869},"extract":{"ok":true,"duration_s":0.04,"out_file":"legacy-2026-07-11.json","bytes":221561},"transform":{"ok":true,"duration_s":4.51,"straggler_count":1,"warnings":1,"errors":[],"steps":{"preflight":{"source":0,"written":0},"2.1 parties -> tenant -> users":{"source":62,"written":59},"2.2 direct_client engagements":{"source":47,"written":47},"2.3 worker engagements + compensation terms":{"source":9,"written":9},"2.4 projects (+ rate overrides)":{"source":62,"written":62},"2.5 import batches":{"source":17,"written":17},"2.6 time entries":{"source":4593,"written":4593},"2.7 invoices + time-kind lines":{"source":3,"written":3},"2.8 CC expense batches/lines/rules/keywords":{"source":2,"written":116},"2.9 comments":{"source":2,"written":2},"2.10 PlusROI sheet books":{"source":14724,"written":7710}}},"extract_new":{"ok":false,"duration_s":0.02,"error":"duplicate client name 'Alluvial Consulting' under operator 'PlusROI'"}},"error":"extract_new: duplicate client name 'Alluvial Consulting' under operator 'PlusROI'"}
{"ts":"2026-07-11T11:37:35+00:00","ok":false,"duration_s":20.38,"row_counts":{"cc_auto_rules":5,"cc_expense_batches":2,"cc_expense_lines":102,"cc_highlight_keywords":7,"clients":47,"clockify_imports":17,"comments":2,"invoices":3,"operators":2,"organization_members":3,"organizations":2,"pending_imports":6,"profiles":2,"project_rate_overrides":1,"projects":62,"team_members":9,"teams":2,"time_entries":4593,"users":2},"steps":{"dump":{"ok":true,"duration_s":16.13,"auth_users_bytes":4607,"public_bytes":2462552},"load_scrub":{"ok":true,"duration_s":0.12,"load_sql_bytes":2468434},"row_counts":{"ok":true,"duration_s":0.01,"tables":19,"total_rows":4869},"extract":{"ok":true,"duration_s":0.05,"out_file":"legacy-2026-07-11.json","bytes":221561},"transform":{"ok":true,"duration_s":4.03,"straggler_count":1,"warnings":1,"errors":[],"steps":{"preflight":{"source":0,"written":0},"2.1 parties -> tenant -> users":{"source":62,"written":59},"2.2 direct_client engagements":{"source":47,"written":47},"2.3 worker engagements + compensation terms":{"source":9,"written":9},"2.4 projects (+ rate overrides)":{"source":62,"written":62},"2.5 import batches":{"source":17,"written":17},"2.6 time entries":{"source":4593,"written":4593},"2.7 invoices + time-kind lines":{"source":3,"written":3},"2.8 CC expense batches/lines/rules/keywords":{"source":2,"written":116},"2.9 comments":{"source":2,"written":2},"2.10 PlusROI sheet books":{"source":14724,"written":7710}}},"extract_new":{"ok":false,"duration_s":0.02,"error":"duplicate client name 'Alluvial Consulting' under operator 'PlusROI'"}},"error":"extract_new: duplicate client name 'Alluvial Consulting' under operator 'PlusROI'"}
{"ts":"2026-07-11T16:31:40+00:00","ok":false,"duration_s":22.53,"row_counts":{"cc_auto_rules":5,"cc_expense_batches":2,"cc_expense_lines":102,"cc_highlight_keywords":7,"clients":47,"clockify_imports":17,"comments":2,"invoices":3,"operators":2,"organization_members":3,"organizations":2,"pending_imports":6,"profiles":2,"project_rate_overrides":1,"projects":62,"team_members":9,"teams":2,"time_entries":4593,"users":2},"steps":{"dump":{"ok":true,"duration_s":16.11,"auth_users_bytes":4607,"public_bytes":2462552},"load_scrub":{"ok":true,"duration_s":2.11,"load_sql_bytes":2468434},"row_counts":{"ok":true,"duration_s":0.02,"tables":19,"total_rows":4869},"extract":{"ok":true,"duration_s":0.07,"out_file":"legacy-2026-07-11.json","bytes":221561},"transform":{"ok":true,"duration_s":4.19,"straggler_count":1,"warnings":1,"errors":[],"steps":{"preflight":{"source":0,"written":0},"2.1 parties -> tenant -> users":{"source":62,"written":59},"2.2 direct_client engagements":{"source":47,"written":47},"2.3 worker engagements + compensation terms":{"source":9,"written":9},"2.4 projects (+ rate overrides)":{"source":62,"written":62},"2.5 import batches":{"source":17,"written":17},"2.6 time entries":{"source":4593,"written":4593},"2.7 invoices + time-kind lines":{"source":3,"written":3},"2.8 CC expense batches/lines/rules/keywords":{"source":2,"written":116},"2.9 comments":{"source":2,"written":2},"2.10 PlusROI sheet books":{"source":14724,"written":7710}}},"extract_new":{"ok":false,"duration_s":0.02,"error":"duplicate client name 'Alluvial Consulting' under operator 'PlusROI'"}},"error":"extract_new: duplicate client name 'Alluvial Consulting' under operator 'PlusROI'"}
{"ts":"2026-07-12T10:30:00+00:00","ok":false,"duration_s":20.48,"row_counts":{"cc_auto_rules":5,"cc_expense_batches":2,"cc_expense_lines":102,"cc_highlight_keywords":7,"clients":47,"clockify_imports":17,"comments":2,"invoices":3,"operators":2,"organization_members":3,"organizations":2,"pending_imports":6,"profiles":2,"project_rate_overrides":1,"projects":62,"team_members":9,"teams":2,"time_entries":4593,"users":2},"steps":{"dump":{"ok":true,"duration_s":16.3,"auth_users_bytes":4607,"public_bytes":2462552},"load_scrub":{"ok":true,"duration_s":0.12,"load_sql_bytes":2468434},"row_counts":{"ok":true,"duration_s":0.01,"tables":19,"total_rows":4869},"extract":{"ok":true,"duration_s":0.05,"out_file":"legacy-2026-07-12.json","bytes":221561},"transform":{"ok":true,"duration_s":3.98,"straggler_count":1,"warnings":1,"errors":[],"steps":{"preflight":{"source":0,"written":0},"2.1 parties -> tenant -> users":{"source":62,"written":59},"2.2 direct_client engagements":{"source":47,"written":47},"2.3 worker engagements + compensation terms":{"source":9,"written":9},"2.4 projects (+ rate overrides)":{"source":62,"written":62},"2.5 import batches":{"source":17,"written":17},"2.6 time entries":{"source":4593,"written":4593},"2.7 invoices + time-kind lines":{"source":3,"written":3},"2.8 CC expense batches/lines/rules/keywords":{"source":2,"written":116},"2.9 comments":{"source":2,"written":2},"2.10 PlusROI sheet books":{"source":14724,"written":7710}}},"extract_new":{"ok":false,"duration_s":0.02,"error":"duplicate client name 'Alluvial Consulting' under operator 'PlusROI'"}},"error":"extract_new: duplicate client name 'Alluvial Consulting' under operator 'PlusROI'"}
{"ts":"2026-07-12T19:06:22+00:00","ok":false,"duration_s":21.47,"row_counts":{"cc_auto_rules":5,"cc_expense_batches":2,"cc_expense_lines":102,"cc_highlight_keywords":7,"clients":47,"clockify_imports":17,"comments":2,"invoices":3,"operators":2,"organization_members":3,"organizations":2,"pending_imports":6,"profiles":2,"project_rate_overrides":1,"projects":62,"team_members":9,"teams":2,"time_entries":4593,"users":2},"steps":{"dump":{"ok":true,"duration_s":16.49,"auth_users_bytes":4607,"public_bytes":2462552},"load_scrub":{"ok":true,"duration_s":0.13,"load_sql_bytes":2468434},"row_counts":{"ok":true,"duration_s":0.01,"tables":19,"total_rows":4869},"extract":{"ok":true,"duration_s":0.05,"out_file":"legacy-2026-07-12.json","bytes":221561},"transform":{"ok":true,"duration_s":4.76,"straggler_count":1,"warnings":1,"errors":[],"steps":{"preflight":{"source":0,"written":0},"2.1 parties -> tenant -> users":{"source":62,"written":59},"2.2 direct_client engagements":{"source":47,"written":47},"2.3 worker engagements + compensation terms":{"source":9,"written":9},"2.4 projects (+ rate overrides)":{"source":62,"written":62},"2.5 import batches":{"source":17,"written":17},"2.6 time entries":{"source":4593,"written":4593},"2.7 invoices + time-kind lines":{"source":3,"written":3},"2.8 CC expense batches/lines/rules/keywords":{"source":2,"written":116},"2.9 comments":{"source":2,"written":2},"2.10 PlusROI sheet books":{"source":14724,"written":7710}}},"extract_new":{"ok":false,"duration_s":0.02,"error":"duplicate client name 'Alluvial Consulting' under operator 'PlusROI'"}},"error":"extract_new: duplicate client name 'Alluvial Consulting' under operator 'PlusROI'"}
{"ts":"2026-07-12T19:44:25+00:00","ok":true,"duration_s":17.67,"row_counts":{"cc_auto_rules":5,"cc_expense_batches":2,"cc_expense_lines":102,"cc_highlight_keywords":7,"clients":47,"clockify_imports":17,"comments":2,"invoices":3,"operators":2,"organization_members":3,"organizations":2,"pending_imports":6,"profiles":2,"project_rate_overrides":1,"projects":62,"team_members":9,"teams":2,"time_entries":4593,"users":2},"steps":{"dump":{"ok":true,"duration_s":16.26,"auth_users_bytes":4607,"public_bytes":2462552},"load_scrub":{"ok":true,"duration_s":0.13,"load_sql_bytes":2468434},"row_counts":{"ok":true,"duration_s":0.01,"tables":19,"total_rows":4869},"extract":{"ok":true,"duration_s":0.04,"out_file":"legacy-2026-07-12.json","bytes":221561},"transform":{"ok":true,"duration_s":0.91,"straggler_count":1,"warnings":1,"errors":[],"steps":{"preflight":{"source":0,"written":0},"2.1 parties -> tenant -> users":{"source":62,"written":292},"2.2 direct_client engagements":{"source":47,"written":47},"2.3 worker engagements + compensation terms":{"source":9,"written":9},"2.4 projects (+ rate overrides)":{"source":62,"written":62},"2.5 import batches":{"source":17,"written":17},"2.6 time entries":{"source":4593,"written":4593},"2.7 invoices + time-kind lines":{"source":3,"written":3},"2.8 CC expense batches/lines/rules/keywords":{"source":2,"written":116},"2.9 comments":{"source":2,"written":2},"2.10 PlusROI sheet books":{"source":0,"written":0}}},"extract_new":{"ok":true,"duration_s":0.05,"out_file":"new-2026-07-12.json","bytes":221575},"compare":{"ok":true,"duration_s":0.01,"result":"GREEN","failures":0,"failure_paths":[],"allowed":27},"backup_sidecar":{"ok":true,"duration_s":0.25,"file":"with-public-20260712-194443.sql.gz","bytes":855003,"retained":14}},"error":null}
{"ts":"2026-07-12T20:24:07+00:00","ok":true,"duration_s":18.17,"row_counts":{"cc_auto_rules":5,"cc_expense_batches":2,"cc_expense_lines":102,"cc_highlight_keywords":7,"clients":47,"clockify_imports":17,"comments":2,"invoices":3,"operators":2,"organization_members":3,"organizations":2,"pending_imports":6,"profiles":2,"project_rate_overrides":1,"projects":62,"team_members":9,"teams":2,"time_entries":4593,"users":2},"steps":{"dump":{"ok":true,"duration_s":16.86,"auth_users_bytes":4607,"public_bytes":2462552},"load_scrub":{"ok":true,"duration_s":0.13,"load_sql_bytes":2468434},"row_counts":{"ok":true,"duration_s":0.01,"tables":19,"total_rows":4869},"extract":{"ok":true,"duration_s":0.05,"out_file":"legacy-2026-07-12.json","bytes":221561},"transform":{"ok":true,"duration_s":0.74,"straggler_count":1,"warnings":1,"errors":[],"steps":{"preflight":{"source":0,"written":0},"2.1 parties -> tenant -> users":{"source":62,"written":292},"2.2 direct_client engagements":{"source":47,"written":47},"2.3 worker engagements + compensation terms":{"source":9,"written":9},"2.4 projects (+ rate overrides)":{"source":62,"written":62},"2.5 import batches":{"source":17,"written":17},"2.6 time entries":{"source":4593,"written":4593},"2.7 invoices + time-kind lines":{"source":3,"written":3},"2.8 CC expense batches/lines/rules/keywords":{"source":2,"written":116},"2.9 comments":{"source":2,"written":2},"2.10 PlusROI sheet books":{"source":0,"written":0}}},"extract_new":{"ok":true,"duration_s":0.06,"out_file":"new-2026-07-12.json","bytes":221575},"compare":{"ok":true,"duration_s":0.02,"result":"GREEN","failures":0,"failure_paths":[],"allowed":27},"backup_sidecar":{"ok":true,"duration_s":0.31,"file":"with-public-20260712-202425.sql.gz","bytes":867782,"retained":14}},"error":null}
{"ts":"2026-07-12T21:04:25+00:00","ok":true,"duration_s":17.64,"row_counts":{"cc_auto_rules":5,"cc_expense_batches":2,"cc_expense_lines":102,"cc_highlight_keywords":7,"clients":47,"clockify_imports":17,"comments":2,"invoices":3,"operators":2,"organization_members":3,"organizations":2,"pending_imports":6,"profiles":2,"project_rate_overrides":1,"projects":62,"team_members":9,"teams":2,"time_entries":4593,"users":2},"steps":{"dump":{"ok":true,"duration_s":16.36,"auth_users_bytes":4607,"public_bytes":2462552},"load_scrub":{"ok":true,"duration_s":0.13,"load_sql_bytes":2468434},"row_counts":{"ok":true,"duration_s":0.01,"tables":19,"total_rows":4869},"extract":{"ok":true,"duration_s":0.05,"out_file":"legacy-2026-07-12.json","bytes":221561},"transform":{"ok":true,"duration_s":0.75,"straggler_count":1,"warnings":1,"errors":[],"steps":{"preflight":{"source":0,"written":0},"2.1 parties -> tenant -> users":{"source":62,"written":292},"2.2 direct_client engagements":{"source":47,"written":47},"2.3 worker engagements + compensation terms":{"source":9,"written":9},"2.4 projects (+ rate overrides)":{"source":62,"written":62},"2.5 import batches":{"source":17,"written":17},"2.6 time entries":{"source":4593,"written":4593},"2.7 invoices + time-kind lines":{"source":3,"written":3},"2.8 CC expense batches/lines/rules/keywords":{"source":2,"written":116},"2.9 comments":{"source":2,"written":2},"2.10 PlusROI sheet books":{"source":0,"written":0}}},"extract_new":{"ok":true,"duration_s":0.05,"out_file":"new-2026-07-12.json","bytes":221575},"compare":{"ok":true,"duration_s":0.01,"result":"GREEN","failures":0,"failure_paths":[],"allowed":27},"backup_sidecar":{"ok":true,"duration_s":0.26,"file":"with-public-20260712-210443.sql.gz","bytes":855814,"retained":14}},"error":null}
{"ts":"2026-07-12T21:34:05+00:00","ok":true,"duration_s":17.63,"row_counts":{"cc_auto_rules":5,"cc_expense_batches":2,"cc_expense_lines":102,"cc_highlight_keywords":7,"clients":47,"clockify_imports":17,"comments":2,"invoices":3,"operators":2,"organization_members":3,"organizations":2,"pending_imports":6,"profiles":2,"project_rate_overrides":1,"projects":62,"team_members":9,"teams":2,"time_entries":4593,"users":2},"steps":{"dump":{"ok":true,"duration_s":16.35,"auth_users_bytes":4607,"public_bytes":2462552},"load_scrub":{"ok":true,"duration_s":0.12,"load_sql_bytes":2468434},"row_counts":{"ok":true,"duration_s":0.01,"tables":19,"total_rows":4869},"extract":{"ok":true,"duration_s":0.05,"out_file":"legacy-2026-07-12.json","bytes":221561},"transform":{"ok":true,"duration_s":0.76,"straggler_count":1,"warnings":1,"errors":[],"steps":{"preflight":{"source":0,"written":0},"2.1 parties -> tenant -> users":{"source":62,"written":292},"2.2 direct_client engagements":{"source":47,"written":47},"2.3 worker engagements + compensation terms":{"source":9,"written":9},"2.4 projects (+ rate overrides)":{"source":62,"written":62},"2.5 import batches":{"source":17,"written":17},"2.6 time entries":{"source":4593,"written":4593},"2.7 invoices + time-kind lines":{"source":3,"written":3},"2.8 CC expense batches/lines/rules/keywords":{"source":2,"written":116},"2.9 comments":{"source":2,"written":2},"2.10 PlusROI sheet books":{"source":0,"written":0}}},"extract_new":{"ok":true,"duration_s":0.05,"out_file":"new-2026-07-12.json","bytes":221575},"compare":{"ok":true,"duration_s":0.01,"result":"GREEN","failures":0,"failure_paths":[],"allowed":27},"backup_sidecar":{"ok":true,"duration_s":0.26,"file":"with-public-20260712-213422.sql.gz","bytes":855242,"retained":14}},"error":null}
{"ts":"2026-07-12T22:13:05+00:00","ok":true,"duration_s":18.9,"row_counts":{"cc_auto_rules":5,"cc_expense_batches":2,"cc_expense_lines":102,"cc_highlight_keywords":7,"clients":47,"clockify_imports":17,"comments":2,"invoices":3,"operators":2,"organization_members":3,"organizations":2,"pending_imports":6,"profiles":2,"project_rate_overrides":1,"projects":62,"team_members":9,"teams":2,"time_entries":4593,"users":2},"steps":{"dump":{"ok":true,"duration_s":17.58,"auth_users_bytes":4607,"public_bytes":2462552},"load_scrub":{"ok":true,"duration_s":0.14,"load_sql_bytes":2468434},"row_counts":{"ok":true,"duration_s":0.01,"tables":19,"total_rows":4869},"extract":{"ok":true,"duration_s":0.05,"out_file":"legacy-2026-07-12.json","bytes":221561},"transform":{"ok":true,"duration_s":0.78,"straggler_count":1,"warnings":1,"errors":[],"steps":{"preflight":{"source":0,"written":0},"2.1 parties -> tenant -> users":{"source":62,"written":292},"2.2 direct_client engagements":{"source":47,"written":47},"2.3 worker engagements + compensation terms":{"source":9,"written":9},"2.4 projects (+ rate overrides)":{"source":62,"written":62},"2.5 import batches":{"source":17,"written":17},"2.6 time entries":{"source":4593,"written":4593},"2.7 invoices + time-kind lines":{"source":3,"written":3},"2.8 CC expense batches/lines/rules/keywords":{"source":2,"written":116},"2.9 comments":{"source":2,"written":2},"2.10 PlusROI sheet books":{"source":0,"written":0}}},"extract_new":{"ok":true,"duration_s":0.05,"out_file":"new-2026-07-12.json","bytes":221575},"compare":{"ok":true,"duration_s":0.01,"result":"GREEN","failures":0,"failure_paths":[],"allowed":27},"backup_sidecar":{"ok":true,"duration_s":0.27,"file":"with-public-20260712-221324.sql.gz","bytes":855812,"retained":14}},"error":null}
{"ts":"2026-07-13T10:30:00+00:00","ok":true,"duration_s":19.28,"row_counts":{"cc_auto_rules":5,"cc_expense_batches":2,"cc_expense_lines":102,"cc_highlight_keywords":7,"clients":47,"clockify_imports":17,"comments":2,"invoices":3,"operators":2,"organization_members":3,"organizations":2,"pending_imports":6,"profiles":2,"project_rate_overrides":1,"projects":62,"team_members":9,"teams":2,"time_entries":4593,"users":2},"steps":{"dump":{"ok":true,"duration_s":18.02,"auth_users_bytes":4607,"public_bytes":2462552},"load_scrub":{"ok":true,"duration_s":0.16,"load_sql_bytes":2468434},"row_counts":{"ok":true,"duration_s":0.02,"tables":19,"total_rows":4869},"extract":{"ok":true,"duration_s":0.06,"out_file":"legacy-2026-07-13.json","bytes":221561},"transform":{"ok":true,"duration_s":0.7,"straggler_count":1,"warnings":1,"errors":[],"steps":{"preflight":{"source":0,"written":0},"2.1 parties -> tenant -> users":{"source":62,"written":292},"2.2 direct_client engagements":{"source":47,"written":47},"2.3 worker engagements + compensation terms":{"source":9,"written":9},"2.4 projects (+ rate overrides)":{"source":62,"written":62},"2.5 import batches":{"source":17,"written":17},"2.6 time entries":{"source":4593,"written":4593},"2.7 invoices + time-kind lines":{"source":3,"written":3},"2.8 CC expense batches/lines/rules/keywords":{"source":2,"written":116},"2.9 comments":{"source":2,"written":2},"2.10 PlusROI sheet books":{"source":0,"written":0}}},"extract_new":{"ok":true,"duration_s":0.05,"out_file":"new-2026-07-13.json","bytes":221576},"compare":{"ok":true,"duration_s":0.01,"result":"GREEN","failures":0,"failure_paths":[],"allowed":26},"backup_sidecar":{"ok":true,"duration_s":0.26,"file":"with-public-20260713-103019.sql.gz","bytes":858544,"retained":14}},"error":null}
{"ts":"2026-07-14T10:30:00+00:00","ok":true,"duration_s":18.44,"row_counts":{"cc_auto_rules":5,"cc_expense_batches":2,"cc_expense_lines":102,"cc_highlight_keywords":7,"clients":47,"clockify_imports":17,"comments":2,"invoices":3,"operators":2,"organization_members":3,"organizations":2,"pending_imports":6,"profiles":2,"project_rate_overrides":1,"projects":62,"team_members":9,"teams":2,"time_entries":4593,"users":2},"steps":{"dump":{"ok":true,"duration_s":17.19,"auth_users_bytes":4607,"public_bytes":2462552},"load_scrub":{"ok":true,"duration_s":0.17,"load_sql_bytes":2468434},"row_counts":{"ok":true,"duration_s":0.01,"tables":19,"total_rows":4869},"extract":{"ok":true,"duration_s":0.07,"out_file":"legacy-2026-07-14.json","bytes":221561},"transform":{"ok":true,"duration_s":0.69,"straggler_count":1,"warnings":1,"errors":[],"steps":{"preflight":{"source":0,"written":0},"2.1 parties -> tenant -> users":{"source":62,"written":292},"2.2 direct_client engagements":{"source":47,"written":47},"2.3 worker engagements + compensation terms":{"source":9,"written":9},"2.4 projects (+ rate overrides)":{"source":62,"written":62},"2.5 import batches":{"source":17,"written":17},"2.6 time entries":{"source":4593,"written":4593},"2.7 invoices + time-kind lines":{"source":3,"written":3},"2.8 CC expense batches/lines/rules/keywords":{"source":2,"written":116},"2.9 comments":{"source":2,"written":2},"2.10 PlusROI sheet books":{"source":0,"written":0}}},"extract_new":{"ok":true,"duration_s":0.05,"out_file":"new-2026-07-14.json","bytes":221576},"compare":{"ok":true,"duration_s":0.01,"result":"GREEN","failures":0,"failure_paths":[],"allowed":27},"backup_sidecar":{"ok":true,"duration_s":0.25,"file":"with-public-20260714-103018.sql.gz","bytes":858415,"retained":14}},"error":null}
{"ts":"2026-07-15T10:30:00+00:00","ok":true,"duration_s":18.01,"row_counts":{"cc_auto_rules":5,"cc_expense_batches":2,"cc_expense_lines":102,"cc_highlight_keywords":7,"clients":49,"clockify_imports":18,"comments":2,"invoices":3,"operators":2,"organization_members":3,"organizations":2,"pending_imports":6,"profiles":2,"project_rate_overrides":1,"projects":64,"team_members":9,"teams":2,"time_entries":4857,"users":2},"steps":{"dump":{"ok":true,"duration_s":16.75,"auth_users_bytes":4607,"public_bytes":2579744},"load_scrub":{"ok":true,"duration_s":0.13,"load_sql_bytes":2585626},"row_counts":{"ok":true,"duration_s":0.01,"tables":19,"total_rows":5138},"extract":{"ok":true,"duration_s":0.06,"out_file":"legacy-2026-07-15.json","bytes":223747},"transform":{"ok":true,"duration_s":0.71,"straggler_count":1,"warnings":1,"errors":[],"steps":{"preflight":{"source":0,"written":0},"2.1 parties -> tenant -> users":{"source":64,"written":294},"2.2 direct_client engagements":{"source":49,"written":49},"2.3 worker engagements + compensation terms":{"source":9,"written":9},"2.4 projects (+ rate overrides)":{"source":64,"written":64},"2.5 import batches":{"source":18,"written":18},"2.6 time entries":{"source":4857,"written":4857},"2.7 invoices + time-kind lines":{"source":3,"written":3},"2.8 CC expense batches/lines/rules/keywords":{"source":2,"written":116},"2.9 comments":{"source":2,"written":2},"2.10 PlusROI sheet books":{"source":0,"written":0}}},"extract_new":{"ok":true,"duration_s":0.05,"out_file":"new-2026-07-15.json","bytes":223762},"compare":{"ok":true,"duration_s":0.01,"result":"GREEN","failures":0,"failure_paths":[],"allowed":27},"backup_sidecar":{"ok":true,"duration_s":0.27,"file":"with-public-20260715-103017.sql.gz","bytes":877134,"retained":14}},"error":null}
{"ts":"2026-07-16T10:30:00+00:00","ok":true,"duration_s":17.5,"row_counts":{"cc_auto_rules":5,"cc_expense_batches":2,"cc_expense_lines":102,"cc_highlight_keywords":7,"clients":49,"clockify_imports":18,"comments":2,"invoices":3,"operators":2,"organization_members":3,"organizations":2,"pending_imports":6,"profiles":2,"project_rate_overrides":1,"projects":64,"team_members":9,"teams":2,"time_entries":4857,"users":2},"steps":{"dump":{"ok":true,"duration_s":16.18,"auth_users_bytes":4607,"public_bytes":2579744},"load_scrub":{"ok":true,"duration_s":0.15,"load_sql_bytes":2585626},"row_counts":{"ok":true,"duration_s":0.01,"tables":19,"total_rows":5138},"extract":{"ok":true,"duration_s":0.06,"out_file":"legacy-2026-07-16.json","bytes":223747},"transform":{"ok":true,"duration_s":0.73,"straggler_count":1,"warnings":1,"errors":[],"steps":{"preflight":{"source":0,"written":0},"2.1 parties -> tenant -> users":{"source":64,"written":294},"2.2 direct_client engagements":{"source":49,"written":49},"2.3 worker engagements + compensation terms":{"source":9,"written":9},"2.4 projects (+ rate overrides)":{"source":64,"written":64},"2.5 import batches":{"source":18,"written":18},"2.6 time entries":{"source":4857,"written":4857},"2.7 invoices + time-kind lines":{"source":3,"written":3},"2.8 CC expense batches/lines/rules/keywords":{"source":2,"written":116},"2.9 comments":{"source":2,"written":2},"2.10 PlusROI sheet books":{"source":0,"written":0}}},"extract_new":{"ok":true,"duration_s":0.05,"out_file":"new-2026-07-16.json","bytes":223762},"compare":{"ok":true,"duration_s":0.01,"result":"GREEN","failures":0,"failure_paths":[],"allowed":27},"backup_sidecar":{"ok":true,"duration_s":0.3,"file":"with-public-20260716-103017.sql.gz","bytes":875779,"retained":14}},"error":null}
{"ts":"2026-07-17T10:30:00+00:00","ok":true,"duration_s":17.37,"row_counts":{"cc_auto_rules":5,"cc_expense_batches":2,"cc_expense_lines":102,"cc_highlight_keywords":7,"clients":49,"clockify_imports":18,"comments":2,"invoices":3,"operators":2,"organization_members":3,"organizations":2,"pending_imports":6,"profiles":2,"project_rate_overrides":1,"projects":64,"team_members":9,"teams":2,"time_entries":4857,"users":2},"steps":{"dump":{"ok":true,"duration_s":16.11,"auth_users_bytes":4607,"public_bytes":2579744},"load_scrub":{"ok":true,"duration_s":0.13,"load_sql_bytes":2585626},"row_counts":{"ok":true,"duration_s":0.01,"tables":19,"total_rows":5138},"extract":{"ok":true,"duration_s":0.05,"out_file":"legacy-2026-07-17.json","bytes":223747},"transform":{"ok":true,"duration_s":0.75,"straggler_count":1,"warnings":1,"errors":[],"steps":{"preflight":{"source":0,"written":0},"2.1 parties -> tenant -> users":{"source":64,"written":294},"2.2 direct_client engagements":{"source":49,"written":49},"2.3 worker engagements + compensation terms":{"source":9,"written":9},"2.4 projects (+ rate overrides)":{"source":64,"written":64},"2.5 import batches":{"source":18,"written":18},"2.6 time entries":{"source":4857,"written":4857},"2.7 invoices + time-kind lines":{"source":3,"written":3},"2.8 CC expense batches/lines/rules/keywords":{"source":2,"written":116},"2.9 comments":{"source":2,"written":2},"2.10 PlusROI sheet books":{"source":0,"written":0}}},"extract_new":{"ok":true,"duration_s":0.05,"out_file":"new-2026-07-17.json","bytes":223762},"compare":{"ok":true,"duration_s":0.01,"result":"GREEN","failures":0,"failure_paths":[],"allowed":27},"backup_sidecar":{"ok":true,"duration_s":0.26,"file":"with-public-20260717-103017.sql.gz","bytes":875888,"retained":14}},"error":null}
{"ts":"2026-07-17T16:44:42+00:00","ok":true,"duration_s":18.37,"row_counts":{"cc_auto_rules":5,"cc_expense_batches":2,"cc_expense_lines":102,"cc_highlight_keywords":7,"clients":49,"clockify_imports":18,"comments":2,"invoices":3,"operators":2,"organization_members":3,"organizations":2,"pending_imports":6,"profiles":2,"project_rate_overrides":1,"projects":64,"team_members":9,"teams":2,"time_entries":4857,"users":2},"steps":{"dump":{"ok":true,"duration_s":16.79,"auth_users_bytes":4607,"public_bytes":2579744},"load_scrub":{"ok":true,"duration_s":0.28,"load_sql_bytes":2585626},"row_counts":{"ok":true,"duration_s":0.02,"tables":19,"total_rows":5138},"extract":{"ok":true,"duration_s":0.05,"out_file":"legacy-2026-07-17.json","bytes":223747},"transform":{"ok":true,"duration_s":0.88,"straggler_count":1,"warnings":1,"errors":[],"steps":{"preflight":{"source":0,"written":0},"2.1 parties -> tenant -> users":{"source":64,"written":294},"2.2 direct_client engagements":{"source":49,"written":49},"2.3 worker engagements + compensation terms":{"source":9,"written":9},"2.4 projects (+ rate overrides)":{"source":64,"written":64},"2.5 import batches":{"source":18,"written":18},"2.6 time entries":{"source":4857,"written":4857},"2.7 invoices + time-kind lines":{"source":3,"written":3},"2.8 CC expense batches/lines/rules/keywords":{"source":2,"written":116},"2.9 comments":{"source":2,"written":2},"2.10 PlusROI sheet books":{"source":0,"written":0}}},"extract_new":{"ok":true,"duration_s":0.06,"out_file":"new-2026-07-17.json","bytes":223762},"compare":{"ok":true,"duration_s":0.01,"result":"GREEN","failures":0,"failure_paths":[],"allowed":27},"backup_sidecar":{"ok":true,"duration_s":0.28,"file":"with-public-20260717-164500.sql.gz","bytes":875989,"retained":14}},"error":null}
{"ts":"2026-07-17T19:27:11+00:00","ok":true,"duration_s":17.93,"row_counts":{"cc_auto_rules":5,"cc_expense_batches":2,"cc_expense_lines":102,"cc_highlight_keywords":7,"clients":49,"clockify_imports":18,"comments":2,"invoices":3,"operators":2,"organization_members":3,"organizations":2,"pending_imports":6,"profiles":2,"project_rate_overrides":1,"projects":64,"team_members":9,"teams":2,"time_entries":4857,"users":2},"steps":{"dump":{"ok":true,"duration_s":16.65,"auth_users_bytes":4607,"public_bytes":2579744},"load_scrub":{"ok":true,"duration_s":0.12,"load_sql_bytes":2585626},"row_counts":{"ok":true,"duration_s":0.01,"tables":19,"total_rows":5138},"extract":{"ok":true,"duration_s":0.05,"out_file":"legacy-2026-07-17.json","bytes":223747},"transform":{"ok":true,"duration_s":0.75,"straggler_count":1,"warnings":1,"errors":[],"steps":{"preflight":{"source":0,"written":0},"2.1 parties -> tenant -> users":{"source":64,"written":294},"2.2 direct_client engagements":{"source":49,"written":49},"2.3 worker engagements + compensation terms":{"source":9,"written":9},"2.4 projects (+ rate overrides)":{"source":64,"written":64},"2.5 import batches":{"source":18,"written":18},"2.6 time entries":{"source":4857,"written":4857},"2.7 invoices + time-kind lines":{"source":3,"written":3},"2.8 CC expense batches/lines/rules/keywords":{"source":2,"written":116},"2.9 comments":{"source":2,"written":2},"2.10 PlusROI sheet books":{"source":0,"written":0}}},"extract_new":{"ok":true,"duration_s":0.06,"out_file":"new-2026-07-17.json","bytes":223762},"compare":{"ok":true,"duration_s":0.01,"result":"GREEN","failures":0,"failure_paths":[],"allowed":27},"backup_sidecar":{"ok":true,"duration_s":0.27,"file":"with-public-20260717-192729.sql.gz","bytes":875928,"retained":14}},"error":null}
{"ts":"2026-07-17T21:45:45+00:00","ok":true,"duration_s":18.4,"row_counts":{"cc_auto_rules":5,"cc_expense_batches":2,"cc_expense_lines":102,"cc_highlight_keywords":7,"clients":49,"clockify_imports":18,"comments":2,"invoices":3,"operators":2,"organization_members":3,"organizations":2,"pending_imports":6,"profiles":2,"project_rate_overrides":1,"projects":64,"team_members":9,"teams":2,"time_entries":4857,"users":2},"steps":{"dump":{"ok":true,"duration_s":17.07,"auth_users_bytes":4607,"public_bytes":2579744},"load_scrub":{"ok":true,"duration_s":0.18,"load_sql_bytes":2585626},"row_counts":{"ok":true,"duration_s":0.01,"tables":19,"total_rows":5138},"extract":{"ok":true,"duration_s":0.05,"out_file":"legacy-2026-07-17.json","bytes":223747},"transform":{"ok":true,"duration_s":0.77,"straggler_count":1,"warnings":1,"errors":[],"steps":{"preflight":{"source":0,"written":0},"2.1 parties -> tenant -> users":{"source":64,"written":294},"2.2 direct_client engagements":{"source":49,"written":49},"2.3 worker engagements + compensation terms":{"source":9,"written":9},"2.4 projects (+ rate overrides)":{"source":64,"written":64},"2.5 import batches":{"source":18,"written":18},"2.6 time entries":{"source":4857,"written":4857},"2.7 invoices + time-kind lines":{"source":3,"written":3},"2.8 CC expense batches/lines/rules/keywords":{"source":2,"written":116},"2.9 comments":{"source":2,"written":2},"2.10 PlusROI sheet books":{"source":0,"written":0}}},"extract_new":{"ok":true,"duration_s":0.05,"out_file":"new-2026-07-17.json","bytes":223762},"compare":{"ok":true,"duration_s":0.01,"result":"GREEN","failures":0,"failure_paths":[],"allowed":27},"backup_sidecar":{"ok":true,"duration_s":0.25,"file":"with-public-20260717-214603.sql.gz","bytes":875957,"retained":14}},"error":null}
{"ts":"2026-07-18T05:50:12+00:00","ok":true,"duration_s":23.92,"row_counts":{"cc_auto_rules":5,"cc_expense_batches":2,"cc_expense_lines":102,"cc_highlight_keywords":7,"clients":49,"clockify_imports":19,"comments":2,"invoices":3,"operators":2,"organization_members":3,"organizations":2,"pending_imports":7,"profiles":2,"project_rate_overrides":1,"projects":64,"team_members":9,"teams":2,"time_entries":5013,"users":2},"steps":{"dump":{"ok":true,"duration_s":22.62,"auth_users_bytes":4607,"public_bytes":2706659},"load_scrub":{"ok":true,"duration_s":0.15,"load_sql_bytes":2712541},"row_counts":{"ok":true,"duration_s":0.01,"tables":19,"total_rows":5296},"extract":{"ok":true,"duration_s":0.05,"out_file":"legacy-2026-07-17.json","bytes":223748},"transform":{"ok":true,"duration_s":0.76,"straggler_count":1,"warnings":1,"errors":[],"steps":{"preflight":{"source":0,"written":0},"2.1 parties -> tenant -> users":{"source":64,"written":294},"2.2 direct_client engagements":{"source":49,"written":49},"2.3 worker engagements + compensation terms":{"source":9,"written":9},"2.4 projects (+ rate overrides)":{"source":64,"written":64},"2.5 import batches":{"source":19,"written":19},"2.6 time entries":{"source":5013,"written":5013},"2.7 invoices + time-kind lines":{"source":3,"written":3},"2.8 CC expense batches/lines/rules/keywords":{"source":2,"written":116},"2.9 comments":{"source":2,"written":2},"2.10 PlusROI sheet books":{"source":0,"written":0}}},"extract_new":{"ok":true,"duration_s":0.05,"out_file":"new-2026-07-17.json","bytes":223763},"compare":{"ok":true,"duration_s":0.01,"result":"GREEN","failures":0,"failure_paths":[],"allowed":27},"backup_sidecar":{"ok":true,"duration_s":0.26,"file":"with-public-20260718-055036.sql.gz","bytes":885938,"retained":14}},"error":null}
{"ts":"2026-07-18T10:30:00+00:00","ok":true,"duration_s":16.97,"row_counts":{"cc_auto_rules":5,"cc_expense_batches":2,"cc_expense_lines":102,"cc_highlight_keywords":7,"clients":49,"clockify_imports":19,"comments":2,"invoices":3,"operators":2,"organization_members":3,"organizations":2,"pending_imports":7,"profiles":2,"project_rate_overrides":1,"projects":64,"team_members":9,"teams":2,"time_entries":5013,"users":2},"steps":{"dump":{"ok":true,"duration_s":15.9,"auth_users_bytes":4607,"public_bytes":2706659},"load_scrub":{"ok":true,"duration_s":0.11,"load_sql_bytes":2712541},"row_counts":{"ok":true,"duration_s":0.01,"tables":19,"total_rows":5296},"extract":{"ok":true,"duration_s":0.04,"out_file":"legacy-2026-07-18.json","bytes":223748},"transform":{"ok":true,"duration_s":0.6,"straggler_count":1,"warnings":1,"errors":[],"steps":{"preflight":{"source":0,"written":0},"2.1 parties -> tenant -> users":{"source":64,"written":294},"2.2 direct_client engagements":{"source":49,"written":49},"2.3 worker engagements + compensation terms":{"source":9,"written":9},"2.4 projects (+ rate overrides)":{"source":64,"written":64},"2.5 import batches":{"source":19,"written":19},"2.6 time entries":{"source":5013,"written":5013},"2.7 invoices + time-kind lines":{"source":3,"written":3},"2.8 CC expense batches/lines/rules/keywords":{"source":2,"written":116},"2.9 comments":{"source":2,"written":2},"2.10 PlusROI sheet books":{"source":0,"written":0}}},"extract_new":{"ok":true,"duration_s":0.08,"out_file":"new-2026-07-18.json","bytes":223763},"compare":{"ok":true,"duration_s":0.01,"result":"GREEN","failures":0,"failure_paths":[],"allowed":26},"backup_sidecar":{"ok":true,"duration_s":0.22,"file":"with-public-20260718-103016.sql.gz","bytes":886413,"retained":14}},"error":null}
{"ts":"2026-07-19T10:30:00+00:00","ok":true,"duration_s":18.48,"row_counts":{"cc_auto_rules":5,"cc_expense_batches":2,"cc_expense_lines":102,"cc_highlight_keywords":7,"clients":49,"clockify_imports":19,"comments":2,"invoices":3,"operators":2,"organization_members":3,"organizations":2,"pending_imports":7,"profiles":2,"project_rate_overrides":1,"projects":64,"team_members":9,"teams":2,"time_entries":5013,"users":2},"steps":{"dump":{"ok":true,"duration_s":17.27,"auth_users_bytes":4607,"public_bytes":2706659},"load_scrub":{"ok":true,"duration_s":0.17,"load_sql_bytes":2712541},"row_counts":{"ok":true,"duration_s":0.02,"tables":19,"total_rows":5296},"extract":{"ok":true,"duration_s":0.08,"out_file":"legacy-2026-07-19.json","bytes":223748},"transform":{"ok":true,"duration_s":0.64,"straggler_count":1,"warnings":1,"errors":[],"steps":{"preflight":{"source":0,"written":0},"2.1 parties -> tenant -> users":{"source":64,"written":294},"2.2 direct_client engagements":{"source":49,"written":49},"2.3 worker engagements + compensation terms":{"source":9,"written":9},"2.4 projects (+ rate overrides)":{"source":64,"written":64},"2.5 import batches":{"source":19,"written":19},"2.6 time entries":{"source":5013,"written":5013},"2.7 invoices + time-kind lines":{"source":3,"written":3},"2.8 CC expense batches/lines/rules/keywords":{"source":2,"written":116},"2.9 comments":{"source":2,"written":2},"2.10 PlusROI sheet books":{"source":0,"written":0}}},"extract_new":{"ok":true,"duration_s":0.05,"out_file":"new-2026-07-19.json","bytes":223763},"compare":{"ok":true,"duration_s":0.01,"result":"GREEN","failures":0,"failure_paths":[],"allowed":27},"backup_sidecar":{"ok":true,"duration_s":0.24,"file":"with-public-20260719-103018.sql.gz","bytes":885270,"retained":14}},"error":null}
{"ts":"2026-07-20T10:30:00+00:00","ok":true,"duration_s":16.74,"row_counts":{"cc_auto_rules":5,"cc_expense_batches":2,"cc_expense_lines":102,"cc_highlight_keywords":7,"clients":49,"clockify_imports":19,"comments":2,"invoices":3,"operators":2,"organization_members":3,"organizations":2,"pending_imports":7,"profiles":2,"project_rate_overrides":1,"projects":64,"team_members":9,"teams":2,"time_entries":5013,"users":2},"steps":{"dump":{"ok":true,"duration_s":15.53,"auth_users_bytes":4607,"public_bytes":2706659},"load_scrub":{"ok":true,"duration_s":0.15,"load_sql_bytes":2712541},"row_counts":{"ok":true,"duration_s":0.03,"tables":19,"total_rows":5296},"extract":{"ok":true,"duration_s":0.05,"out_file":"legacy-2026-07-20.json","bytes":223748},"transform":{"ok":true,"duration_s":0.65,"straggler_count":1,"warnings":1,"errors":[],"steps":{"preflight":{"source":0,"written":0},"2.1 parties -> tenant -> users":{"source":64,"written":294},"2.2 direct_client engagements":{"source":49,"written":49},"2.3 worker engagements + compensation terms":{"source":9,"written":9},"2.4 projects (+ rate overrides)":{"source":64,"written":64},"2.5 import batches":{"source":19,"written":19},"2.6 time entries":{"source":5013,"written":5013},"2.7 invoices + time-kind lines":{"source":3,"written":3},"2.8 CC expense batches/lines/rules/keywords":{"source":2,"written":116},"2.9 comments":{"source":2,"written":2},"2.10 PlusROI sheet books":{"source":0,"written":0}}},"extract_new":{"ok":true,"duration_s":0.05,"out_file":"new-2026-07-20.json","bytes":223763},"compare":{"ok":true,"duration_s":0.01,"result":"GREEN","failures":0,"failure_paths":[],"allowed":27},"backup_sidecar":{"ok":true,"duration_s":0.27,"file":"with-public-20260720-103016.sql.gz","bytes":885427,"retained":14}},"error":null}
{"ts":"2026-07-21T10:30:00+00:00","ok":true,"duration_s":16.97,"row_counts":{"cc_auto_rules":5,"cc_expense_batches":2,"cc_expense_lines":102,"cc_highlight_keywords":7,"clients":49,"clockify_imports":19,"comments":2,"invoices":3,"operators":2,"organization_members":3,"organizations":2,"pending_imports":7,"profiles":2,"project_rate_overrides":1,"projects":64,"team_members":9,"teams":2,"time_entries":5013,"users":2},"steps":{"dump":{"ok":true,"duration_s":15.66,"auth_users_bytes":4607,"public_bytes":2706659},"load_scrub":{"ok":true,"duration_s":0.18,"load_sql_bytes":2712541},"row_counts":{"ok":true,"duration_s":0.02,"tables":19,"total_rows":5296},"extract":{"ok":true,"duration_s":0.06,"out_file":"legacy-2026-07-21.json","bytes":223748},"transform":{"ok":true,"duration_s":0.71,"straggler_count":1,"warnings":1,"errors":[],"steps":{"preflight":{"source":0,"written":0},"2.1 parties -> tenant -> users":{"source":64,"written":294},"2.2 direct_client engagements":{"source":49,"written":49},"2.3 worker engagements + compensation terms":{"source":9,"written":9},"2.4 projects (+ rate overrides)":{"source":64,"written":64},"2.5 import batches":{"source":19,"written":19},"2.6 time entries":{"source":5013,"written":5013},"2.7 invoices + time-kind lines":{"source":3,"written":3},"2.8 CC expense batches/lines/rules/keywords":{"source":2,"written":116},"2.9 comments":{"source":2,"written":2},"2.10 PlusROI sheet books":{"source":0,"written":0}}},"extract_new":{"ok":true,"duration_s":0.05,"out_file":"new-2026-07-21.json","bytes":223763},"compare":{"ok":true,"duration_s":0.01,"result":"GREEN","failures":0,"failure_paths":[],"allowed":27},"backup_sidecar":{"ok":true,"duration_s":0.27,"file":"with-public-20260721-103016.sql.gz","bytes":886116,"retained":14}},"error":null}
{"ts":"2026-07-22T10:30:00+00:00","ok":true,"duration_s":18.7,"row_counts":{"cc_auto_rules":5,"cc_expense_batches":2,"cc_expense_lines":102,"cc_highlight_keywords":7,"clients":49,"clockify_imports":19,"comments":2,"invoices":3,"operators":2,"organization_members":3,"organizations":2,"pending_imports":7,"profiles":2,"project_rate_overrides":1,"projects":64,"team_members":9,"teams":2,"time_entries":5013,"users":2},"steps":{"dump":{"ok":true,"duration_s":17.51,"auth_users_bytes":4607,"public_bytes":2707089},"load_scrub":{"ok":true,"duration_s":0.13,"load_sql_bytes":2712971},"row_counts":{"ok":true,"duration_s":0.01,"tables":19,"total_rows":5296},"extract":{"ok":true,"duration_s":0.05,"out_file":"legacy-2026-07-22.json","bytes":223788},"transform":{"ok":true,"duration_s":0.69,"straggler_count":1,"warnings":1,"errors":[],"steps":{"preflight":{"source":0,"written":0},"2.1 parties -> tenant -> users":{"source":64,"written":294},"2.2 direct_client engagements":{"source":49,"written":49},"2.3 worker engagements + compensation terms":{"source":9,"written":9},"2.4 projects (+ rate overrides)":{"source":64,"written":64},"2.5 import batches":{"source":19,"written":19},"2.6 time entries":{"source":5013,"written":5013},"2.7 invoices + time-kind lines":{"source":3,"written":3},"2.8 CC expense batches/lines/rules/keywords":{"source":2,"written":116},"2.9 comments":{"source":2,"written":2},"2.10 PlusROI sheet books":{"source":0,"written":0}}},"extract_new":{"ok":true,"duration_s":0.06,"out_file":"new-2026-07-22.json","bytes":223803},"compare":{"ok":true,"duration_s":0.01,"result":"GREEN","failures":0,"failure_paths":[],"allowed":27},"backup_sidecar":{"ok":true,"duration_s":0.24,"file":"with-public-20260722-103018.sql.gz","bytes":886138,"retained":14}},"error":null}
{"ts":"2026-07-23T10:30:00+00:00","ok":true,"duration_s":19.8,"row_counts":{"cc_auto_rules":5,"cc_expense_batches":2,"cc_expense_lines":102,"cc_highlight_keywords":7,"clients":49,"clockify_imports":19,"comments":2,"invoices":3,"operators":2,"organization_members":3,"organizations":2,"pending_imports":7,"profiles":2,"project_rate_overrides":1,"projects":64,"team_members":9,"teams":2,"time_entries":5013,"users":2},"steps":{"dump":{"ok":true,"duration_s":17.84,"auth_users_bytes":4607,"public_bytes":2707089},"load_scrub":{"ok":true,"duration_s":0.29,"load_sql_bytes":2712971},"row_counts":{"ok":true,"duration_s":0.16,"tables":19,"total_rows":5296},"extract":{"ok":true,"duration_s":0.18,"out_file":"legacy-2026-07-23.json","bytes":223788},"transform":{"ok":true,"duration_s":0.92,"straggler_count":1,"warnings":1,"errors":[],"steps":{"preflight":{"source":0,"written":0},"2.1 parties -> tenant -> users":{"source":64,"written":294},"2.2 direct_client engagements":{"source":49,"written":49},"2.3 worker engagements + compensation terms":{"source":9,"written":9},"2.4 projects (+ rate overrides)":{"source":64,"written":64},"2.5 import batches":{"source":19,"written":19},"2.6 time entries":{"source":5013,"written":5013},"2.7 invoices + time-kind lines":{"source":3,"written":3},"2.8 CC expense batches/lines/rules/keywords":{"source":2,"written":116},"2.9 comments":{"source":2,"written":2},"2.10 PlusROI sheet books":{"source":0,"written":0}}},"extract_new":{"ok":true,"duration_s":0.06,"out_file":"new-2026-07-23.json","bytes":223803},"compare":{"ok":true,"duration_s":0.01,"result":"GREEN","failures":0,"failure_paths":[],"allowed":27},"backup_sidecar":{"ok":true,"duration_s":0.32,"file":"with-public-20260723-103019.sql.gz","bytes":885798,"retained":14}},"error":null}
