@datarecce/ui 0.1.41 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +28 -133
- package/dist/AuthModal-C8LetZNB.js +23 -0
- package/dist/AuthModal-C8LetZNB.js.map +1 -0
- package/dist/LineageCanvas-CR38SDYr.d.ts +41 -0
- package/dist/LineageCanvas-CR38SDYr.d.ts.map +1 -0
- package/dist/ResultErrorFallback-C7c-TN1p.js +3 -0
- package/dist/ResultErrorFallback-C7c-TN1p.js.map +1 -0
- package/dist/RouteConfigContext-z8YNimdP.d.ts +172 -0
- package/dist/RouteConfigContext-z8YNimdP.d.ts.map +1 -0
- package/dist/RunProgress-DyFIALbI.d.ts +429 -0
- package/dist/RunProgress-DyFIALbI.d.ts.map +1 -0
- package/dist/ScreenshotDataGrid-BfxYUThx.d.ts +64 -0
- package/dist/ScreenshotDataGrid-BfxYUThx.d.ts.map +1 -0
- package/dist/SplitPane-B-BLxZaQ.d.ts +1427 -0
- package/dist/SplitPane-B-BLxZaQ.d.ts.map +1 -0
- package/dist/advanced.d.ts +18 -0
- package/dist/advanced.d.ts.map +1 -0
- package/dist/advanced.js +3 -0
- package/dist/advanced.js.map +1 -0
- package/dist/api-ZZ4cc9b9.d.ts +255 -0
- package/dist/api-ZZ4cc9b9.d.ts.map +1 -0
- package/dist/api-_i6BZPkM.js +3 -0
- package/dist/api-_i6BZPkM.js.map +1 -0
- package/dist/api.d.ts +3 -2
- package/dist/api.js +2 -100
- package/dist/colors--47Kkns4.js +3 -0
- package/dist/colors--47Kkns4.js.map +1 -0
- package/dist/colors-vY9Yzui0.d.ts +255 -0
- package/dist/colors-vY9Yzui0.d.ts.map +1 -0
- package/dist/components-run.d.ts +8 -0
- package/dist/components-run.js +2 -0
- package/dist/components.d.ts +22 -2
- package/dist/components.js +2 -86
- package/dist/const-DbXBkrxT.js +3 -0
- package/dist/const-DbXBkrxT.js.map +1 -0
- package/dist/constants-DD5vJv2q.js +3 -0
- package/dist/constants-DD5vJv2q.js.map +1 -0
- package/dist/constants.d.ts +3 -0
- package/dist/constants.js +2 -0
- package/dist/contexts.d.ts +7 -0
- package/dist/contexts.js +2 -0
- package/dist/flag-CiR2E5oz.d.ts +898 -0
- package/dist/flag-CiR2E5oz.d.ts.map +1 -0
- package/dist/flag-koeDAqr3.js +3 -0
- package/dist/flag-koeDAqr3.js.map +1 -0
- package/dist/hooks.d.ts +15 -2
- package/dist/hooks.js +2 -43
- package/dist/index-BFkbe0aF.d.ts +698 -0
- package/dist/index-BFkbe0aF.d.ts.map +1 -0
- package/dist/index-Ba3hp2Ng.d.ts +471 -0
- package/dist/index-Ba3hp2Ng.d.ts.map +1 -0
- package/dist/index-C_kD4ZQ3.d.ts +1079 -0
- package/dist/index-C_kD4ZQ3.d.ts.map +1 -0
- package/dist/index-CiPcALu4.d.ts +146 -0
- package/dist/index-CiPcALu4.d.ts.map +1 -0
- package/dist/index-CkXLPYZY.d.ts +13 -0
- package/dist/index-CkXLPYZY.d.ts.map +1 -0
- package/dist/index-DTCpHvX_.d.ts +211 -0
- package/dist/index-DTCpHvX_.d.ts.map +1 -0
- package/dist/index-DVoQsx5c.d.ts +349 -0
- package/dist/index-DVoQsx5c.d.ts.map +1 -0
- package/dist/index-DmwYRgDR.d.ts +192 -0
- package/dist/index-DmwYRgDR.d.ts.map +1 -0
- package/dist/index-N8N7XmRj.d.ts +130 -0
- package/dist/index-N8N7XmRj.d.ts.map +1 -0
- package/dist/index-h_fw6R9U.d.ts +1501 -0
- package/dist/index-h_fw6R9U.d.ts.map +1 -0
- package/dist/index-o48TPoFN.d.ts +734 -0
- package/dist/index-o48TPoFN.d.ts.map +1 -0
- package/dist/index.d.ts +24 -2
- package/dist/index.js +2 -198
- package/dist/keepAlive-CEzyrDfg.js +3 -0
- package/dist/keepAlive-CEzyrDfg.js.map +1 -0
- package/dist/lib/api/axiosClient.d.ts +8 -0
- package/dist/lib/api/axiosClient.d.ts.map +1 -0
- package/dist/lib/api/axiosClient.js +3 -0
- package/dist/lib/api/axiosClient.js.map +1 -0
- package/dist/lib/api/track.d.ts +137 -0
- package/dist/lib/api/track.d.ts.map +1 -0
- package/dist/lib/api/track.js +2 -0
- package/dist/lib/api/user.d.ts +16 -0
- package/dist/lib/api/user.d.ts.map +1 -0
- package/dist/lib/api/user.js +2 -0
- package/dist/lib/const.d.ts +8 -0
- package/dist/lib/const.d.ts.map +1 -0
- package/dist/lib/const.js +2 -0
- package/dist/lib/result/ResultErrorFallback.d.ts +8 -0
- package/dist/lib/result/ResultErrorFallback.d.ts.map +1 -0
- package/dist/lib/result/ResultErrorFallback.js +2 -0
- package/dist/primitives-CgGUvwHB.d.ts +914 -0
- package/dist/primitives-CgGUvwHB.d.ts.map +1 -0
- package/dist/primitives.d.ts +12 -0
- package/dist/primitives.js +2 -0
- package/dist/result.d.ts +4 -0
- package/dist/result.js +2 -0
- package/dist/src-BgHSbbHk.js +67 -0
- package/dist/src-BgHSbbHk.js.map +1 -0
- package/dist/styles.css +478 -4
- package/dist/theme-CeWzymUn.js +64 -0
- package/dist/theme-CeWzymUn.js.map +1 -0
- package/dist/theme.d.ts +3 -2
- package/dist/theme.js +2 -9
- package/dist/track-9ZQpBlUK.js +3 -0
- package/dist/track-9ZQpBlUK.js.map +1 -0
- package/dist/types-CFbNxrx2.d.ts +171 -0
- package/dist/types-CFbNxrx2.d.ts.map +1 -0
- package/dist/types-CZre3j02.d.ts +231 -0
- package/dist/types-CZre3j02.d.ts.map +1 -0
- package/dist/types.d.ts +14 -2
- package/dist/types.js +3 -9
- package/dist/types.js.map +1 -0
- package/dist/useRecceServerFlag-Bg5R67J4.js +3 -0
- package/dist/useRecceServerFlag-Bg5R67J4.js.map +1 -0
- package/dist/useThemeColors--prVbMmM.js +3 -0
- package/dist/useThemeColors--prVbMmM.js.map +1 -0
- package/dist/useThemeColors-DHEroo8f.d.ts +104 -0
- package/dist/useThemeColors-DHEroo8f.d.ts.map +1 -0
- package/dist/user-DMT7E0fc.js +3 -0
- package/dist/user-DMT7E0fc.js.map +1 -0
- package/dist/utils-CW2skXm_.js +3 -0
- package/dist/utils-CW2skXm_.js.map +1 -0
- package/dist/utils-CXWhfyxC.js +5 -0
- package/dist/utils-CXWhfyxC.js.map +1 -0
- package/dist/utils.d.ts +7 -0
- package/dist/utils.js +2 -0
- package/package.json +115 -107
- package/LICENSE +0 -201
- package/dist/RecceCheckContext-BJprb2xR.js +0 -7968
- package/dist/RecceCheckContext-BJprb2xR.js.map +0 -1
- package/dist/RecceCheckContext-DPnWB_aU.css +0 -215
- package/dist/RecceCheckContext-DPnWB_aU.css.map +0 -1
- package/dist/RecceCheckContext-DbZ7BdRy.mjs +0 -7426
- package/dist/RecceCheckContext-DbZ7BdRy.mjs.map +0 -1
- package/dist/RecceCheckContext-DyxOeUsX.css +0 -215
- package/dist/RecceCheckContext-DyxOeUsX.css.map +0 -1
- package/dist/api.d.mts +0 -3
- package/dist/api.js.map +0 -1
- package/dist/api.mjs +0 -46
- package/dist/api.mjs.map +0 -1
- package/dist/components-BeAjVBV3.css +0 -70
- package/dist/components-BeAjVBV3.css.map +0 -1
- package/dist/components-DfXnN1Hx.js +0 -14689
- package/dist/components-DfXnN1Hx.js.map +0 -1
- package/dist/components-iUxcqtUB.css +0 -70
- package/dist/components-iUxcqtUB.css.map +0 -1
- package/dist/components-jh6r4tQn.mjs +0 -12348
- package/dist/components-jh6r4tQn.mjs.map +0 -1
- package/dist/components.d.mts +0 -3
- package/dist/components.mjs +0 -9
- package/dist/const-CaIm1Z8g.mjs +0 -12
- package/dist/const-CaIm1Z8g.mjs.map +0 -1
- package/dist/const-CvdZO0FN.js +0 -24
- package/dist/const-CvdZO0FN.js.map +0 -1
- package/dist/hooks-cQsBXBd1.js +0 -40
- package/dist/hooks-cQsBXBd1.js.map +0 -1
- package/dist/hooks-eaHm_yEp.mjs +0 -33
- package/dist/hooks-eaHm_yEp.mjs.map +0 -1
- package/dist/hooks.d.mts +0 -3
- package/dist/hooks.mjs +0 -8
- package/dist/html2canvas-pro.esm-CsuSOHXp.js +0 -7250
- package/dist/html2canvas-pro.esm-CsuSOHXp.js.map +0 -1
- package/dist/html2canvas-pro.esm-E7kpobrC.mjs +0 -7249
- package/dist/html2canvas-pro.esm-E7kpobrC.mjs.map +0 -1
- package/dist/index-B5bpmv0i.d.mts +0 -2172
- package/dist/index-B5bpmv0i.d.mts.map +0 -1
- package/dist/index-B9lSPJTi.d.ts +0 -2170
- package/dist/index-B9lSPJTi.d.ts.map +0 -1
- package/dist/index.d.mts +0 -3
- package/dist/index.js.map +0 -1
- package/dist/index.mjs +0 -20
- package/dist/index.mjs.map +0 -1
- package/dist/mui-theme-CUhybmBq.mjs +0 -696
- package/dist/mui-theme-CUhybmBq.mjs.map +0 -1
- package/dist/mui-theme-iBHkjXJq.js +0 -732
- package/dist/mui-theme-iBHkjXJq.js.map +0 -1
- package/dist/state-CTITyT0R.js +0 -795
- package/dist/state-CTITyT0R.js.map +0 -1
- package/dist/state-Sc2b4jri.mjs +0 -382
- package/dist/state-Sc2b4jri.mjs.map +0 -1
- package/dist/theme.d.mts +0 -3
- package/dist/theme.mjs +0 -4
- package/dist/tooltipMessage-BC5W7H3X.js +0 -13
- package/dist/tooltipMessage-BC5W7H3X.js.map +0 -1
- package/dist/tooltipMessage-B_xMIKWL.mjs +0 -7
- package/dist/tooltipMessage-B_xMIKWL.mjs.map +0 -1
- package/dist/types.d.mts +0 -3
- package/dist/types.mjs +0 -6
- package/dist/urls-BQW5wjg-.js +0 -13
- package/dist/urls-BQW5wjg-.js.map +0 -1
- package/dist/urls-DT7FVEcS.mjs +0 -7
- package/dist/urls-DT7FVEcS.mjs.map +0 -1
- package/dist/version-B9s8yne-.js +0 -300
- package/dist/version-B9s8yne-.js.map +0 -1
- package/dist/version-DP1kU_7v.mjs +0 -162
- package/dist/version-DP1kU_7v.mjs.map +0 -1
- package/recce-source/.editorconfig +0 -26
- package/recce-source/.flake8 +0 -37
- package/recce-source/.github/ISSUE_TEMPLATE/bug_report.yml +0 -67
- package/recce-source/.github/ISSUE_TEMPLATE/custom.md +0 -10
- package/recce-source/.github/ISSUE_TEMPLATE/feature_request.yml +0 -42
- package/recce-source/.github/PULL_REQUEST_TEMPLATE.md +0 -21
- package/recce-source/.github/copilot-instructions.md +0 -331
- package/recce-source/.github/instructions/backend-instructions.md +0 -541
- package/recce-source/.github/instructions/frontend-instructions.md +0 -317
- package/recce-source/.github/workflows/build-statics.yaml +0 -72
- package/recce-source/.github/workflows/bump.yaml +0 -48
- package/recce-source/.github/workflows/integration-tests-cloud.yaml +0 -92
- package/recce-source/.github/workflows/integration-tests-sqlmesh.yaml +0 -33
- package/recce-source/.github/workflows/integration-tests.yaml +0 -52
- package/recce-source/.github/workflows/nightly.yaml +0 -246
- package/recce-source/.github/workflows/release.yaml +0 -196
- package/recce-source/.github/workflows/tests-js.yaml +0 -58
- package/recce-source/.github/workflows/tests-python.yaml +0 -128
- package/recce-source/.pre-commit-config.yaml +0 -26
- package/recce-source/CLAUDE.md +0 -483
- package/recce-source/CODE_OF_CONDUCT.md +0 -128
- package/recce-source/CONTRIBUTING.md +0 -107
- package/recce-source/LICENSE +0 -201
- package/recce-source/Makefile +0 -126
- package/recce-source/README.md +0 -182
- package/recce-source/RECCE_CLOUD.md +0 -81
- package/recce-source/SECURITY.md +0 -25
- package/recce-source/docs/PACKAGING.md +0 -340
- package/recce-source/docs/README.md +0 -1
- package/recce-source/docs/plans/2024-12-31-csv-download-design.md +0 -121
- package/recce-source/docs/plans/2024-12-31-csv-download-implementation.md +0 -930
- package/recce-source/integration_tests/dbt/dbt_project.yml +0 -26
- package/recce-source/integration_tests/dbt/models/customers.sql +0 -69
- package/recce-source/integration_tests/dbt/models/docs.md +0 -14
- package/recce-source/integration_tests/dbt/models/orders.sql +0 -56
- package/recce-source/integration_tests/dbt/models/schema.yml +0 -82
- package/recce-source/integration_tests/dbt/models/staging/schema.yml +0 -31
- package/recce-source/integration_tests/dbt/models/staging/stg_customers.sql +0 -22
- package/recce-source/integration_tests/dbt/models/staging/stg_orders.sql +0 -23
- package/recce-source/integration_tests/dbt/models/staging/stg_payments.sql +0 -25
- package/recce-source/integration_tests/dbt/packages.yml +0 -7
- package/recce-source/integration_tests/dbt/profiles.yml +0 -8
- package/recce-source/integration_tests/dbt/seeds/raw_customers.csv +0 -101
- package/recce-source/integration_tests/dbt/seeds/raw_orders.csv +0 -100
- package/recce-source/integration_tests/dbt/seeds/raw_payments.csv +0 -114
- package/recce-source/integration_tests/dbt/seeds/raw_statuses.csv +0 -5
- package/recce-source/integration_tests/dbt/smoke_test.sh +0 -72
- package/recce-source/integration_tests/dbt/smoke_test_cloud.sh +0 -71
- package/recce-source/integration_tests/sqlmesh/__init__.py +0 -0
- package/recce-source/integration_tests/sqlmesh/audits/assert_item_price_above_zero.sql +0 -9
- package/recce-source/integration_tests/sqlmesh/audits/items.sql +0 -7
- package/recce-source/integration_tests/sqlmesh/audits/order_items.sql +0 -7
- package/recce-source/integration_tests/sqlmesh/config.py +0 -171
- package/recce-source/integration_tests/sqlmesh/helper.py +0 -20
- package/recce-source/integration_tests/sqlmesh/hooks/__init__.py +0 -0
- package/recce-source/integration_tests/sqlmesh/macros/__init__.py +0 -0
- package/recce-source/integration_tests/sqlmesh/macros/macros.py +0 -8
- package/recce-source/integration_tests/sqlmesh/macros/macros.sql +0 -8
- package/recce-source/integration_tests/sqlmesh/macros/utils.py +0 -11
- package/recce-source/integration_tests/sqlmesh/metrics/metrics.sql +0 -25
- package/recce-source/integration_tests/sqlmesh/models/customer_revenue_by_day.sql +0 -41
- package/recce-source/integration_tests/sqlmesh/models/customer_revenue_lifetime.sql +0 -60
- package/recce-source/integration_tests/sqlmesh/models/customers.sql +0 -32
- package/recce-source/integration_tests/sqlmesh/models/items.py +0 -95
- package/recce-source/integration_tests/sqlmesh/models/marketing.sql +0 -15
- package/recce-source/integration_tests/sqlmesh/models/order_items.py +0 -95
- package/recce-source/integration_tests/sqlmesh/models/orders.py +0 -70
- package/recce-source/integration_tests/sqlmesh/models/raw_marketing.py +0 -62
- package/recce-source/integration_tests/sqlmesh/models/top_waiters.sql +0 -23
- package/recce-source/integration_tests/sqlmesh/models/waiter_as_customer_by_day.sql +0 -29
- package/recce-source/integration_tests/sqlmesh/models/waiter_names.sql +0 -10
- package/recce-source/integration_tests/sqlmesh/models/waiter_revenue_by_day.sql +0 -29
- package/recce-source/integration_tests/sqlmesh/models/waiters.py +0 -62
- package/recce-source/integration_tests/sqlmesh/prep_env.sh +0 -16
- package/recce-source/integration_tests/sqlmesh/schema.yaml +0 -5
- package/recce-source/integration_tests/sqlmesh/seeds/waiter_names.csv +0 -11
- package/recce-source/integration_tests/sqlmesh/test_server.sh +0 -29
- package/recce-source/integration_tests/sqlmesh/tests/test_customer_revenue_by_day.yaml +0 -63
- package/recce-source/integration_tests/sqlmesh/tests/test_order_items.yaml +0 -72
- package/recce-source/js/.editorconfig +0 -27
- package/recce-source/js/.env.development +0 -5
- package/recce-source/js/.husky/pre-commit +0 -29
- package/recce-source/js/.nvmrc +0 -1
- package/recce-source/js/README.md +0 -39
- package/recce-source/js/app/(mainComponents)/DisplayModeToggle.tsx +0 -65
- package/recce-source/js/app/(mainComponents)/NavBar.tsx +0 -228
- package/recce-source/js/app/(mainComponents)/RecceVersionBadge.tsx +0 -107
- package/recce-source/js/app/(mainComponents)/TopBar.tsx +0 -252
- package/recce-source/js/app/@lineage/default.tsx +0 -20
- package/recce-source/js/app/@lineage/page.tsx +0 -14
- package/recce-source/js/app/MainLayout.tsx +0 -170
- package/recce-source/js/app/Providers.tsx +0 -49
- package/recce-source/js/app/checks/page.tsx +0 -296
- package/recce-source/js/app/error.tsx +0 -93
- package/recce-source/js/app/favicon.ico +0 -0
- package/recce-source/js/app/global-error.tsx +0 -115
- package/recce-source/js/app/global.css +0 -82
- package/recce-source/js/app/layout.tsx +0 -48
- package/recce-source/js/app/lineage/page.tsx +0 -15
- package/recce-source/js/app/page.tsx +0 -12
- package/recce-source/js/app/query/page.tsx +0 -8
- package/recce-source/js/biome.json +0 -313
- package/recce-source/js/jest.config.js +0 -34
- package/recce-source/js/jest.globals.d.ts +0 -32
- package/recce-source/js/jest.setup.js +0 -91
- package/recce-source/js/next.config.js +0 -16
- package/recce-source/js/package-lock.json +0 -13843
- package/recce-source/js/package.json +0 -123
- package/recce-source/js/pnpm-lock.yaml +0 -9235
- package/recce-source/js/pnpm-workspace.yaml +0 -6
- package/recce-source/js/postcss.config.js +0 -5
- package/recce-source/js/public/auth_callback.html +0 -68
- package/recce-source/js/public/imgs/feedback/thumbs-down.png +0 -0
- package/recce-source/js/public/imgs/feedback/thumbs-up.png +0 -0
- package/recce-source/js/public/imgs/reload-image.svg +0 -4
- package/recce-source/js/public/logo/recce-logo-white.png +0 -0
- package/recce-source/js/src/components/AuthModal/AuthModal.tsx +0 -202
- package/recce-source/js/src/components/app/AvatarDropdown.tsx +0 -159
- package/recce-source/js/src/components/app/EnvInfo.tsx +0 -357
- package/recce-source/js/src/components/app/Filename.tsx +0 -388
- package/recce-source/js/src/components/app/SetupConnectionPopover.tsx +0 -91
- package/recce-source/js/src/components/app/StateExporter.tsx +0 -57
- package/recce-source/js/src/components/app/StateImporter.tsx +0 -198
- package/recce-source/js/src/components/app/StateSharing.tsx +0 -145
- package/recce-source/js/src/components/app/StateSynchronizer.tsx +0 -205
- package/recce-source/js/src/components/charts/HistogramChart.tsx +0 -291
- package/recce-source/js/src/components/charts/SquareIcon.tsx +0 -51
- package/recce-source/js/src/components/charts/TopKSummaryList.tsx +0 -457
- package/recce-source/js/src/components/charts/chartTheme.ts +0 -74
- package/recce-source/js/src/components/check/CheckBreadcrumb.tsx +0 -97
- package/recce-source/js/src/components/check/CheckDescription.tsx +0 -134
- package/recce-source/js/src/components/check/CheckDetail.tsx +0 -797
- package/recce-source/js/src/components/check/CheckEmptyState.tsx +0 -84
- package/recce-source/js/src/components/check/CheckList.tsx +0 -320
- package/recce-source/js/src/components/check/LineageDiffView.tsx +0 -32
- package/recce-source/js/src/components/check/PresetCheckTemplateView.tsx +0 -48
- package/recce-source/js/src/components/check/SchemaDiffView.tsx +0 -290
- package/recce-source/js/src/components/check/check.ts +0 -25
- package/recce-source/js/src/components/check/timeline/CheckTimeline.tsx +0 -163
- package/recce-source/js/src/components/check/timeline/CommentInput.tsx +0 -84
- package/recce-source/js/src/components/check/timeline/TimelineEvent.tsx +0 -468
- package/recce-source/js/src/components/check/timeline/index.ts +0 -12
- package/recce-source/js/src/components/check/utils.ts +0 -12
- package/recce-source/js/src/components/data-grid/ScreenshotDataGrid.tsx +0 -333
- package/recce-source/js/src/components/data-grid/agGridStyles.css +0 -55
- package/recce-source/js/src/components/data-grid/agGridTheme.ts +0 -43
- package/recce-source/js/src/components/editor/CodeEditor.tsx +0 -107
- package/recce-source/js/src/components/editor/DiffEditor.tsx +0 -162
- package/recce-source/js/src/components/editor/index.ts +0 -12
- package/recce-source/js/src/components/errorboundary/ErrorBoundary.tsx +0 -87
- package/recce-source/js/src/components/histogram/HistogramDiffForm.tsx +0 -147
- package/recce-source/js/src/components/histogram/HistogramDiffResultView.tsx +0 -63
- package/recce-source/js/src/components/icons/index.tsx +0 -142
- package/recce-source/js/src/components/lineage/ActionControl.tsx +0 -63
- package/recce-source/js/src/components/lineage/ActionTag.tsx +0 -141
- package/recce-source/js/src/components/lineage/ChangeStatusLegend.tsx +0 -46
- package/recce-source/js/src/components/lineage/ColumnLevelLineageControl.tsx +0 -327
- package/recce-source/js/src/components/lineage/ColumnLevelLineageLegend.tsx +0 -57
- package/recce-source/js/src/components/lineage/GraphColumnNode.tsx +0 -199
- package/recce-source/js/src/components/lineage/GraphEdge.tsx +0 -59
- package/recce-source/js/src/components/lineage/GraphNode.tsx +0 -555
- package/recce-source/js/src/components/lineage/LineagePage.tsx +0 -10
- package/recce-source/js/src/components/lineage/LineageView.tsx +0 -1384
- package/recce-source/js/src/components/lineage/LineageViewContext.tsx +0 -86
- package/recce-source/js/src/components/lineage/LineageViewContextMenu.tsx +0 -637
- package/recce-source/js/src/components/lineage/LineageViewNotification.tsx +0 -64
- package/recce-source/js/src/components/lineage/LineageViewTopBar.tsx +0 -596
- package/recce-source/js/src/components/lineage/NodeSqlView.tsx +0 -136
- package/recce-source/js/src/components/lineage/NodeTag.tsx +0 -278
- package/recce-source/js/src/components/lineage/NodeView.tsx +0 -642
- package/recce-source/js/src/components/lineage/SandboxView.tsx +0 -436
- package/recce-source/js/src/components/lineage/ServerDisconnectedModalContent.tsx +0 -105
- package/recce-source/js/src/components/lineage/SetupConnectionBanner.tsx +0 -52
- package/recce-source/js/src/components/lineage/SingleEnvironmentQueryView.tsx +0 -152
- package/recce-source/js/src/components/lineage/graph.test.ts +0 -31
- package/recce-source/js/src/components/lineage/graph.ts +0 -58
- package/recce-source/js/src/components/lineage/lineage.test.ts +0 -169
- package/recce-source/js/src/components/lineage/lineage.ts +0 -521
- package/recce-source/js/src/components/lineage/styles.css +0 -42
- package/recce-source/js/src/components/lineage/styles.tsx +0 -165
- package/recce-source/js/src/components/lineage/useMultiNodesAction.ts +0 -352
- package/recce-source/js/src/components/lineage/useValueDiffAlertDialog.tsx +0 -108
- package/recce-source/js/src/components/onboarding-guide/Notification.tsx +0 -62
- package/recce-source/js/src/components/profile/ProfileDiffForm.tsx +0 -134
- package/recce-source/js/src/components/profile/ProfileDiffResultView.tsx +0 -243
- package/recce-source/js/src/components/query/ChangedOnlyCheckbox.tsx +0 -29
- package/recce-source/js/src/components/query/DiffText.tsx +0 -120
- package/recce-source/js/src/components/query/QueryDiffResultView.tsx +0 -468
- package/recce-source/js/src/components/query/QueryForm.tsx +0 -80
- package/recce-source/js/src/components/query/QueryPage.tsx +0 -282
- package/recce-source/js/src/components/query/QueryResultView.tsx +0 -180
- package/recce-source/js/src/components/query/SetupConnectionGuide.tsx +0 -57
- package/recce-source/js/src/components/query/SqlEditor.tsx +0 -245
- package/recce-source/js/src/components/query/ToggleSwitch.tsx +0 -84
- package/recce-source/js/src/components/query/styles.css +0 -21
- package/recce-source/js/src/components/routing/DirectUrlAccess.test.tsx +0 -428
- package/recce-source/js/src/components/routing/LineageStatePreservation.test.tsx +0 -311
- package/recce-source/js/src/components/routing/Navigation.test.tsx +0 -256
- package/recce-source/js/src/components/rowcount/RowCountDiffResultView.tsx +0 -108
- package/recce-source/js/src/components/rowcount/delta.test.ts +0 -51
- package/recce-source/js/src/components/rowcount/delta.ts +0 -16
- package/recce-source/js/src/components/run/RunList.tsx +0 -303
- package/recce-source/js/src/components/run/RunModal.tsx +0 -191
- package/recce-source/js/src/components/run/RunPage.tsx +0 -26
- package/recce-source/js/src/components/run/RunResultPane.tsx +0 -578
- package/recce-source/js/src/components/run/RunStatusAndDate.tsx +0 -106
- package/recce-source/js/src/components/run/RunToolbar.tsx +0 -70
- package/recce-source/js/src/components/run/RunView.tsx +0 -196
- package/recce-source/js/src/components/run/registry.ts +0 -214
- package/recce-source/js/src/components/run/types.ts +0 -14
- package/recce-source/js/src/components/schema/ColumnNameCell.test.tsx +0 -169
- package/recce-source/js/src/components/schema/ColumnNameCell.tsx +0 -198
- package/recce-source/js/src/components/schema/SchemaView.tsx +0 -336
- package/recce-source/js/src/components/schema/schemaDiff.ts +0 -32
- package/recce-source/js/src/components/schema/style.css +0 -134
- package/recce-source/js/src/components/screenshot/ScreenshotBox.tsx +0 -39
- package/recce-source/js/src/components/shared/HistoryToggle.tsx +0 -35
- package/recce-source/js/src/components/split/Split.tsx +0 -40
- package/recce-source/js/src/components/split/styles.css +0 -24
- package/recce-source/js/src/components/summary/ChangeSummary.tsx +0 -264
- package/recce-source/js/src/components/summary/SchemaSummary.tsx +0 -123
- package/recce-source/js/src/components/summary/SummaryView.tsx +0 -29
- package/recce-source/js/src/components/timeout/IdleTimeoutBadge.tsx +0 -48
- package/recce-source/js/src/components/top-k/TopKDiffForm.tsx +0 -58
- package/recce-source/js/src/components/top-k/TopKDiffResultView.tsx +0 -73
- package/recce-source/js/src/components/ui/dataGrid/DataFrameColumnGroupHeader.tsx +0 -228
- package/recce-source/js/src/components/ui/dataGrid/DataFrameColumnHeader.tsx +0 -113
- package/recce-source/js/src/components/ui/dataGrid/defaultRenderCell.tsx +0 -72
- package/recce-source/js/src/components/ui/dataGrid/index.ts +0 -23
- package/recce-source/js/src/components/ui/dataGrid/inlineRenderCell.test.tsx +0 -607
- package/recce-source/js/src/components/ui/dataGrid/inlineRenderCell.tsx +0 -211
- package/recce-source/js/src/components/ui/dataGrid/schemaCells.test.tsx +0 -452
- package/recce-source/js/src/components/ui/dataGrid/schemaCells.tsx +0 -142
- package/recce-source/js/src/components/ui/dataGrid/valueDiffCells.test.tsx +0 -178
- package/recce-source/js/src/components/ui/dataGrid/valueDiffCells.tsx +0 -275
- package/recce-source/js/src/components/ui/markdown/ExternalLinkConfirmDialog.tsx +0 -134
- package/recce-source/js/src/components/ui/markdown/MarkdownContent.tsx +0 -364
- package/recce-source/js/src/components/ui/mui/index.ts +0 -13
- package/recce-source/js/src/components/ui/mui-provider.tsx +0 -67
- package/recce-source/js/src/components/ui/mui-theme.ts +0 -1039
- package/recce-source/js/src/components/ui/mui-utils.ts +0 -113
- package/recce-source/js/src/components/ui/toaster.tsx +0 -288
- package/recce-source/js/src/components/valuediff/ValueDiffDetailResultView.tsx +0 -216
- package/recce-source/js/src/components/valuediff/ValueDiffForm.tsx +0 -246
- package/recce-source/js/src/components/valuediff/ValueDiffResultView.tsx +0 -81
- package/recce-source/js/src/components/valuediff/shared.ts +0 -33
- package/recce-source/js/src/constants/tooltipMessage.ts +0 -3
- package/recce-source/js/src/constants/urls.ts +0 -1
- package/recce-source/js/src/lib/UrlHash.ts +0 -12
- package/recce-source/js/src/lib/api/adhocQuery.ts +0 -70
- package/recce-source/js/src/lib/api/axiosClient.ts +0 -9
- package/recce-source/js/src/lib/api/cacheKeys.ts +0 -13
- package/recce-source/js/src/lib/api/checkEvents.ts +0 -252
- package/recce-source/js/src/lib/api/checks.ts +0 -129
- package/recce-source/js/src/lib/api/cll.ts +0 -53
- package/recce-source/js/src/lib/api/connectToCloud.ts +0 -13
- package/recce-source/js/src/lib/api/flag.ts +0 -37
- package/recce-source/js/src/lib/api/info.ts +0 -198
- package/recce-source/js/src/lib/api/instanceInfo.ts +0 -25
- package/recce-source/js/src/lib/api/keepAlive.ts +0 -108
- package/recce-source/js/src/lib/api/lineagecheck.ts +0 -35
- package/recce-source/js/src/lib/api/localStorageKeys.ts +0 -7
- package/recce-source/js/src/lib/api/models.ts +0 -59
- package/recce-source/js/src/lib/api/profile.ts +0 -65
- package/recce-source/js/src/lib/api/rowcount.ts +0 -19
- package/recce-source/js/src/lib/api/runs.ts +0 -174
- package/recce-source/js/src/lib/api/schemacheck.ts +0 -31
- package/recce-source/js/src/lib/api/select.ts +0 -25
- package/recce-source/js/src/lib/api/sessionStorageKeys.ts +0 -8
- package/recce-source/js/src/lib/api/state.ts +0 -117
- package/recce-source/js/src/lib/api/track.ts +0 -281
- package/recce-source/js/src/lib/api/types.ts +0 -284
- package/recce-source/js/src/lib/api/user.ts +0 -42
- package/recce-source/js/src/lib/api/valuediff.ts +0 -46
- package/recce-source/js/src/lib/api/version.ts +0 -40
- package/recce-source/js/src/lib/const.ts +0 -9
- package/recce-source/js/src/lib/csv/extractors.test.ts +0 -456
- package/recce-source/js/src/lib/csv/extractors.ts +0 -468
- package/recce-source/js/src/lib/csv/format.test.ts +0 -211
- package/recce-source/js/src/lib/csv/format.ts +0 -44
- package/recce-source/js/src/lib/csv/index.test.ts +0 -155
- package/recce-source/js/src/lib/csv/index.ts +0 -109
- package/recce-source/js/src/lib/dataGrid/crossFunctionConsistency.test.ts +0 -626
- package/recce-source/js/src/lib/dataGrid/dataGridFactory.test.ts +0 -2140
- package/recce-source/js/src/lib/dataGrid/dataGridFactory.ts +0 -397
- package/recce-source/js/src/lib/dataGrid/generators/rowCountUtils.test.ts +0 -132
- package/recce-source/js/src/lib/dataGrid/generators/rowCountUtils.ts +0 -126
- package/recce-source/js/src/lib/dataGrid/generators/toDataDiffGrid.test.ts +0 -1627
- package/recce-source/js/src/lib/dataGrid/generators/toDataDiffGrid.ts +0 -140
- package/recce-source/js/src/lib/dataGrid/generators/toDataGrid.ts +0 -67
- package/recce-source/js/src/lib/dataGrid/generators/toRowCountDataGrid.test.ts +0 -142
- package/recce-source/js/src/lib/dataGrid/generators/toRowCountDataGrid.ts +0 -71
- package/recce-source/js/src/lib/dataGrid/generators/toRowCountDiffDataGrid.test.ts +0 -258
- package/recce-source/js/src/lib/dataGrid/generators/toRowCountDiffDataGrid.ts +0 -153
- package/recce-source/js/src/lib/dataGrid/generators/toSchemaDataGrid.test.ts +0 -951
- package/recce-source/js/src/lib/dataGrid/generators/toSchemaDataGrid.ts +0 -221
- package/recce-source/js/src/lib/dataGrid/generators/toValueDataGrid.test.ts +0 -395
- package/recce-source/js/src/lib/dataGrid/generators/toValueDataGrid.ts +0 -184
- package/recce-source/js/src/lib/dataGrid/generators/toValueDiffGrid.test.ts +0 -884
- package/recce-source/js/src/lib/dataGrid/generators/toValueDiffGrid.ts +0 -113
- package/recce-source/js/src/lib/dataGrid/index.ts +0 -51
- package/recce-source/js/src/lib/dataGrid/propertyBased.test.ts +0 -858
- package/recce-source/js/src/lib/dataGrid/shared/columnBuilders.test.ts +0 -482
- package/recce-source/js/src/lib/dataGrid/shared/columnBuilders.ts +0 -345
- package/recce-source/js/src/lib/dataGrid/shared/dataTypeEdgeCases.test.ts +0 -698
- package/recce-source/js/src/lib/dataGrid/shared/diffColumnBuilder.test.tsx +0 -820
- package/recce-source/js/src/lib/dataGrid/shared/diffColumnBuilder.tsx +0 -277
- package/recce-source/js/src/lib/dataGrid/shared/gridUtils.test.ts +0 -785
- package/recce-source/js/src/lib/dataGrid/shared/gridUtils.ts +0 -370
- package/recce-source/js/src/lib/dataGrid/shared/index.ts +0 -81
- package/recce-source/js/src/lib/dataGrid/shared/rowBuilders.test.ts +0 -909
- package/recce-source/js/src/lib/dataGrid/shared/rowBuilders.ts +0 -325
- package/recce-source/js/src/lib/dataGrid/shared/simpleColumnBuilder.tsx +0 -240
- package/recce-source/js/src/lib/dataGrid/shared/toDiffColumn.test.tsx +0 -719
- package/recce-source/js/src/lib/dataGrid/shared/toDiffColumn.tsx +0 -231
- package/recce-source/js/src/lib/dataGrid/shared/validation.test.ts +0 -559
- package/recce-source/js/src/lib/dataGrid/shared/validation.ts +0 -367
- package/recce-source/js/src/lib/dataGrid/warehouseNamingConventions.test.ts +0 -1117
- package/recce-source/js/src/lib/formatSelect.ts +0 -50
- package/recce-source/js/src/lib/hooks/ApiConfigContext.tsx +0 -181
- package/recce-source/js/src/lib/hooks/IdleTimeoutContext.tsx +0 -177
- package/recce-source/js/src/lib/hooks/LineageGraphContext.tsx +0 -512
- package/recce-source/js/src/lib/hooks/RecceActionContext.tsx +0 -269
- package/recce-source/js/src/lib/hooks/RecceCheckContext.tsx +0 -33
- package/recce-source/js/src/lib/hooks/RecceContextProvider.tsx +0 -54
- package/recce-source/js/src/lib/hooks/RecceInstanceContext.tsx +0 -129
- package/recce-source/js/src/lib/hooks/RecceQueryContext.tsx +0 -98
- package/recce-source/js/src/lib/hooks/RecceShareStateContext.tsx +0 -59
- package/recce-source/js/src/lib/hooks/ScreenShot.tsx +0 -399
- package/recce-source/js/src/lib/hooks/useAppRouter.test.ts +0 -211
- package/recce-source/js/src/lib/hooks/useAppRouter.ts +0 -200
- package/recce-source/js/src/lib/hooks/useCSVExport.ts +0 -136
- package/recce-source/js/src/lib/hooks/useCheckEvents.ts +0 -99
- package/recce-source/js/src/lib/hooks/useCheckToast.tsx +0 -14
- package/recce-source/js/src/lib/hooks/useClipBoardToast.tsx +0 -27
- package/recce-source/js/src/lib/hooks/useCountdownToast.tsx +0 -102
- package/recce-source/js/src/lib/hooks/useFeedbackCollectionToast.tsx +0 -130
- package/recce-source/js/src/lib/hooks/useGuideToast.tsx +0 -45
- package/recce-source/js/src/lib/hooks/useIdleDetection.tsx +0 -185
- package/recce-source/js/src/lib/hooks/useModelColumns.tsx +0 -113
- package/recce-source/js/src/lib/hooks/useRecceInstanceInfo.tsx +0 -13
- package/recce-source/js/src/lib/hooks/useRecceServerFlag.tsx +0 -13
- package/recce-source/js/src/lib/hooks/useRun.tsx +0 -89
- package/recce-source/js/src/lib/hooks/useThemeColors.ts +0 -115
- package/recce-source/js/src/lib/mergeKeys.test.ts +0 -89
- package/recce-source/js/src/lib/mergeKeys.ts +0 -86
- package/recce-source/js/src/lib/result/ResultErrorFallback.tsx +0 -9
- package/recce-source/js/src/lib/utils/formatTime.ts +0 -84
- package/recce-source/js/src/lib/utils/urls.ts +0 -16
- package/recce-source/js/src/utils/DropdownValuesInput.tsx +0 -297
- package/recce-source/js/src/utils/formatters.tsx +0 -237
- package/recce-source/js/src/utils/transforms.ts +0 -81
- package/recce-source/js/tsconfig.json +0 -47
- package/recce-source/macros/README.md +0 -8
- package/recce-source/macros/recce_athena.sql +0 -73
- package/recce-source/pyproject.toml +0 -109
- package/recce-source/recce/VERSION +0 -1
- package/recce-source/recce/__init__.py +0 -84
- package/recce-source/recce/adapter/__init__.py +0 -0
- package/recce-source/recce/adapter/base.py +0 -109
- package/recce-source/recce/adapter/dbt_adapter/__init__.py +0 -1699
- package/recce-source/recce/adapter/dbt_adapter/dbt_version.py +0 -42
- package/recce-source/recce/adapter/sqlmesh_adapter.py +0 -141
- package/recce-source/recce/apis/__init__.py +0 -0
- package/recce-source/recce/apis/check_api.py +0 -203
- package/recce-source/recce/apis/check_events_api.py +0 -353
- package/recce-source/recce/apis/check_func.py +0 -130
- package/recce-source/recce/apis/run_api.py +0 -130
- package/recce-source/recce/apis/run_func.py +0 -258
- package/recce-source/recce/artifact.py +0 -266
- package/recce-source/recce/cli.py +0 -1846
- package/recce-source/recce/config.py +0 -127
- package/recce-source/recce/connect_to_cloud.py +0 -138
- package/recce-source/recce/core.py +0 -334
- package/recce-source/recce/diff.py +0 -26
- package/recce-source/recce/event/CONFIG +0 -1
- package/recce-source/recce/event/SENTRY_DNS +0 -1
- package/recce-source/recce/event/__init__.py +0 -304
- package/recce-source/recce/event/collector.py +0 -184
- package/recce-source/recce/event/track.py +0 -158
- package/recce-source/recce/exceptions.py +0 -21
- package/recce-source/recce/git.py +0 -77
- package/recce-source/recce/github.py +0 -222
- package/recce-source/recce/mcp_server.py +0 -885
- package/recce-source/recce/models/__init__.py +0 -6
- package/recce-source/recce/models/check.py +0 -481
- package/recce-source/recce/models/run.py +0 -46
- package/recce-source/recce/models/types.py +0 -218
- package/recce-source/recce/pull_request.py +0 -124
- package/recce-source/recce/run.py +0 -390
- package/recce-source/recce/server.py +0 -877
- package/recce-source/recce/state/__init__.py +0 -31
- package/recce-source/recce/state/cloud.py +0 -644
- package/recce-source/recce/state/const.py +0 -26
- package/recce-source/recce/state/local.py +0 -56
- package/recce-source/recce/state/state.py +0 -119
- package/recce-source/recce/state/state_loader.py +0 -174
- package/recce-source/recce/summary.py +0 -575
- package/recce-source/recce/tasks/__init__.py +0 -23
- package/recce-source/recce/tasks/core.py +0 -134
- package/recce-source/recce/tasks/dataframe.py +0 -170
- package/recce-source/recce/tasks/histogram.py +0 -433
- package/recce-source/recce/tasks/lineage.py +0 -19
- package/recce-source/recce/tasks/profile.py +0 -298
- package/recce-source/recce/tasks/query.py +0 -450
- package/recce-source/recce/tasks/rowcount.py +0 -277
- package/recce-source/recce/tasks/schema.py +0 -65
- package/recce-source/recce/tasks/top_k.py +0 -172
- package/recce-source/recce/tasks/utils.py +0 -147
- package/recce-source/recce/tasks/valuediff.py +0 -497
- package/recce-source/recce/util/__init__.py +0 -4
- package/recce-source/recce/util/api_token.py +0 -80
- package/recce-source/recce/util/breaking.py +0 -330
- package/recce-source/recce/util/cache.py +0 -25
- package/recce-source/recce/util/cll.py +0 -355
- package/recce-source/recce/util/cloud/__init__.py +0 -15
- package/recce-source/recce/util/cloud/base.py +0 -115
- package/recce-source/recce/util/cloud/check_events.py +0 -190
- package/recce-source/recce/util/cloud/checks.py +0 -242
- package/recce-source/recce/util/io.py +0 -120
- package/recce-source/recce/util/lineage.py +0 -83
- package/recce-source/recce/util/logger.py +0 -25
- package/recce-source/recce/util/onboarding_state.py +0 -45
- package/recce-source/recce/util/perf_tracking.py +0 -85
- package/recce-source/recce/util/pydantic_model.py +0 -22
- package/recce-source/recce/util/recce_cloud.py +0 -454
- package/recce-source/recce/util/singleton.py +0 -18
- package/recce-source/recce/util/startup_perf.py +0 -121
- package/recce-source/recce/yaml/__init__.py +0 -58
- package/recce-source/recce_cloud/README.md +0 -780
- package/recce-source/recce_cloud/VERSION +0 -1
- package/recce-source/recce_cloud/__init__.py +0 -24
- package/recce-source/recce_cloud/api/__init__.py +0 -17
- package/recce-source/recce_cloud/api/base.py +0 -132
- package/recce-source/recce_cloud/api/client.py +0 -186
- package/recce-source/recce_cloud/api/exceptions.py +0 -26
- package/recce-source/recce_cloud/api/factory.py +0 -63
- package/recce-source/recce_cloud/api/github.py +0 -106
- package/recce-source/recce_cloud/api/gitlab.py +0 -111
- package/recce-source/recce_cloud/artifact.py +0 -57
- package/recce-source/recce_cloud/ci_providers/__init__.py +0 -9
- package/recce-source/recce_cloud/ci_providers/base.py +0 -82
- package/recce-source/recce_cloud/ci_providers/detector.py +0 -147
- package/recce-source/recce_cloud/ci_providers/github_actions.py +0 -136
- package/recce-source/recce_cloud/ci_providers/gitlab_ci.py +0 -130
- package/recce-source/recce_cloud/cli.py +0 -434
- package/recce-source/recce_cloud/download.py +0 -230
- package/recce-source/recce_cloud/hatch_build.py +0 -20
- package/recce-source/recce_cloud/pyproject.toml +0 -49
- package/recce-source/recce_cloud/upload.py +0 -214
- package/recce-source/test.py +0 -0
- package/recce-source/tests/__init__.py +0 -0
- package/recce-source/tests/adapter/__init__.py +0 -0
- package/recce-source/tests/adapter/dbt_adapter/__init__.py +0 -0
- package/recce-source/tests/adapter/dbt_adapter/conftest.py +0 -17
- package/recce-source/tests/adapter/dbt_adapter/dbt_test_helper.py +0 -298
- package/recce-source/tests/adapter/dbt_adapter/test_dbt_adapter.py +0 -25
- package/recce-source/tests/adapter/dbt_adapter/test_dbt_cll.py +0 -717
- package/recce-source/tests/adapter/dbt_adapter/test_proj/dbt_project.yml +0 -4
- package/recce-source/tests/adapter/dbt_adapter/test_proj/manifest.json +0 -1
- package/recce-source/tests/adapter/dbt_adapter/test_proj/package-lock.yml +0 -8
- package/recce-source/tests/adapter/dbt_adapter/test_proj/packages.yml +0 -7
- package/recce-source/tests/adapter/dbt_adapter/test_proj/profiles.yml +0 -6
- package/recce-source/tests/adapter/dbt_adapter/test_selector.py +0 -205
- package/recce-source/tests/apis/__init__.py +0 -0
- package/recce-source/tests/apis/row_count_diff.json +0 -59
- package/recce-source/tests/apis/test_check_events_api.py +0 -615
- package/recce-source/tests/apis/test_run_func.py +0 -433
- package/recce-source/tests/catalog.json +0 -527
- package/recce-source/tests/data/manifest/base/catalog.json +0 -1
- package/recce-source/tests/data/manifest/base/manifest.json +0 -1
- package/recce-source/tests/data/manifest/pr2/catalog.json +0 -1
- package/recce-source/tests/data/manifest/pr2/manifest.json +0 -1
- package/recce-source/tests/manifest.json +0 -10655
- package/recce-source/tests/models/__init__.py +0 -0
- package/recce-source/tests/models/test_check.py +0 -731
- package/recce-source/tests/models/test_run_models.py +0 -295
- package/recce-source/tests/recce_cloud/__init__.py +0 -0
- package/recce-source/tests/recce_cloud/test_ci_providers.py +0 -351
- package/recce-source/tests/recce_cloud/test_cli.py +0 -735
- package/recce-source/tests/recce_cloud/test_client.py +0 -379
- package/recce-source/tests/recce_cloud/test_platform_clients.py +0 -483
- package/recce-source/tests/recce_state.json +0 -1
- package/recce-source/tests/state/test_cloud.py +0 -719
- package/recce-source/tests/state/test_local.py +0 -164
- package/recce-source/tests/state/test_state_loader.py +0 -211
- package/recce-source/tests/tasks/__init__.py +0 -0
- package/recce-source/tests/tasks/conftest.py +0 -4
- package/recce-source/tests/tasks/test_histogram.py +0 -129
- package/recce-source/tests/tasks/test_lineage.py +0 -55
- package/recce-source/tests/tasks/test_preset_checks.py +0 -64
- package/recce-source/tests/tasks/test_profile.py +0 -397
- package/recce-source/tests/tasks/test_query.py +0 -528
- package/recce-source/tests/tasks/test_row_count.py +0 -133
- package/recce-source/tests/tasks/test_schema.py +0 -122
- package/recce-source/tests/tasks/test_top_k.py +0 -77
- package/recce-source/tests/tasks/test_utils.py +0 -439
- package/recce-source/tests/tasks/test_valuediff.py +0 -361
- package/recce-source/tests/test_cli.py +0 -236
- package/recce-source/tests/test_cli_mcp_optional.py +0 -45
- package/recce-source/tests/test_cloud_listing_cli.py +0 -324
- package/recce-source/tests/test_config.py +0 -43
- package/recce-source/tests/test_connect_to_cloud.py +0 -82
- package/recce-source/tests/test_core.py +0 -174
- package/recce-source/tests/test_dbt.py +0 -36
- package/recce-source/tests/test_mcp_server.py +0 -505
- package/recce-source/tests/test_pull_request.py +0 -130
- package/recce-source/tests/test_server.py +0 -202
- package/recce-source/tests/test_server_lifespan.py +0 -138
- package/recce-source/tests/test_summary.py +0 -73
- package/recce-source/tests/util/__init__.py +0 -0
- package/recce-source/tests/util/cloud/__init__.py +0 -0
- package/recce-source/tests/util/cloud/test_check_events.py +0 -255
- package/recce-source/tests/util/cloud/test_checks.py +0 -204
- package/recce-source/tests/util/test_api_token.py +0 -119
- package/recce-source/tests/util/test_breaking.py +0 -1427
- package/recce-source/tests/util/test_cll.py +0 -706
- package/recce-source/tests/util/test_lineage.py +0 -122
- package/recce-source/tests/util/test_onboarding_state.py +0 -84
- package/recce-source/tests/util/test_recce_cloud.py +0 -231
- package/recce-source/tox.ini +0 -40
- package/recce-source/uv.lock +0 -3928
- package/src/api/index.ts +0 -32
- package/src/components/index.ts +0 -154
- package/src/global.d.ts +0 -14
- package/src/hooks/index.ts +0 -56
- package/src/index.ts +0 -17
- package/src/lib/hooks/RouteConfigContext.ts +0 -139
- package/src/lib/hooks/useAppRouter.ts +0 -240
- package/src/mui-augmentation.d.ts +0 -139
- package/src/theme/index.ts +0 -13
- package/src/theme.ts +0 -23
- package/src/types/index.ts +0 -23
|
@@ -1,541 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
applyTo: "*.py,recce/**/*.py,tests/**/*.py,recce_cloud/**/*.py"
|
|
3
|
-
---
|
|
4
|
-
|
|
5
|
-
# Backend Build Instructions (Python)
|
|
6
|
-
|
|
7
|
-
## Critical Python Development Requirements
|
|
8
|
-
|
|
9
|
-
**MANDATORY: Always run these commands in sequence for Python changes:**
|
|
10
|
-
```bash
|
|
11
|
-
# 1. Format code (REQUIRED before any checks)
|
|
12
|
-
make format
|
|
13
|
-
|
|
14
|
-
# 2. Verify code quality (must pass before committing)
|
|
15
|
-
make check
|
|
16
|
-
|
|
17
|
-
# 3. Run tests
|
|
18
|
-
make test
|
|
19
|
-
```
|
|
20
|
-
|
|
21
|
-
**Pre-commit hooks are REQUIRED:**
|
|
22
|
-
```bash
|
|
23
|
-
make install-dev
|
|
24
|
-
# This installs the package in editable mode AND sets up pre-commit hooks
|
|
25
|
-
# Pre-commit hooks automatically run Black, isort, and flake8 on git commit
|
|
26
|
-
```
|
|
27
|
-
|
|
28
|
-
## Python Version Support
|
|
29
|
-
|
|
30
|
-
**Supported versions:** Python 3.9, 3.10, 3.11, 3.12, 3.13
|
|
31
|
-
|
|
32
|
-
**Testing strategy:**
|
|
33
|
-
- Primary development: Python 3.10 or 3.11
|
|
34
|
-
- CI tests all versions via tox
|
|
35
|
-
- Any new dependencies MUST support Python 3.9+
|
|
36
|
-
|
|
37
|
-
**Check your version:**
|
|
38
|
-
```bash
|
|
39
|
-
python --version
|
|
40
|
-
# or
|
|
41
|
-
python3 --version
|
|
42
|
-
```
|
|
43
|
-
|
|
44
|
-
## Package Structure - Dual Package Monorepo
|
|
45
|
-
|
|
46
|
-
This repository contains TWO separate Python packages:
|
|
47
|
-
|
|
48
|
-
### 1. Main Package (recce)
|
|
49
|
-
**Installation:** `setup.py`
|
|
50
|
-
**Command:** `recce`
|
|
51
|
-
**Dependencies:** 20+ (FastAPI, dbt parsing, etc.)
|
|
52
|
-
**Purpose:** Full dbt/SQLMesh validation tool with web UI
|
|
53
|
-
|
|
54
|
-
### 2. Cloud CLI (recce-cloud)
|
|
55
|
-
**Installation:** `setup_cloud.py`
|
|
56
|
-
**Command:** `recce-cloud`
|
|
57
|
-
**Dependencies:** 3 only (click, requests, rich)
|
|
58
|
-
**Purpose:** Lightweight CI/CD artifact upload tool
|
|
59
|
-
|
|
60
|
-
**CRITICAL: These are separate packages with separate installations:**
|
|
61
|
-
```bash
|
|
62
|
-
# Main package
|
|
63
|
-
pip install -e .[dev] # Development
|
|
64
|
-
pip install . # Production
|
|
65
|
-
|
|
66
|
-
# Cloud CLI
|
|
67
|
-
python setup_cloud.py develop # Development
|
|
68
|
-
python setup_cloud.py install # Production
|
|
69
|
-
```
|
|
70
|
-
|
|
71
|
-
## Development Setup
|
|
72
|
-
|
|
73
|
-
**Initial setup (ALWAYS run this first):**
|
|
74
|
-
```bash
|
|
75
|
-
make install-dev
|
|
76
|
-
# This does:
|
|
77
|
-
# 1. pip install -e .[dev] - Installs package in editable mode with dev dependencies
|
|
78
|
-
# 2. pre-commit install - Sets up git hooks for Black, isort, flake8
|
|
79
|
-
```
|
|
80
|
-
|
|
81
|
-
**What gets installed:**
|
|
82
|
-
- Main package dependencies (boto3, fastapi, uvicorn, dbt parsing libs, etc.)
|
|
83
|
-
- Dev dependencies (pytest, black, isort, flake8, tox, etc.)
|
|
84
|
-
- Git pre-commit hooks (.pre-commit-config.yaml)
|
|
85
|
-
|
|
86
|
-
**Verify installation:**
|
|
87
|
-
```bash
|
|
88
|
-
recce version # Should print version number
|
|
89
|
-
which pre-commit # Should show path to pre-commit
|
|
90
|
-
```
|
|
91
|
-
|
|
92
|
-
## Code Quality - MANDATORY Workflow
|
|
93
|
-
|
|
94
|
-
**1. Format code (ALWAYS run first):**
|
|
95
|
-
```bash
|
|
96
|
-
make format
|
|
97
|
-
# Runs:
|
|
98
|
-
# - Black (formatter, line-length 120)
|
|
99
|
-
# - isort (import sorter, profile=black)
|
|
100
|
-
# Modifies files in place
|
|
101
|
-
```
|
|
102
|
-
|
|
103
|
-
**2. Check code quality (run before committing):**
|
|
104
|
-
```bash
|
|
105
|
-
make check
|
|
106
|
-
# Runs (without modifying files):
|
|
107
|
-
# - black --check
|
|
108
|
-
# - isort --check
|
|
109
|
-
# - flake8
|
|
110
|
-
# ALL must pass before committing
|
|
111
|
-
```
|
|
112
|
-
|
|
113
|
-
**3. Individual checks (if needed):**
|
|
114
|
-
```bash
|
|
115
|
-
make flake8 # Lint only
|
|
116
|
-
black --check recce tests # Check formatting only
|
|
117
|
-
isort --check recce tests # Check import order only
|
|
118
|
-
```
|
|
119
|
-
|
|
120
|
-
**For recce-cloud package:**
|
|
121
|
-
```bash
|
|
122
|
-
make format-cloud # Format recce_cloud/
|
|
123
|
-
make check-cloud # Check recce_cloud/
|
|
124
|
-
make flake8-cloud # Lint recce_cloud/
|
|
125
|
-
```
|
|
126
|
-
|
|
127
|
-
## Code Style Configuration
|
|
128
|
-
|
|
129
|
-
**Black (formatter):**
|
|
130
|
-
- Line length: 120 characters
|
|
131
|
-
- Config: `pyproject.toml`
|
|
132
|
-
- Targets: `./recce ./tests` or `./recce_cloud`
|
|
133
|
-
|
|
134
|
-
**isort (import sorter):**
|
|
135
|
-
- Profile: black (compatible with Black)
|
|
136
|
-
- Config: `pyproject.toml`
|
|
137
|
-
- Targets: `./recce ./tests` or `./recce_cloud`
|
|
138
|
-
|
|
139
|
-
**flake8 (linter):**
|
|
140
|
-
- Line length: 120 characters
|
|
141
|
-
- Config: `.flake8`
|
|
142
|
-
- Key ignores:
|
|
143
|
-
- E501 (line too long - handled by Black)
|
|
144
|
-
- E203 (whitespace before ':' - Black conflict)
|
|
145
|
-
- W503 (line break before binary operator - Black conflict)
|
|
146
|
-
- W605 (invalid escape sequence in regex)
|
|
147
|
-
- F811 (redefinition of unused name)
|
|
148
|
-
- Targets: `recce,tests` or `recce_cloud`
|
|
149
|
-
|
|
150
|
-
**Pre-commit hooks (.pre-commit-config.yaml):**
|
|
151
|
-
- Runs on `git commit` automatically
|
|
152
|
-
- Excludes: `recce/data/` (generated frontend files)
|
|
153
|
-
- Checks: trailing whitespace, end-of-file fixer, YAML check, Black, isort, flake8
|
|
154
|
-
|
|
155
|
-
## Testing
|
|
156
|
-
|
|
157
|
-
**Quick tests (run frequently):**
|
|
158
|
-
```bash
|
|
159
|
-
make test
|
|
160
|
-
# or
|
|
161
|
-
pytest tests
|
|
162
|
-
# Fast unit tests, takes ~30 seconds
|
|
163
|
-
```
|
|
164
|
-
|
|
165
|
-
**Tests with coverage:**
|
|
166
|
-
```bash
|
|
167
|
-
make test-coverage
|
|
168
|
-
# Generates HTML report: htmlcov/index.html
|
|
169
|
-
# Shows coverage stats in terminal
|
|
170
|
-
```
|
|
171
|
-
|
|
172
|
-
**Run specific test:**
|
|
173
|
-
```bash
|
|
174
|
-
pytest tests/test_specific.py::test_function_name
|
|
175
|
-
pytest tests/test_file.py -v
|
|
176
|
-
pytest tests/ -k "test_pattern"
|
|
177
|
-
```
|
|
178
|
-
|
|
179
|
-
**Multi-version testing (matches CI):**
|
|
180
|
-
```bash
|
|
181
|
-
make test-tox
|
|
182
|
-
# Tests across dbt 1.6, 1.7, 1.8, 1.9, latest
|
|
183
|
-
# Uses Python 3.10
|
|
184
|
-
# Takes ~5-10 minutes
|
|
185
|
-
# Runs in parallel
|
|
186
|
-
|
|
187
|
-
make test-tox-python-versions
|
|
188
|
-
# Tests across Python 3.9, 3.10, 3.11, 3.12, 3.13
|
|
189
|
-
# Uses latest dbt
|
|
190
|
-
# Takes ~10-15 minutes
|
|
191
|
-
```
|
|
192
|
-
|
|
193
|
-
**Tox configuration (tox.ini):**
|
|
194
|
-
- Environments: `dbt1.6`, `dbt1.7`, `dbt1.8`, `dbt1.9`, `dbtlatest`
|
|
195
|
-
- Python versions: `3.9`, `3.10`, `3.11`, `3.12`, `3.13`
|
|
196
|
-
- Base Python for dbt tests: 3.10
|
|
197
|
-
- Dependencies: pytest, pytest-asyncio, pytest-cov, pandas, duckdb, httpx, dbt-duckdb
|
|
198
|
-
- Only latest dbt tests include mcp>=1.0.0
|
|
199
|
-
|
|
200
|
-
## Common Errors & Solutions
|
|
201
|
-
|
|
202
|
-
**Error: "ModuleNotFoundError" after adding dependency**
|
|
203
|
-
- **Cause:** Forgot to reinstall package
|
|
204
|
-
- **Fix:** `pip install -e .[dev]` or `make install-dev`
|
|
205
|
-
|
|
206
|
-
**Error: "flake8 errors" on commit**
|
|
207
|
-
- **Cause:** Forgot to format code first
|
|
208
|
-
- **Fix:** `make format` then try commit again
|
|
209
|
-
|
|
210
|
-
**Error: "ImportError: cannot import name X"**
|
|
211
|
-
- **Cause:** Circular imports or missing __init__.py
|
|
212
|
-
- **Fix:** Check import order, ensure __init__.py exists in package dirs
|
|
213
|
-
|
|
214
|
-
**Error: "pytest: command not found"**
|
|
215
|
-
- **Cause:** Dev dependencies not installed
|
|
216
|
-
- **Fix:** `make install-dev`
|
|
217
|
-
|
|
218
|
-
**Error: "black/isort version mismatch"**
|
|
219
|
-
- **Cause:** Old pre-commit hooks
|
|
220
|
-
- **Fix:** `pre-commit autoupdate` then `pre-commit install`
|
|
221
|
-
|
|
222
|
-
**Error: Tests pass locally but fail in CI**
|
|
223
|
-
- **Cause:** Different dbt version or Python version
|
|
224
|
-
- **Fix:** Run `make test-tox` to test multiple versions locally
|
|
225
|
-
|
|
226
|
-
**Error: "No module named 'recce'" when running tests**
|
|
227
|
-
- **Cause:** Package not installed in editable mode
|
|
228
|
-
- **Fix:** `pip install -e .[dev]`
|
|
229
|
-
|
|
230
|
-
## Architecture - Key Modules
|
|
231
|
-
|
|
232
|
-
### recce/ (Main Package)
|
|
233
|
-
|
|
234
|
-
**Entry Point:**
|
|
235
|
-
- `cli.py` - Click CLI commands (server, run, diff, debug, version, etc.)
|
|
236
|
-
- `__init__.py` - Version loading from VERSION file
|
|
237
|
-
|
|
238
|
-
**Core:**
|
|
239
|
-
- `core.py` - RecceContext singleton (holds state, adapter, DAOs)
|
|
240
|
-
- `config.py` - recce.yml configuration loading and validation
|
|
241
|
-
- `VERSION` - Single source of truth for version number
|
|
242
|
-
|
|
243
|
-
**Adapters:**
|
|
244
|
-
- `adapter/base_adapter.py` - BaseAdapter abstract class
|
|
245
|
-
- `adapter/dbt_adapter.py` - DbtAdapter (parses manifest.json, catalog.json)
|
|
246
|
-
- `adapter/sqlmesh_adapter.py` - SQLMeshAdapter
|
|
247
|
-
- **CRITICAL:** All adapters MUST implement ALL BaseAdapter methods
|
|
248
|
-
|
|
249
|
-
**API Layer:**
|
|
250
|
-
- `apis/server.py` - FastAPI application and routes
|
|
251
|
-
- `apis/check_func.py` - Check CRUD endpoints
|
|
252
|
-
- `apis/run_func.py` - Run execution and polling endpoints
|
|
253
|
-
- Uses: FastAPI, uvicorn, websockets
|
|
254
|
-
|
|
255
|
-
**State Management:**
|
|
256
|
-
- `state/state.py` - RecceState, RecceStateMetadata, ArtifactsRoot models
|
|
257
|
-
- `state/loader.py` - FileStateLoader, CloudStateLoader classes
|
|
258
|
-
- **CRITICAL:** State persistence must work with BOTH loaders
|
|
259
|
-
|
|
260
|
-
**Models:**
|
|
261
|
-
- `models/types.py` - Pydantic models (Check, Run, CheckType, RunType)
|
|
262
|
-
- Uses: pydantic for validation and serialization
|
|
263
|
-
|
|
264
|
-
**Tasks (Async Execution):**
|
|
265
|
-
- `tasks/` - Task classes extending base Task
|
|
266
|
-
- Examples: QueryTask, DiffTask, ProfileDiffTask, RowCountDiffTask
|
|
267
|
-
- Executed asynchronously, results stored in Run objects
|
|
268
|
-
|
|
269
|
-
**Utilities:**
|
|
270
|
-
- `git.py` - Git operations (current_branch, etc.)
|
|
271
|
-
- `pull_request.py` - PR/MR detection
|
|
272
|
-
- `exceptions.py` - RecceException and subclasses
|
|
273
|
-
|
|
274
|
-
**Data (Generated):**
|
|
275
|
-
- `data/` - Frontend build output (DO NOT EDIT)
|
|
276
|
-
- Auto-generated by: `cd js && pnpm run build`
|
|
277
|
-
|
|
278
|
-
### tests/
|
|
279
|
-
|
|
280
|
-
**Structure:**
|
|
281
|
-
- Unit tests with pytest
|
|
282
|
-
- Test files follow pattern: `test_*.py`
|
|
283
|
-
- Uses fixtures for common setup
|
|
284
|
-
- Integration test scripts in `integration_tests/`
|
|
285
|
-
|
|
286
|
-
**Test dependencies:**
|
|
287
|
-
- pytest >= 4.6
|
|
288
|
-
- pytest-asyncio (async test support)
|
|
289
|
-
- pytest-cov (coverage reporting)
|
|
290
|
-
- pandas, duckdb, httpx (test utilities)
|
|
291
|
-
|
|
292
|
-
### recce_cloud/ (Cloud CLI)
|
|
293
|
-
|
|
294
|
-
**Minimal structure:**
|
|
295
|
-
- `cli.py` - Click CLI for recce-cloud command
|
|
296
|
-
- `upload.py` - Artifact upload logic
|
|
297
|
-
- `ci_providers.py` - GitHub Actions/GitLab CI detection
|
|
298
|
-
- `artifact.py` - Artifact validation
|
|
299
|
-
- `__init__.py` - Version loading (shares recce/VERSION)
|
|
300
|
-
|
|
301
|
-
**Dependencies (only 3):**
|
|
302
|
-
- click >= 7.1
|
|
303
|
-
- requests >= 2.28.1
|
|
304
|
-
- rich >= 12.0.0
|
|
305
|
-
|
|
306
|
-
**Use case:** Fast CI/CD artifact uploads without full recce dependencies
|
|
307
|
-
|
|
308
|
-
## State Files - NEVER COMMIT
|
|
309
|
-
|
|
310
|
-
**DO NOT commit these files:**
|
|
311
|
-
- `recce_state.json` - User-specific runtime state
|
|
312
|
-
- `state.json` - Alternative state file name
|
|
313
|
-
- `integration_tests/dbt/recce_state.json`
|
|
314
|
-
- `integration_tests/dbt/recce_summary.md`
|
|
315
|
-
- Any `.duckdb` files in integration tests
|
|
316
|
-
|
|
317
|
-
**These are gitignored but check before committing**
|
|
318
|
-
|
|
319
|
-
## Integration Tests
|
|
320
|
-
|
|
321
|
-
**dbt integration tests:**
|
|
322
|
-
```bash
|
|
323
|
-
cd integration_tests/dbt
|
|
324
|
-
./smoke_test.sh
|
|
325
|
-
# Tests: recce run, recce summary, recce server
|
|
326
|
-
# Requires: dbt, duckdb
|
|
327
|
-
```
|
|
328
|
-
|
|
329
|
-
**SQLMesh integration tests:**
|
|
330
|
-
```bash
|
|
331
|
-
cd integration_tests/sqlmesh
|
|
332
|
-
./prep_env.sh
|
|
333
|
-
./test_server.sh
|
|
334
|
-
# Requires: sqlmesh
|
|
335
|
-
```
|
|
336
|
-
|
|
337
|
-
## CI/CD Validation
|
|
338
|
-
|
|
339
|
-
**GitHub Actions workflows (must pass):**
|
|
340
|
-
|
|
341
|
-
1. **tests-python.yaml** - Triggered by: `recce/**`, `tests/**`, `setup.py`
|
|
342
|
-
- Flake8 linting (Python 3.10)
|
|
343
|
-
- Tests across dbt 1.6-1.9 (Python 3.10)
|
|
344
|
-
- Tests across Python 3.11-3.13 (latest dbt)
|
|
345
|
-
- Codecov upload
|
|
346
|
-
|
|
347
|
-
2. **integration-tests.yaml** - Full smoke tests
|
|
348
|
-
- Matrix: Python 3.9-3.13 × dbt 1.6-latest
|
|
349
|
-
- Runs: `integration_tests/dbt/smoke_test.sh`
|
|
350
|
-
|
|
351
|
-
3. **integration-tests-sqlmesh.yaml**
|
|
352
|
-
- Python 3.11 + SQLMesh latest
|
|
353
|
-
- Runs: `integration_tests/sqlmesh/test_server.sh`
|
|
354
|
-
|
|
355
|
-
4. **integration-tests-cloud.yaml** - Cloud sync tests
|
|
356
|
-
- Requires: GITHUB_TOKEN, RECCE_API_TOKEN
|
|
357
|
-
- Tests cloud mode with real API
|
|
358
|
-
|
|
359
|
-
**Replicate CI locally:**
|
|
360
|
-
```bash
|
|
361
|
-
# Style check
|
|
362
|
-
pip install flake8 && make flake8
|
|
363
|
-
|
|
364
|
-
# Basic tests
|
|
365
|
-
make test
|
|
366
|
-
|
|
367
|
-
# Multi-version tests (matches CI)
|
|
368
|
-
make test-tox
|
|
369
|
-
|
|
370
|
-
# Integration test
|
|
371
|
-
cd integration_tests/dbt && ./smoke_test.sh
|
|
372
|
-
```
|
|
373
|
-
|
|
374
|
-
## Key Patterns & Conventions
|
|
375
|
-
|
|
376
|
-
**Singleton Pattern:**
|
|
377
|
-
- `RecceContext` - Central state holder
|
|
378
|
-
- `RecceConfig` - Configuration loader
|
|
379
|
-
- Only one instance should exist per process
|
|
380
|
-
|
|
381
|
-
**Adapter Pattern:**
|
|
382
|
-
- All adapters extend `BaseAdapter`
|
|
383
|
-
- Must implement: `get_lineage()`, `get_model()`, `execute_sql()`, etc.
|
|
384
|
-
- Loaded dynamically based on CLI flags
|
|
385
|
-
|
|
386
|
-
**State Loader Pattern:**
|
|
387
|
-
- `FileStateLoader` - Local file persistence
|
|
388
|
-
- `CloudStateLoader` - S3/cloud persistence
|
|
389
|
-
- Both implement same interface for interchangeability
|
|
390
|
-
|
|
391
|
-
**DAO Pattern:**
|
|
392
|
-
- `CheckDAO` - Check storage and retrieval
|
|
393
|
-
- `RunDAO` - Run storage and retrieval
|
|
394
|
-
- In-memory storage with state persistence
|
|
395
|
-
|
|
396
|
-
**Task Execution:**
|
|
397
|
-
1. User triggers check via API
|
|
398
|
-
2. POST to `/api/runs` creates Run object
|
|
399
|
-
3. Task submitted to executor (async)
|
|
400
|
-
4. Frontend polls `/api/runs/{id}/wait`
|
|
401
|
-
5. Results stored in Run, persisted to state
|
|
402
|
-
|
|
403
|
-
## Version Management
|
|
404
|
-
|
|
405
|
-
**Single source of truth:** `recce/VERSION`
|
|
406
|
-
|
|
407
|
-
**Read by:**
|
|
408
|
-
- `setup.py` - Package version
|
|
409
|
-
- `setup_cloud.py` - Cloud CLI version
|
|
410
|
-
- `recce/__init__.py` - Runtime version
|
|
411
|
-
- Frontend reads at runtime for display
|
|
412
|
-
|
|
413
|
-
**Update version:**
|
|
414
|
-
1. Edit `recce/VERSION` only
|
|
415
|
-
2. Both packages automatically use same version
|
|
416
|
-
3. GitHub releases trigger PyPI publish
|
|
417
|
-
|
|
418
|
-
## Dependencies - Key Libraries
|
|
419
|
-
|
|
420
|
-
**Main package (setup.py):**
|
|
421
|
-
- **Web framework:** fastapi, uvicorn, websockets
|
|
422
|
-
- **dbt parsing:** No direct dbt dependency (parses JSON artifacts)
|
|
423
|
-
- **Data processing:** boto3 (S3), deepdiff, sqlglot, pandas (tests)
|
|
424
|
-
- **CLI:** click >= 7.1
|
|
425
|
-
- **Utilities:** GitPython, PyGithub, requests, rich, ruamel.yaml
|
|
426
|
-
- **Validation:** pydantic, portalocker
|
|
427
|
-
- **Monitoring:** sentry-sdk
|
|
428
|
-
- **Date/time:** python-dateutil, pytz
|
|
429
|
-
- **Other:** jinja2, py-markdown-table, python-multipart, packaging
|
|
430
|
-
|
|
431
|
-
**Dev dependencies (extras_require['dev']):**
|
|
432
|
-
- **Testing:** pytest >= 4.6, pytest-asyncio, pytest-cov, pytest-flake8
|
|
433
|
-
- **Formatting:** black >= 25.1.0, isort >= 6.0.1
|
|
434
|
-
- **Linting:** flake8 >= 7.2.0
|
|
435
|
-
- **Pre-commit:** pre-commit >= 4.2.0
|
|
436
|
-
- **Type checking:** pytest-mypy
|
|
437
|
-
- **Multi-version:** tox
|
|
438
|
-
- **Utilities:** twine (packaging), pandas, httpx
|
|
439
|
-
|
|
440
|
-
**MCP support (optional extras_require['mcp']):**
|
|
441
|
-
- mcp >= 1.0.0
|
|
442
|
-
|
|
443
|
-
## Quick Command Reference
|
|
444
|
-
|
|
445
|
-
```bash
|
|
446
|
-
# Setup
|
|
447
|
-
make install-dev # Install with dev deps + hooks
|
|
448
|
-
|
|
449
|
-
# Code quality
|
|
450
|
-
make format # Format with Black + isort
|
|
451
|
-
make check # Check without modifying
|
|
452
|
-
make flake8 # Lint only
|
|
453
|
-
|
|
454
|
-
# Cloud CLI
|
|
455
|
-
make format-cloud # Format recce_cloud/
|
|
456
|
-
make check-cloud # Check recce_cloud/
|
|
457
|
-
|
|
458
|
-
# Testing
|
|
459
|
-
make test # Quick unit tests (~30s)
|
|
460
|
-
make test-coverage # With coverage report
|
|
461
|
-
make test-tox # Multi dbt version (~10min)
|
|
462
|
-
make test-tox-python-versions # Multi Python version (~15min)
|
|
463
|
-
pytest tests/test_x.py # Specific test
|
|
464
|
-
|
|
465
|
-
# Run application
|
|
466
|
-
recce server # Start server (port 8000)
|
|
467
|
-
recce debug # Diagnose setup
|
|
468
|
-
recce run # Execute checks
|
|
469
|
-
recce version # Show version
|
|
470
|
-
recce-cloud upload # Upload artifacts
|
|
471
|
-
```
|
|
472
|
-
|
|
473
|
-
## Working with Adapters
|
|
474
|
-
|
|
475
|
-
**Adding a new adapter:**
|
|
476
|
-
1. Create file in `recce/adapter/` extending `BaseAdapter`
|
|
477
|
-
2. Implement ALL abstract methods (no partial implementations)
|
|
478
|
-
3. Add CLI flag in `recce/cli.py` to trigger loading
|
|
479
|
-
4. Update `RecceContext.load()` to instantiate new adapter
|
|
480
|
-
5. Test with both base and current environments
|
|
481
|
-
|
|
482
|
-
**Critical adapter methods:**
|
|
483
|
-
- `get_lineage()` - Return DAG structure
|
|
484
|
-
- `get_model(node_id)` - Retrieve model details
|
|
485
|
-
- `execute_sql(sql, fetch=True)` - Run queries
|
|
486
|
-
- `generate_sql(sql, base_only)` - Generate SQL for environment
|
|
487
|
-
- `get_catalog()` - Return catalog data
|
|
488
|
-
|
|
489
|
-
## Working with State
|
|
490
|
-
|
|
491
|
-
**State persistence flow:**
|
|
492
|
-
1. Changes made via API calls (check/run CRUD)
|
|
493
|
-
2. `RecceContext` holds in-memory state
|
|
494
|
-
3. Auto-save on server shutdown
|
|
495
|
-
4. State loader (File or Cloud) handles persistence
|
|
496
|
-
|
|
497
|
-
**State file structure:**
|
|
498
|
-
- `metadata` - Schema version, recce version, timestamp
|
|
499
|
-
- `runs` - List of Run objects
|
|
500
|
-
- `checks` - List of Check objects
|
|
501
|
-
- `artifacts` - Base and current environment artifacts
|
|
502
|
-
- `git` - Git branch info
|
|
503
|
-
- `pull_request` - PR/MR metadata
|
|
504
|
-
|
|
505
|
-
**NEVER edit state files manually** - Use API or commands
|
|
506
|
-
|
|
507
|
-
## Critical Reminders for Backend Development
|
|
508
|
-
|
|
509
|
-
1. **Always run `make format` before `make check`** - Black/isort must run first
|
|
510
|
-
2. **Pre-commit hooks are required** - Auto-installed with `make install-dev`
|
|
511
|
-
3. **Never skip `make test` before committing** - Catches regressions early
|
|
512
|
-
4. **All adapters must implement ALL BaseAdapter methods** - Partial implementations fail
|
|
513
|
-
5. **Support Python 3.9+** - Check dependencies are compatible
|
|
514
|
-
6. **State files are user-specific** - Never commit `recce_state.json`
|
|
515
|
-
7. **Two separate packages** - Main (`setup.py`) and Cloud (`setup_cloud.py`)
|
|
516
|
-
8. **Line length is 120** - Not 80, not 100, exactly 120
|
|
517
|
-
9. **Version is in recce/VERSION** - Don't hardcode versions elsewhere
|
|
518
|
-
10. **Frontend is in recce/data/** - Never edit, it's auto-generated
|
|
519
|
-
|
|
520
|
-
## Debugging Tips
|
|
521
|
-
|
|
522
|
-
**Server won't start:**
|
|
523
|
-
- Check `recce debug` for artifact/connection issues
|
|
524
|
-
- Verify dbt artifacts in `target/` and `target-base/`
|
|
525
|
-
- Check Python version is 3.9+
|
|
526
|
-
|
|
527
|
-
**Tests failing:**
|
|
528
|
-
- Run with `-v` flag: `pytest tests/test_x.py -v`
|
|
529
|
-
- Check test dependencies installed: `pip install -e .[dev]`
|
|
530
|
-
- Try fresh install: `pip uninstall recce && make install-dev`
|
|
531
|
-
|
|
532
|
-
**Import errors:**
|
|
533
|
-
- Verify package installed: `pip list | grep recce`
|
|
534
|
-
- Check for circular imports in new code
|
|
535
|
-
- Ensure `__init__.py` exists in package directories
|
|
536
|
-
|
|
537
|
-
**Type checking (optional):**
|
|
538
|
-
- Mypy not in standard workflow but available
|
|
539
|
-
- Run: `mypy recce/` if needed
|
|
540
|
-
|
|
541
|
-
**Trust these instructions.** The Python backend has specific requirements for code quality, testing, and packaging. Only search for additional information if these instructions are incomplete or incorrect.
|