truthound-dashboard 1.4.2__tar.gz → 1.5.0__tar.gz
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.
- {truthound_dashboard-1.4.2 → truthound_dashboard-1.5.0}/.gitignore +7 -0
- truthound_dashboard-1.5.0/PKG-INFO +309 -0
- truthound_dashboard-1.5.0/README.md +264 -0
- {truthound_dashboard-1.4.2 → truthound_dashboard-1.5.0}/pyproject.toml +11 -6
- {truthound_dashboard-1.4.2 → truthound_dashboard-1.5.0}/src/truthound_dashboard/api/alerts.py +75 -86
- {truthound_dashboard-1.4.2 → truthound_dashboard-1.5.0}/src/truthound_dashboard/api/anomaly.py +7 -13
- {truthound_dashboard-1.4.2 → truthound_dashboard-1.5.0}/src/truthound_dashboard/api/cross_alerts.py +38 -52
- {truthound_dashboard-1.4.2 → truthound_dashboard-1.5.0}/src/truthound_dashboard/api/drift.py +49 -59
- {truthound_dashboard-1.4.2 → truthound_dashboard-1.5.0}/src/truthound_dashboard/api/drift_monitor.py +234 -79
- truthound_dashboard-1.5.0/src/truthound_dashboard/api/enterprise_sampling.py +498 -0
- {truthound_dashboard-1.4.2 → truthound_dashboard-1.5.0}/src/truthound_dashboard/api/history.py +57 -5
- {truthound_dashboard-1.4.2 → truthound_dashboard-1.5.0}/src/truthound_dashboard/api/lineage.py +3 -48
- {truthound_dashboard-1.4.2 → truthound_dashboard-1.5.0}/src/truthound_dashboard/api/maintenance.py +104 -49
- {truthound_dashboard-1.4.2 → truthound_dashboard-1.5.0}/src/truthound_dashboard/api/mask.py +1 -2
- {truthound_dashboard-1.4.2 → truthound_dashboard-1.5.0}/src/truthound_dashboard/api/middleware.py +2 -1
- truthound_dashboard-1.5.0/src/truthound_dashboard/api/model_monitoring.py +929 -0
- {truthound_dashboard-1.4.2 → truthound_dashboard-1.5.0}/src/truthound_dashboard/api/notifications.py +227 -191
- {truthound_dashboard-1.4.2 → truthound_dashboard-1.5.0}/src/truthound_dashboard/api/notifications_advanced.py +21 -20
- truthound_dashboard-1.5.0/src/truthound_dashboard/api/observability.py +586 -0
- {truthound_dashboard-1.4.2 → truthound_dashboard-1.5.0}/src/truthound_dashboard/api/plugins.py +2 -433
- truthound_dashboard-1.5.0/src/truthound_dashboard/api/profile.py +419 -0
- truthound_dashboard-1.5.0/src/truthound_dashboard/api/quality_reporter.py +701 -0
- {truthound_dashboard-1.4.2 → truthound_dashboard-1.5.0}/src/truthound_dashboard/api/reports.py +7 -16
- {truthound_dashboard-1.4.2 → truthound_dashboard-1.5.0}/src/truthound_dashboard/api/router.py +66 -0
- {truthound_dashboard-1.4.2 → truthound_dashboard-1.5.0}/src/truthound_dashboard/api/rule_suggestions.py +5 -5
- {truthound_dashboard-1.4.2 → truthound_dashboard-1.5.0}/src/truthound_dashboard/api/scan.py +17 -19
- {truthound_dashboard-1.4.2 → truthound_dashboard-1.5.0}/src/truthound_dashboard/api/schedules.py +85 -50
- {truthound_dashboard-1.4.2 → truthound_dashboard-1.5.0}/src/truthound_dashboard/api/schema_evolution.py +6 -6
- truthound_dashboard-1.5.0/src/truthound_dashboard/api/schema_watcher.py +667 -0
- {truthound_dashboard-1.4.2 → truthound_dashboard-1.5.0}/src/truthound_dashboard/api/sources.py +98 -27
- truthound_dashboard-1.5.0/src/truthound_dashboard/api/tiering.py +1323 -0
- {truthound_dashboard-1.4.2 → truthound_dashboard-1.5.0}/src/truthound_dashboard/api/triggers.py +14 -11
- {truthound_dashboard-1.4.2 → truthound_dashboard-1.5.0}/src/truthound_dashboard/api/validations.py +12 -11
- {truthound_dashboard-1.4.2 → truthound_dashboard-1.5.0}/src/truthound_dashboard/api/versioning.py +1 -6
- {truthound_dashboard-1.4.2 → truthound_dashboard-1.5.0}/src/truthound_dashboard/core/__init__.py +129 -3
- truthound_dashboard-1.5.0/src/truthound_dashboard/core/actions/__init__.py +62 -0
- truthound_dashboard-1.5.0/src/truthound_dashboard/core/actions/custom.py +426 -0
- truthound_dashboard-1.5.0/src/truthound_dashboard/core/actions/notifications.py +910 -0
- truthound_dashboard-1.5.0/src/truthound_dashboard/core/actions/storage.py +472 -0
- truthound_dashboard-1.5.0/src/truthound_dashboard/core/actions/webhook.py +281 -0
- {truthound_dashboard-1.4.2 → truthound_dashboard-1.5.0}/src/truthound_dashboard/core/anomaly.py +262 -67
- {truthound_dashboard-1.4.2 → truthound_dashboard-1.5.0}/src/truthound_dashboard/core/anomaly_explainer.py +4 -3
- truthound_dashboard-1.5.0/src/truthound_dashboard/core/backends/__init__.py +67 -0
- truthound_dashboard-1.5.0/src/truthound_dashboard/core/backends/base.py +299 -0
- truthound_dashboard-1.5.0/src/truthound_dashboard/core/backends/errors.py +191 -0
- truthound_dashboard-1.5.0/src/truthound_dashboard/core/backends/factory.py +423 -0
- truthound_dashboard-1.5.0/src/truthound_dashboard/core/backends/mock_backend.py +451 -0
- truthound_dashboard-1.5.0/src/truthound_dashboard/core/backends/truthound_backend.py +718 -0
- truthound_dashboard-1.5.0/src/truthound_dashboard/core/checkpoint/__init__.py +87 -0
- truthound_dashboard-1.5.0/src/truthound_dashboard/core/checkpoint/adapters.py +814 -0
- truthound_dashboard-1.5.0/src/truthound_dashboard/core/checkpoint/checkpoint.py +491 -0
- truthound_dashboard-1.5.0/src/truthound_dashboard/core/checkpoint/runner.py +270 -0
- {truthound_dashboard-1.4.2 → truthound_dashboard-1.5.0}/src/truthound_dashboard/core/connections.py +437 -10
- truthound_dashboard-1.5.0/src/truthound_dashboard/core/converters/__init__.py +14 -0
- truthound_dashboard-1.5.0/src/truthound_dashboard/core/converters/truthound.py +620 -0
- truthound_dashboard-1.5.0/src/truthound_dashboard/core/cross_alerts.py +1057 -0
- truthound_dashboard-1.5.0/src/truthound_dashboard/core/datasource_factory.py +1672 -0
- {truthound_dashboard-1.4.2 → truthound_dashboard-1.5.0}/src/truthound_dashboard/core/drift_monitor.py +216 -20
- truthound_dashboard-1.5.0/src/truthound_dashboard/core/enterprise_sampling.py +1291 -0
- truthound_dashboard-1.5.0/src/truthound_dashboard/core/interfaces/__init__.py +225 -0
- truthound_dashboard-1.5.0/src/truthound_dashboard/core/interfaces/actions.py +652 -0
- truthound_dashboard-1.5.0/src/truthound_dashboard/core/interfaces/base.py +247 -0
- truthound_dashboard-1.5.0/src/truthound_dashboard/core/interfaces/checkpoint.py +676 -0
- truthound_dashboard-1.5.0/src/truthound_dashboard/core/interfaces/protocols.py +664 -0
- truthound_dashboard-1.5.0/src/truthound_dashboard/core/interfaces/reporters.py +650 -0
- truthound_dashboard-1.5.0/src/truthound_dashboard/core/interfaces/routing.py +646 -0
- truthound_dashboard-1.5.0/src/truthound_dashboard/core/interfaces/triggers.py +619 -0
- {truthound_dashboard-1.4.2 → truthound_dashboard-1.5.0}/src/truthound_dashboard/core/lineage.py +407 -71
- {truthound_dashboard-1.4.2 → truthound_dashboard-1.5.0}/src/truthound_dashboard/core/model_monitoring.py +431 -3
- {truthound_dashboard-1.4.2 → truthound_dashboard-1.5.0}/src/truthound_dashboard/core/notifications/base.py +4 -0
- truthound_dashboard-1.5.0/src/truthound_dashboard/core/notifications/channels.py +874 -0
- truthound_dashboard-1.5.0/src/truthound_dashboard/core/notifications/deduplication/__init__.py +109 -0
- truthound_dashboard-1.5.0/src/truthound_dashboard/core/notifications/deduplication/service.py +183 -0
- {truthound_dashboard-1.4.2 → truthound_dashboard-1.5.0}/src/truthound_dashboard/core/notifications/dispatcher.py +202 -11
- truthound_dashboard-1.5.0/src/truthound_dashboard/core/notifications/escalation/__init__.py +162 -0
- truthound_dashboard-1.5.0/src/truthound_dashboard/core/notifications/escalation/engine.py +239 -0
- truthound_dashboard-1.5.0/src/truthound_dashboard/core/notifications/routing/__init__.py +129 -0
- truthound_dashboard-1.5.0/src/truthound_dashboard/core/notifications/routing/engine.py +155 -0
- {truthound_dashboard-1.4.2 → truthound_dashboard-1.5.0}/src/truthound_dashboard/core/notifications/stats_aggregator.py +246 -1
- truthound_dashboard-1.5.0/src/truthound_dashboard/core/notifications/throttling/__init__.py +100 -0
- truthound_dashboard-1.5.0/src/truthound_dashboard/core/notifications/throttling/builder.py +173 -0
- truthound_dashboard-1.5.0/src/truthound_dashboard/core/notifications/truthound_adapter.py +842 -0
- {truthound_dashboard-1.4.2 → truthound_dashboard-1.5.0}/src/truthound_dashboard/core/phase5/collaboration.py +1 -1
- {truthound_dashboard-1.4.2 → truthound_dashboard-1.5.0}/src/truthound_dashboard/core/plugins/lifecycle/__init__.py +0 -13
- truthound_dashboard-1.5.0/src/truthound_dashboard/core/quality_reporter.py +1359 -0
- {truthound_dashboard-1.4.2 → truthound_dashboard-1.5.0}/src/truthound_dashboard/core/report_history.py +0 -6
- truthound_dashboard-1.5.0/src/truthound_dashboard/core/reporters/__init__.py +218 -0
- truthound_dashboard-1.5.0/src/truthound_dashboard/core/reporters/adapters.py +943 -0
- {truthound_dashboard-1.4.2 → truthound_dashboard-1.5.0}/src/truthound_dashboard/core/reporters/base.py +0 -3
- truthound_dashboard-1.5.0/src/truthound_dashboard/core/reporters/builtin/__init__.py +18 -0
- truthound_dashboard-1.5.0/src/truthound_dashboard/core/reporters/builtin/csv_reporter.py +111 -0
- truthound_dashboard-1.5.0/src/truthound_dashboard/core/reporters/builtin/html_reporter.py +270 -0
- truthound_dashboard-1.5.0/src/truthound_dashboard/core/reporters/builtin/json_reporter.py +127 -0
- truthound_dashboard-1.5.0/src/truthound_dashboard/core/reporters/compat.py +266 -0
- {truthound_dashboard-1.4.2 → truthound_dashboard-1.5.0}/src/truthound_dashboard/core/reporters/csv_reporter.py +2 -35
- truthound_dashboard-1.5.0/src/truthound_dashboard/core/reporters/factory.py +526 -0
- truthound_dashboard-1.5.0/src/truthound_dashboard/core/reporters/interfaces.py +745 -0
- {truthound_dashboard-1.4.2 → truthound_dashboard-1.5.0}/src/truthound_dashboard/core/reporters/registry.py +1 -10
- {truthound_dashboard-1.4.2 → truthound_dashboard-1.5.0}/src/truthound_dashboard/core/scheduler.py +165 -0
- {truthound_dashboard-1.4.2 → truthound_dashboard-1.5.0}/src/truthound_dashboard/core/schema_evolution.py +3 -3
- truthound_dashboard-1.5.0/src/truthound_dashboard/core/schema_watcher.py +1528 -0
- {truthound_dashboard-1.4.2 → truthound_dashboard-1.5.0}/src/truthound_dashboard/core/services.py +595 -76
- truthound_dashboard-1.5.0/src/truthound_dashboard/core/store_manager.py +810 -0
- {truthound_dashboard-1.4.2 → truthound_dashboard-1.5.0}/src/truthound_dashboard/core/streaming_anomaly.py +169 -4
- truthound_dashboard-1.5.0/src/truthound_dashboard/core/tiering.py +1309 -0
- {truthound_dashboard-1.4.2 → truthound_dashboard-1.5.0}/src/truthound_dashboard/core/triggers/evaluators.py +178 -8
- truthound_dashboard-1.5.0/src/truthound_dashboard/core/truthound_adapter.py +3497 -0
- {truthound_dashboard-1.4.2 → truthound_dashboard-1.5.0}/src/truthound_dashboard/core/unified_alerts.py +23 -20
- {truthound_dashboard-1.4.2 → truthound_dashboard-1.5.0}/src/truthound_dashboard/db/__init__.py +8 -0
- {truthound_dashboard-1.4.2 → truthound_dashboard-1.5.0}/src/truthound_dashboard/db/database.py +8 -2
- {truthound_dashboard-1.4.2 → truthound_dashboard-1.5.0}/src/truthound_dashboard/db/models.py +944 -25
- {truthound_dashboard-1.4.2 → truthound_dashboard-1.5.0}/src/truthound_dashboard/db/repository.py +2 -0
- {truthound_dashboard-1.4.2 → truthound_dashboard-1.5.0}/src/truthound_dashboard/main.py +11 -0
- {truthound_dashboard-1.4.2 → truthound_dashboard-1.5.0}/src/truthound_dashboard/schemas/__init__.py +177 -16
- {truthound_dashboard-1.4.2 → truthound_dashboard-1.5.0}/src/truthound_dashboard/schemas/base.py +44 -23
- {truthound_dashboard-1.4.2 → truthound_dashboard-1.5.0}/src/truthound_dashboard/schemas/collaboration.py +19 -6
- {truthound_dashboard-1.4.2 → truthound_dashboard-1.5.0}/src/truthound_dashboard/schemas/cross_alerts.py +19 -3
- {truthound_dashboard-1.4.2 → truthound_dashboard-1.5.0}/src/truthound_dashboard/schemas/drift.py +61 -55
- {truthound_dashboard-1.4.2 → truthound_dashboard-1.5.0}/src/truthound_dashboard/schemas/drift_monitor.py +67 -23
- truthound_dashboard-1.5.0/src/truthound_dashboard/schemas/enterprise_sampling.py +653 -0
- {truthound_dashboard-1.4.2 → truthound_dashboard-1.5.0}/src/truthound_dashboard/schemas/lineage.py +0 -33
- {truthound_dashboard-1.4.2 → truthound_dashboard-1.5.0}/src/truthound_dashboard/schemas/mask.py +10 -8
- {truthound_dashboard-1.4.2 → truthound_dashboard-1.5.0}/src/truthound_dashboard/schemas/model_monitoring.py +89 -10
- {truthound_dashboard-1.4.2 → truthound_dashboard-1.5.0}/src/truthound_dashboard/schemas/notifications_advanced.py +13 -0
- truthound_dashboard-1.5.0/src/truthound_dashboard/schemas/observability.py +453 -0
- {truthound_dashboard-1.4.2 → truthound_dashboard-1.5.0}/src/truthound_dashboard/schemas/plugins.py +0 -280
- truthound_dashboard-1.5.0/src/truthound_dashboard/schemas/profile.py +427 -0
- truthound_dashboard-1.5.0/src/truthound_dashboard/schemas/quality_reporter.py +403 -0
- {truthound_dashboard-1.4.2 → truthound_dashboard-1.5.0}/src/truthound_dashboard/schemas/reports.py +2 -2
- {truthound_dashboard-1.4.2 → truthound_dashboard-1.5.0}/src/truthound_dashboard/schemas/rule_suggestion.py +8 -1
- {truthound_dashboard-1.4.2 → truthound_dashboard-1.5.0}/src/truthound_dashboard/schemas/scan.py +4 -24
- {truthound_dashboard-1.4.2 → truthound_dashboard-1.5.0}/src/truthound_dashboard/schemas/schedule.py +11 -3
- truthound_dashboard-1.5.0/src/truthound_dashboard/schemas/schema_watcher.py +727 -0
- {truthound_dashboard-1.4.2 → truthound_dashboard-1.5.0}/src/truthound_dashboard/schemas/source.py +17 -2
- truthound_dashboard-1.5.0/src/truthound_dashboard/schemas/tiering.py +822 -0
- {truthound_dashboard-1.4.2 → truthound_dashboard-1.5.0}/src/truthound_dashboard/schemas/triggers.py +16 -0
- {truthound_dashboard-1.4.2 → truthound_dashboard-1.5.0}/src/truthound_dashboard/schemas/unified_alerts.py +7 -0
- {truthound_dashboard-1.4.2 → truthound_dashboard-1.5.0}/src/truthound_dashboard/schemas/validation.py +0 -13
- {truthound_dashboard-1.4.2 → truthound_dashboard-1.5.0}/src/truthound_dashboard/schemas/validators/base.py +41 -21
- truthound_dashboard-1.5.0/src/truthound_dashboard/schemas/validators/business_rule_validators.py +244 -0
- truthound_dashboard-1.5.0/src/truthound_dashboard/schemas/validators/localization_validators.py +273 -0
- truthound_dashboard-1.5.0/src/truthound_dashboard/schemas/validators/ml_feature_validators.py +308 -0
- truthound_dashboard-1.5.0/src/truthound_dashboard/schemas/validators/profiling_validators.py +275 -0
- truthound_dashboard-1.5.0/src/truthound_dashboard/schemas/validators/referential_validators.py +312 -0
- {truthound_dashboard-1.4.2 → truthound_dashboard-1.5.0}/src/truthound_dashboard/schemas/validators/registry.py +93 -8
- truthound_dashboard-1.5.0/src/truthound_dashboard/schemas/validators/timeseries_validators.py +389 -0
- {truthound_dashboard-1.4.2 → truthound_dashboard-1.5.0}/src/truthound_dashboard/schemas/versioning.py +1 -6
- {truthound_dashboard-1.4.2/frontend → truthound_dashboard-1.5.0/src/truthound_dashboard/static}/index.html +2 -1
- truthound_dashboard-1.4.2/.github/workflows/release.yml +0 -57
- truthound_dashboard-1.4.2/.github/workflows/trigger-docs.yml +0 -16
- truthound_dashboard-1.4.2/PKG-INFO +0 -505
- truthound_dashboard-1.4.2/README.md +0 -456
- truthound_dashboard-1.4.2/docs/advanced-features.md +0 -578
- truthound_dashboard-1.4.2/docs/api.md +0 -1572
- truthound_dashboard-1.4.2/docs/configuration.md +0 -388
- truthound_dashboard-1.4.2/docs/features.md +0 -860
- truthound_dashboard-1.4.2/docs/getting-started.md +0 -170
- truthound_dashboard-1.4.2/docs/index.md +0 -86
- truthound_dashboard-1.4.2/docs/internationalization.md +0 -624
- truthound_dashboard-1.4.2/e2e/package-lock.json +0 -78
- truthound_dashboard-1.4.2/e2e/package.json +0 -18
- truthound_dashboard-1.4.2/e2e/playwright.config.ts +0 -83
- truthound_dashboard-1.4.2/e2e/tests/activity.spec.ts +0 -815
- truthound_dashboard-1.4.2/e2e/tests/anomaly.spec.ts +0 -517
- truthound_dashboard-1.4.2/e2e/tests/dashboard.spec.ts +0 -36
- truthound_dashboard-1.4.2/e2e/tests/drift-monitoring.spec.ts +0 -747
- truthound_dashboard-1.4.2/e2e/tests/drift.spec.ts +0 -637
- truthound_dashboard-1.4.2/e2e/tests/language.spec.ts +0 -48
- truthound_dashboard-1.4.2/e2e/tests/lineage.spec.ts +0 -272
- truthound_dashboard-1.4.2/e2e/tests/maintenance.spec.ts +0 -971
- truthound_dashboard-1.4.2/e2e/tests/model-monitoring.spec.ts +0 -513
- truthound_dashboard-1.4.2/e2e/tests/notifications-advanced-deep.spec.ts +0 -478
- truthound_dashboard-1.4.2/e2e/tests/notifications-advanced.spec.ts +0 -638
- truthound_dashboard-1.4.2/e2e/tests/notifications.spec.ts +0 -528
- truthound_dashboard-1.4.2/e2e/tests/plugins.spec.ts +0 -1235
- truthound_dashboard-1.4.2/e2e/tests/privacy-new.spec.ts +0 -20
- truthound_dashboard-1.4.2/e2e/tests/privacy.spec.ts +0 -255
- truthound_dashboard-1.4.2/e2e/tests/reports.spec.ts +0 -785
- truthound_dashboard-1.4.2/e2e/tests/schedules.spec.ts +0 -985
- truthound_dashboard-1.4.2/e2e/tests/theme.spec.ts +0 -50
- truthound_dashboard-1.4.2/frontend/.env.development +0 -3
- truthound_dashboard-1.4.2/frontend/.env.mock +0 -3
- truthound_dashboard-1.4.2/frontend/.env.pip +0 -3
- truthound_dashboard-1.4.2/frontend/.eslintrc.cjs +0 -20
- truthound_dashboard-1.4.2/frontend/.gitignore +0 -1
- truthound_dashboard-1.4.2/frontend/intlayer.config.mjs +0 -23
- truthound_dashboard-1.4.2/frontend/package-lock.json +0 -11803
- truthound_dashboard-1.4.2/frontend/package.json +0 -91
- truthound_dashboard-1.4.2/frontend/postcss.config.js +0 -6
- truthound_dashboard-1.4.2/frontend/public/favicon.ico +0 -0
- truthound_dashboard-1.4.2/frontend/public/mockServiceWorker.js +0 -349
- truthound_dashboard-1.4.2/frontend/scripts/generate-fallbacks.mjs +0 -111
- truthound_dashboard-1.4.2/frontend/src/App.tsx +0 -87
- truthound_dashboard-1.4.2/frontend/src/api/client.ts +0 -6116
- truthound_dashboard-1.4.2/frontend/src/assets/logo.png +0 -0
- truthound_dashboard-1.4.2/frontend/src/components/AnimatedNumber.test.tsx +0 -144
- truthound_dashboard-1.4.2/frontend/src/components/AnimatedNumber.tsx +0 -86
- truthound_dashboard-1.4.2/frontend/src/components/ConfirmDialog.tsx +0 -131
- truthound_dashboard-1.4.2/frontend/src/components/GlassCard.test.tsx +0 -216
- truthound_dashboard-1.4.2/frontend/src/components/GlassCard.tsx +0 -93
- truthound_dashboard-1.4.2/frontend/src/components/Layout.tsx +0 -322
- truthound_dashboard-1.4.2/frontend/src/components/LoadingFallback.tsx +0 -39
- truthound_dashboard-1.4.2/frontend/src/components/ThemeToggle.tsx +0 -132
- truthound_dashboard-1.4.2/frontend/src/components/alerts/AlertCorrelation.tsx +0 -220
- truthound_dashboard-1.4.2/frontend/src/components/alerts/AlertSummaryCards.tsx +0 -305
- truthound_dashboard-1.4.2/frontend/src/components/alerts/UnifiedAlertList.tsx +0 -391
- truthound_dashboard-1.4.2/frontend/src/components/alerts/index.ts +0 -7
- truthound_dashboard-1.4.2/frontend/src/components/anomaly/AlgorithmAgreement.tsx +0 -334
- truthound_dashboard-1.4.2/frontend/src/components/anomaly/AlgorithmComparison.tsx +0 -263
- truthound_dashboard-1.4.2/frontend/src/components/anomaly/AlgorithmConfigForm.tsx +0 -219
- truthound_dashboard-1.4.2/frontend/src/components/anomaly/AlgorithmSelector.tsx +0 -95
- truthound_dashboard-1.4.2/frontend/src/components/anomaly/AnomalyDetectionPanel.tsx +0 -344
- truthound_dashboard-1.4.2/frontend/src/components/anomaly/AnomalyExplanation.tsx +0 -322
- truthound_dashboard-1.4.2/frontend/src/components/anomaly/AnomalyHistoryList.tsx +0 -123
- truthound_dashboard-1.4.2/frontend/src/components/anomaly/AnomalyResultsTable.tsx +0 -137
- truthound_dashboard-1.4.2/frontend/src/components/anomaly/AnomalyScoreChart.tsx +0 -85
- truthound_dashboard-1.4.2/frontend/src/components/anomaly/BatchDetectionDialog.tsx +0 -374
- truthound_dashboard-1.4.2/frontend/src/components/anomaly/BatchProgress.tsx +0 -273
- truthound_dashboard-1.4.2/frontend/src/components/anomaly/BatchResults.tsx +0 -341
- truthound_dashboard-1.4.2/frontend/src/components/anomaly/ColumnAnomalySummary.tsx +0 -78
- truthound_dashboard-1.4.2/frontend/src/components/anomaly/ComparisonChart.tsx +0 -252
- truthound_dashboard-1.4.2/frontend/src/components/anomaly/ComparisonResultsTable.tsx +0 -277
- truthound_dashboard-1.4.2/frontend/src/components/anomaly/ExplanationSummary.tsx +0 -134
- truthound_dashboard-1.4.2/frontend/src/components/anomaly/FeatureContributionChart.tsx +0 -154
- truthound_dashboard-1.4.2/frontend/src/components/anomaly/StreamingChart.tsx +0 -308
- truthound_dashboard-1.4.2/frontend/src/components/anomaly/StreamingControls.tsx +0 -268
- truthound_dashboard-1.4.2/frontend/src/components/anomaly/StreamingDashboard.tsx +0 -337
- truthound_dashboard-1.4.2/frontend/src/components/anomaly/index.ts +0 -16
- truthound_dashboard-1.4.2/frontend/src/components/catalog/AssetFormDialog.tsx +0 -207
- truthound_dashboard-1.4.2/frontend/src/components/catalog/ColumnMappingDialog.tsx +0 -105
- truthound_dashboard-1.4.2/frontend/src/components/collaboration/ActivityFeed.tsx +0 -170
- truthound_dashboard-1.4.2/frontend/src/components/collaboration/Comments.tsx +0 -355
- truthound_dashboard-1.4.2/frontend/src/components/common/CodeEditor.tsx +0 -355
- truthound_dashboard-1.4.2/frontend/src/components/common/LanguageSelector.tsx +0 -153
- truthound_dashboard-1.4.2/frontend/src/components/common/index.ts +0 -6
- truthound_dashboard-1.4.2/frontend/src/components/cross-alerts/AutoTriggerConfig.tsx +0 -389
- truthound_dashboard-1.4.2/frontend/src/components/cross-alerts/CorrelatedAlerts.tsx +0 -347
- truthound_dashboard-1.4.2/frontend/src/components/cross-alerts/CrossAlertCard.tsx +0 -299
- truthound_dashboard-1.4.2/frontend/src/components/cross-alerts/index.ts +0 -7
- truthound_dashboard-1.4.2/frontend/src/components/drift/ChunkedProgress.tsx +0 -313
- truthound_dashboard-1.4.2/frontend/src/components/drift/ColumnDistributionChart.tsx +0 -218
- truthound_dashboard-1.4.2/frontend/src/components/drift/ColumnDistributionComparison.tsx +0 -249
- truthound_dashboard-1.4.2/frontend/src/components/drift/ColumnDriftCard.tsx +0 -176
- truthound_dashboard-1.4.2/frontend/src/components/drift/ColumnDrilldown.tsx +0 -384
- truthound_dashboard-1.4.2/frontend/src/components/drift/ColumnStatistics.tsx +0 -146
- truthound_dashboard-1.4.2/frontend/src/components/drift/DriftAlertList.tsx +0 -213
- truthound_dashboard-1.4.2/frontend/src/components/drift/DriftConfigPanel.tsx +0 -515
- truthound_dashboard-1.4.2/frontend/src/components/drift/DriftMethodSelector.tsx +0 -416
- truthound_dashboard-1.4.2/frontend/src/components/drift/DriftMonitorForm.tsx +0 -502
- truthound_dashboard-1.4.2/frontend/src/components/drift/DriftMonitorList.tsx +0 -233
- truthound_dashboard-1.4.2/frontend/src/components/drift/DriftMonitorStats.tsx +0 -115
- truthound_dashboard-1.4.2/frontend/src/components/drift/DriftPreview.tsx +0 -323
- truthound_dashboard-1.4.2/frontend/src/components/drift/DriftPreviewResults.tsx +0 -298
- truthound_dashboard-1.4.2/frontend/src/components/drift/DriftScoreGauge.tsx +0 -129
- truthound_dashboard-1.4.2/frontend/src/components/drift/DriftTrendChart.tsx +0 -176
- truthound_dashboard-1.4.2/frontend/src/components/drift/LargeDatasetWarning.tsx +0 -204
- truthound_dashboard-1.4.2/frontend/src/components/drift/RemediationPanel.tsx +0 -303
- truthound_dashboard-1.4.2/frontend/src/components/drift/RootCauseAnalysis.tsx +0 -521
- truthound_dashboard-1.4.2/frontend/src/components/drift/SamplingConfig.tsx +0 -360
- truthound_dashboard-1.4.2/frontend/src/components/drift/index.ts +0 -47
- truthound_dashboard-1.4.2/frontend/src/components/glossary/TermFormDialog.tsx +0 -208
- truthound_dashboard-1.4.2/frontend/src/components/lineage/AnomalyImpactPath.tsx +0 -257
- truthound_dashboard-1.4.2/frontend/src/components/lineage/AnomalyLegend.tsx +0 -301
- truthound_dashboard-1.4.2/frontend/src/components/lineage/AnomalyOverlayNode.tsx +0 -257
- truthound_dashboard-1.4.2/frontend/src/components/lineage/ColumnImpactAnalysis.tsx +0 -336
- truthound_dashboard-1.4.2/frontend/src/components/lineage/ColumnLineageEdge.tsx +0 -215
- truthound_dashboard-1.4.2/frontend/src/components/lineage/ColumnLineagePanel.tsx +0 -254
- truthound_dashboard-1.4.2/frontend/src/components/lineage/ColumnMappingTable.tsx +0 -321
- truthound_dashboard-1.4.2/frontend/src/components/lineage/CytoscapeLineageGraph.tsx +0 -323
- truthound_dashboard-1.4.2/frontend/src/components/lineage/ImpactAnalysisPanel.tsx +0 -144
- truthound_dashboard-1.4.2/frontend/src/components/lineage/LazyLineageNode.tsx +0 -215
- truthound_dashboard-1.4.2/frontend/src/components/lineage/LineageCluster.tsx +0 -165
- truthound_dashboard-1.4.2/frontend/src/components/lineage/LineageControls.tsx +0 -84
- truthound_dashboard-1.4.2/frontend/src/components/lineage/LineageEdge.tsx +0 -88
- truthound_dashboard-1.4.2/frontend/src/components/lineage/LineageExportPanel.tsx +0 -279
- truthound_dashboard-1.4.2/frontend/src/components/lineage/LineageGraph.tsx +0 -479
- truthound_dashboard-1.4.2/frontend/src/components/lineage/LineageMinimap.tsx +0 -265
- truthound_dashboard-1.4.2/frontend/src/components/lineage/LineageNode.tsx +0 -342
- truthound_dashboard-1.4.2/frontend/src/components/lineage/LineageNodeDetails.tsx +0 -417
- truthound_dashboard-1.4.2/frontend/src/components/lineage/LineageRendererSelector.tsx +0 -105
- truthound_dashboard-1.4.2/frontend/src/components/lineage/LineageToolbar.tsx +0 -160
- truthound_dashboard-1.4.2/frontend/src/components/lineage/MermaidLineageGraph.tsx +0 -331
- truthound_dashboard-1.4.2/frontend/src/components/lineage/OpenLineageConfig.tsx +0 -396
- truthound_dashboard-1.4.2/frontend/src/components/lineage/OpenLineageExport.tsx +0 -441
- truthound_dashboard-1.4.2/frontend/src/components/lineage/VirtualizedLineageGraph.tsx +0 -353
- truthound_dashboard-1.4.2/frontend/src/components/lineage/WebhookForm.tsx +0 -283
- truthound_dashboard-1.4.2/frontend/src/components/lineage/WebhookStatus.tsx +0 -134
- truthound_dashboard-1.4.2/frontend/src/components/lineage/column-lineage-types.ts +0 -102
- truthound_dashboard-1.4.2/frontend/src/components/lineage/index.ts +0 -58
- truthound_dashboard-1.4.2/frontend/src/components/maintenance/MaintenanceSettings.tsx +0 -452
- truthound_dashboard-1.4.2/frontend/src/components/maintenance/index.ts +0 -5
- truthound_dashboard-1.4.2/frontend/src/components/model-monitoring/AlertHandlerList.tsx +0 -238
- truthound_dashboard-1.4.2/frontend/src/components/model-monitoring/AlertList.tsx +0 -162
- truthound_dashboard-1.4.2/frontend/src/components/model-monitoring/AlertRuleList.tsx +0 -169
- truthound_dashboard-1.4.2/frontend/src/components/model-monitoring/MetricsChart.tsx +0 -187
- truthound_dashboard-1.4.2/frontend/src/components/model-monitoring/ModelDashboard.tsx +0 -399
- truthound_dashboard-1.4.2/frontend/src/components/model-monitoring/ModelHealthIndicator.tsx +0 -178
- truthound_dashboard-1.4.2/frontend/src/components/model-monitoring/ModelList.tsx +0 -195
- truthound_dashboard-1.4.2/frontend/src/components/model-monitoring/ModelMetricsChart.tsx +0 -283
- truthound_dashboard-1.4.2/frontend/src/components/model-monitoring/MonitoringOverviewStats.tsx +0 -132
- truthound_dashboard-1.4.2/frontend/src/components/model-monitoring/RegisterModelDialog.tsx +0 -397
- truthound_dashboard-1.4.2/frontend/src/components/model-monitoring/index.ts +0 -20
- truthound_dashboard-1.4.2/frontend/src/components/notifications/BulkActionBar.tsx +0 -587
- truthound_dashboard-1.4.2/frontend/src/components/notifications/ChannelConfigForm.tsx +0 -881
- truthound_dashboard-1.4.2/frontend/src/components/notifications/ConfigImportExport.tsx +0 -716
- truthound_dashboard-1.4.2/frontend/src/components/notifications/DeduplicationTab.tsx +0 -575
- truthound_dashboard-1.4.2/frontend/src/components/notifications/EscalationLevelBuilder.tsx +0 -777
- truthound_dashboard-1.4.2/frontend/src/components/notifications/EscalationTab.tsx +0 -824
- truthound_dashboard-1.4.2/frontend/src/components/notifications/EscalationTimeline.tsx +0 -600
- truthound_dashboard-1.4.2/frontend/src/components/notifications/ExpressionRuleEditor.tsx +0 -900
- truthound_dashboard-1.4.2/frontend/src/components/notifications/IncidentDetailDialog.tsx +0 -818
- truthound_dashboard-1.4.2/frontend/src/components/notifications/Jinja2RuleEditor.tsx +0 -975
- truthound_dashboard-1.4.2/frontend/src/components/notifications/RoutingRulesTab.tsx +0 -722
- truthound_dashboard-1.4.2/frontend/src/components/notifications/RuleBuilder.tsx +0 -1647
- truthound_dashboard-1.4.2/frontend/src/components/notifications/RuleTestPanel.tsx +0 -455
- truthound_dashboard-1.4.2/frontend/src/components/notifications/SchedulerControlPanel.tsx +0 -446
- truthound_dashboard-1.4.2/frontend/src/components/notifications/StrategyGuide.tsx +0 -490
- truthound_dashboard-1.4.2/frontend/src/components/notifications/TemplateLibrary.tsx +0 -671
- truthound_dashboard-1.4.2/frontend/src/components/notifications/ThrottlingTab.tsx +0 -584
- truthound_dashboard-1.4.2/frontend/src/components/notifications/TimeWindowPicker.tsx +0 -647
- truthound_dashboard-1.4.2/frontend/src/components/notifications/WebSocketStatus.tsx +0 -222
- truthound_dashboard-1.4.2/frontend/src/components/notifications/__tests__/ChannelConfigForm.test.tsx +0 -478
- truthound_dashboard-1.4.2/frontend/src/components/notifications/__tests__/DeduplicationTab.test.tsx +0 -310
- truthound_dashboard-1.4.2/frontend/src/components/notifications/__tests__/EscalationTab.test.tsx +0 -315
- truthound_dashboard-1.4.2/frontend/src/components/notifications/__tests__/RuleBuilder.test.tsx +0 -320
- truthound_dashboard-1.4.2/frontend/src/components/notifications/index.ts +0 -92
- truthound_dashboard-1.4.2/frontend/src/components/plugins/PluginDependencyGraph.tsx +0 -401
- truthound_dashboard-1.4.2/frontend/src/components/plugins/PluginDetailDialog.tsx +0 -471
- truthound_dashboard-1.4.2/frontend/src/components/plugins/PluginHooksPanel.tsx +0 -697
- truthound_dashboard-1.4.2/frontend/src/components/plugins/PluginInstallProgress.tsx +0 -377
- truthound_dashboard-1.4.2/frontend/src/components/plugins/PluginLifecyclePanel.tsx +0 -641
- truthound_dashboard-1.4.2/frontend/src/components/plugins/PluginSecurityPanel.tsx +0 -734
- truthound_dashboard-1.4.2/frontend/src/components/plugins/PluginSettingsTab.tsx +0 -965
- truthound_dashboard-1.4.2/frontend/src/components/plugins/ReporterConfigForm.tsx +0 -340
- truthound_dashboard-1.4.2/frontend/src/components/plugins/ReporterEditorDialog.tsx +0 -496
- truthound_dashboard-1.4.2/frontend/src/components/plugins/ReporterPreviewPanel.tsx +0 -331
- truthound_dashboard-1.4.2/frontend/src/components/plugins/ValidatorEditorDialog.tsx +0 -515
- truthound_dashboard-1.4.2/frontend/src/components/plugins/ValidatorParamForm.tsx +0 -373
- truthound_dashboard-1.4.2/frontend/src/components/plugins/ValidatorTestPanel.tsx +0 -359
- truthound_dashboard-1.4.2/frontend/src/components/plugins/index.ts +0 -29
- truthound_dashboard-1.4.2/frontend/src/components/plugins/types.ts +0 -171
- truthound_dashboard-1.4.2/frontend/src/components/privacy/MaskingPanel.tsx +0 -234
- truthound_dashboard-1.4.2/frontend/src/components/privacy/MaskingStrategySelector.tsx +0 -115
- truthound_dashboard-1.4.2/frontend/src/components/privacy/PIIFindingsTable.tsx +0 -144
- truthound_dashboard-1.4.2/frontend/src/components/privacy/PIIScanPanel.tsx +0 -284
- truthound_dashboard-1.4.2/frontend/src/components/privacy/PrivacyStats.tsx +0 -82
- truthound_dashboard-1.4.2/frontend/src/components/privacy/ScanHistoryList.tsx +0 -138
- truthound_dashboard-1.4.2/frontend/src/components/privacy/index.ts +0 -12
- truthound_dashboard-1.4.2/frontend/src/components/profile/PatternDetectionPanel.tsx +0 -299
- truthound_dashboard-1.4.2/frontend/src/components/profile/PatternResultsDisplay.tsx +0 -419
- truthound_dashboard-1.4.2/frontend/src/components/profile/ProfileComparisonTable.tsx +0 -225
- truthound_dashboard-1.4.2/frontend/src/components/profile/ProfileTrendChart.tsx +0 -229
- truthound_dashboard-1.4.2/frontend/src/components/profile/ProfileVersionSelector.tsx +0 -251
- truthound_dashboard-1.4.2/frontend/src/components/profile/SamplingConfigPanel.tsx +0 -395
- truthound_dashboard-1.4.2/frontend/src/components/profile/index.ts +0 -34
- truthound_dashboard-1.4.2/frontend/src/components/reports/CustomReporterManagement.tsx +0 -381
- truthound_dashboard-1.4.2/frontend/src/components/reports/CustomReporterSection.tsx +0 -381
- truthound_dashboard-1.4.2/frontend/src/components/reports/ReportDownloadButton.tsx +0 -248
- truthound_dashboard-1.4.2/frontend/src/components/reports/index.ts +0 -7
- truthound_dashboard-1.4.2/frontend/src/components/rules/CrossColumnRuleCard.tsx +0 -350
- truthound_dashboard-1.4.2/frontend/src/components/rules/RuleSuggestionCard.tsx +0 -122
- truthound_dashboard-1.4.2/frontend/src/components/rules/RuleSuggestionDialog.tsx +0 -615
- truthound_dashboard-1.4.2/frontend/src/components/rules/index.ts +0 -2
- truthound_dashboard-1.4.2/frontend/src/components/schema/SchemaChangeCard.tsx +0 -107
- truthound_dashboard-1.4.2/frontend/src/components/schema/SchemaDiffViewer.tsx +0 -406
- truthound_dashboard-1.4.2/frontend/src/components/schema/SchemaEvolutionTimeline.tsx +0 -250
- truthound_dashboard-1.4.2/frontend/src/components/schema/SchemaVersionCompare.tsx +0 -264
- truthound_dashboard-1.4.2/frontend/src/components/schema/index.ts +0 -13
- truthound_dashboard-1.4.2/frontend/src/components/sources/AddSourceDialog.tsx +0 -533
- truthound_dashboard-1.4.2/frontend/src/components/sources/DynamicSourceForm.tsx +0 -255
- truthound_dashboard-1.4.2/frontend/src/components/sources/EditSourceDialog.tsx +0 -486
- truthound_dashboard-1.4.2/frontend/src/components/sources/SourceTypeSelector.tsx +0 -141
- truthound_dashboard-1.4.2/frontend/src/components/sources/index.ts +0 -8
- truthound_dashboard-1.4.2/frontend/src/components/theme-provider.tsx +0 -74
- truthound_dashboard-1.4.2/frontend/src/components/triggers/CompositeTriggerForm.tsx +0 -350
- truthound_dashboard-1.4.2/frontend/src/components/triggers/CronTriggerForm.tsx +0 -237
- truthound_dashboard-1.4.2/frontend/src/components/triggers/DataChangeTriggerForm.tsx +0 -244
- truthound_dashboard-1.4.2/frontend/src/components/triggers/IntervalTriggerForm.tsx +0 -176
- truthound_dashboard-1.4.2/frontend/src/components/triggers/TriggerBuilder.tsx +0 -483
- truthound_dashboard-1.4.2/frontend/src/components/triggers/TriggerPreview.tsx +0 -297
- truthound_dashboard-1.4.2/frontend/src/components/triggers/TriggerTypeSelector.tsx +0 -106
- truthound_dashboard-1.4.2/frontend/src/components/triggers/index.ts +0 -19
- truthound_dashboard-1.4.2/frontend/src/components/ui/accordion.tsx +0 -58
- truthound_dashboard-1.4.2/frontend/src/components/ui/alert-dialog.tsx +0 -139
- truthound_dashboard-1.4.2/frontend/src/components/ui/alert.tsx +0 -59
- truthound_dashboard-1.4.2/frontend/src/components/ui/badge.tsx +0 -49
- truthound_dashboard-1.4.2/frontend/src/components/ui/button.tsx +0 -57
- truthound_dashboard-1.4.2/frontend/src/components/ui/card.tsx +0 -79
- truthound_dashboard-1.4.2/frontend/src/components/ui/checkbox.tsx +0 -30
- truthound_dashboard-1.4.2/frontend/src/components/ui/collapsible.tsx +0 -15
- truthound_dashboard-1.4.2/frontend/src/components/ui/dialog.tsx +0 -120
- truthound_dashboard-1.4.2/frontend/src/components/ui/dropdown-menu.tsx +0 -198
- truthound_dashboard-1.4.2/frontend/src/components/ui/input.tsx +0 -25
- truthound_dashboard-1.4.2/frontend/src/components/ui/label.tsx +0 -24
- truthound_dashboard-1.4.2/frontend/src/components/ui/popover.tsx +0 -31
- truthound_dashboard-1.4.2/frontend/src/components/ui/progress.tsx +0 -25
- truthound_dashboard-1.4.2/frontend/src/components/ui/radio-group.tsx +0 -48
- truthound_dashboard-1.4.2/frontend/src/components/ui/scroll-area.tsx +0 -46
- truthound_dashboard-1.4.2/frontend/src/components/ui/select.tsx +0 -158
- truthound_dashboard-1.4.2/frontend/src/components/ui/separator.tsx +0 -29
- truthound_dashboard-1.4.2/frontend/src/components/ui/sheet.tsx +0 -138
- truthound_dashboard-1.4.2/frontend/src/components/ui/slider.tsx +0 -25
- truthound_dashboard-1.4.2/frontend/src/components/ui/switch.tsx +0 -27
- truthound_dashboard-1.4.2/frontend/src/components/ui/table.tsx +0 -117
- truthound_dashboard-1.4.2/frontend/src/components/ui/tabs.tsx +0 -52
- truthound_dashboard-1.4.2/frontend/src/components/ui/textarea.tsx +0 -24
- truthound_dashboard-1.4.2/frontend/src/components/ui/toast.tsx +0 -127
- truthound_dashboard-1.4.2/frontend/src/components/ui/toaster.tsx +0 -33
- truthound_dashboard-1.4.2/frontend/src/components/ui/tooltip.tsx +0 -30
- truthound_dashboard-1.4.2/frontend/src/components/validators/CustomValidatorCard.tsx +0 -303
- truthound_dashboard-1.4.2/frontend/src/components/validators/ValidatorConfigCard.tsx +0 -138
- truthound_dashboard-1.4.2/frontend/src/components/validators/ValidatorParamInput.tsx +0 -329
- truthound_dashboard-1.4.2/frontend/src/components/validators/ValidatorSelector.tsx +0 -652
- truthound_dashboard-1.4.2/frontend/src/components/validators/index.ts +0 -13
- truthound_dashboard-1.4.2/frontend/src/components/versioning/VersionCompare.tsx +0 -375
- truthound_dashboard-1.4.2/frontend/src/components/versioning/VersionTimeline.tsx +0 -148
- truthound_dashboard-1.4.2/frontend/src/components/versioning/index.ts +0 -6
- truthound_dashboard-1.4.2/frontend/src/content/alerts.content.ts +0 -191
- truthound_dashboard-1.4.2/frontend/src/content/anomaly.content.ts +0 -462
- truthound_dashboard-1.4.2/frontend/src/content/catalog.content.ts +0 -118
- truthound_dashboard-1.4.2/frontend/src/content/collaboration.content.ts +0 -69
- truthound_dashboard-1.4.2/frontend/src/content/common.content.ts +0 -780
- truthound_dashboard-1.4.2/frontend/src/content/cross-alerts.content.ts +0 -170
- truthound_dashboard-1.4.2/frontend/src/content/dashboard.content.ts +0 -84
- truthound_dashboard-1.4.2/frontend/src/content/drift-monitor.content.ts +0 -469
- truthound_dashboard-1.4.2/frontend/src/content/drift.content.ts +0 -235
- truthound_dashboard-1.4.2/frontend/src/content/errors.content.ts +0 -135
- truthound_dashboard-1.4.2/frontend/src/content/glossary.content.ts +0 -105
- truthound_dashboard-1.4.2/frontend/src/content/index.ts +0 -21
- truthound_dashboard-1.4.2/frontend/src/content/lineage.content.ts +0 -488
- truthound_dashboard-1.4.2/frontend/src/content/maintenance.content.ts +0 -99
- truthound_dashboard-1.4.2/frontend/src/content/model-monitoring.content.ts +0 -245
- truthound_dashboard-1.4.2/frontend/src/content/nav.content.ts +0 -478
- truthound_dashboard-1.4.2/frontend/src/content/notifications-advanced.content.ts +0 -866
- truthound_dashboard-1.4.2/frontend/src/content/notifications.content.ts +0 -360
- truthound_dashboard-1.4.2/frontend/src/content/plugins.content.ts +0 -486
- truthound_dashboard-1.4.2/frontend/src/content/privacy.content.ts +0 -181
- truthound_dashboard-1.4.2/frontend/src/content/profile-comparison.content.ts +0 -124
- truthound_dashboard-1.4.2/frontend/src/content/profiler.content.ts +0 -265
- truthound_dashboard-1.4.2/frontend/src/content/reports.content.ts +0 -185
- truthound_dashboard-1.4.2/frontend/src/content/rule-suggestions.content.ts +0 -364
- truthound_dashboard-1.4.2/frontend/src/content/schedules.content.ts +0 -124
- truthound_dashboard-1.4.2/frontend/src/content/schema-evolution.content.ts +0 -99
- truthound_dashboard-1.4.2/frontend/src/content/settings.content.ts +0 -30
- truthound_dashboard-1.4.2/frontend/src/content/sources.content.ts +0 -239
- truthound_dashboard-1.4.2/frontend/src/content/triggers.content.ts +0 -134
- truthound_dashboard-1.4.2/frontend/src/content/validation.content.ts +0 -70
- truthound_dashboard-1.4.2/frontend/src/content/validators.content.ts +0 -230
- truthound_dashboard-1.4.2/frontend/src/content/versioning.content.ts +0 -206
- truthound_dashboard-1.4.2/frontend/src/hooks/use-api.ts +0 -104
- truthound_dashboard-1.4.2/frontend/src/hooks/use-toast.ts +0 -186
- truthound_dashboard-1.4.2/frontend/src/hooks/useLineagePerformance.ts +0 -232
- truthound_dashboard-1.4.2/frontend/src/hooks/useSafeIntlayer.ts +0 -90
- truthound_dashboard-1.4.2/frontend/src/hooks/useStreamingAnomaly.ts +0 -293
- truthound_dashboard-1.4.2/frontend/src/hooks/useWebSocket.ts +0 -389
- truthound_dashboard-1.4.2/frontend/src/index.css +0 -106
- truthound_dashboard-1.4.2/frontend/src/lib/__tests__/lineage-performance.test.ts +0 -643
- truthound_dashboard-1.4.2/frontend/src/lib/intlayer-fallbacks.ts +0 -2908
- truthound_dashboard-1.4.2/frontend/src/lib/intlayer-utils.ts +0 -81
- truthound_dashboard-1.4.2/frontend/src/lib/lineage-performance.ts +0 -630
- truthound_dashboard-1.4.2/frontend/src/lib/lineage-utils.ts +0 -457
- truthound_dashboard-1.4.2/frontend/src/lib/utils.ts +0 -131
- truthound_dashboard-1.4.2/frontend/src/main.tsx +0 -33
- truthound_dashboard-1.4.2/frontend/src/mocks/__tests__/phase5-e2e.test.ts +0 -1197
- truthound_dashboard-1.4.2/frontend/src/mocks/browser.ts +0 -29
- truthound_dashboard-1.4.2/frontend/src/mocks/data/store.ts +0 -435
- truthound_dashboard-1.4.2/frontend/src/mocks/factories/anomaly.ts +0 -438
- truthound_dashboard-1.4.2/frontend/src/mocks/factories/base.ts +0 -61
- truthound_dashboard-1.4.2/frontend/src/mocks/factories/catalog.test.ts +0 -193
- truthound_dashboard-1.4.2/frontend/src/mocks/factories/catalog.ts +0 -293
- truthound_dashboard-1.4.2/frontend/src/mocks/factories/collaboration.test.ts +0 -176
- truthound_dashboard-1.4.2/frontend/src/mocks/factories/collaboration.ts +0 -237
- truthound_dashboard-1.4.2/frontend/src/mocks/factories/drift.ts +0 -433
- truthound_dashboard-1.4.2/frontend/src/mocks/factories/glossary.test.ts +0 -143
- truthound_dashboard-1.4.2/frontend/src/mocks/factories/glossary.ts +0 -318
- truthound_dashboard-1.4.2/frontend/src/mocks/factories/history.ts +0 -156
- truthound_dashboard-1.4.2/frontend/src/mocks/factories/index.ts +0 -27
- truthound_dashboard-1.4.2/frontend/src/mocks/factories/lineage.ts +0 -363
- truthound_dashboard-1.4.2/frontend/src/mocks/factories/mask.ts +0 -198
- truthound_dashboard-1.4.2/frontend/src/mocks/factories/model-monitoring.ts +0 -479
- truthound_dashboard-1.4.2/frontend/src/mocks/factories/notifications-advanced.ts +0 -691
- truthound_dashboard-1.4.2/frontend/src/mocks/factories/notifications.ts +0 -927
- truthound_dashboard-1.4.2/frontend/src/mocks/factories/plugins.ts +0 -693
- truthound_dashboard-1.4.2/frontend/src/mocks/factories/profile-comparison.ts +0 -328
- truthound_dashboard-1.4.2/frontend/src/mocks/factories/profile.ts +0 -474
- truthound_dashboard-1.4.2/frontend/src/mocks/factories/reports.ts +0 -216
- truthound_dashboard-1.4.2/frontend/src/mocks/factories/rule-suggestions.ts +0 -1113
- truthound_dashboard-1.4.2/frontend/src/mocks/factories/scan.ts +0 -420
- truthound_dashboard-1.4.2/frontend/src/mocks/factories/schedules.ts +0 -501
- truthound_dashboard-1.4.2/frontend/src/mocks/factories/schema-evolution.ts +0 -186
- truthound_dashboard-1.4.2/frontend/src/mocks/factories/schemas.ts +0 -247
- truthound_dashboard-1.4.2/frontend/src/mocks/factories/sources.ts +0 -262
- truthound_dashboard-1.4.2/frontend/src/mocks/factories/validations.ts +0 -464
- truthound_dashboard-1.4.2/frontend/src/mocks/factories/validators.ts +0 -917
- truthound_dashboard-1.4.2/frontend/src/mocks/factories/versioning.ts +0 -124
- truthound_dashboard-1.4.2/frontend/src/mocks/handlers/alerts.ts +0 -505
- truthound_dashboard-1.4.2/frontend/src/mocks/handlers/anomaly.ts +0 -1314
- truthound_dashboard-1.4.2/frontend/src/mocks/handlers/catalog.ts +0 -433
- truthound_dashboard-1.4.2/frontend/src/mocks/handlers/collaboration.ts +0 -180
- truthound_dashboard-1.4.2/frontend/src/mocks/handlers/cross-alerts.ts +0 -384
- truthound_dashboard-1.4.2/frontend/src/mocks/handlers/drift.ts +0 -1391
- truthound_dashboard-1.4.2/frontend/src/mocks/handlers/glossary.ts +0 -384
- truthound_dashboard-1.4.2/frontend/src/mocks/handlers/health.ts +0 -20
- truthound_dashboard-1.4.2/frontend/src/mocks/handlers/history.ts +0 -37
- truthound_dashboard-1.4.2/frontend/src/mocks/handlers/index.ts +0 -67
- truthound_dashboard-1.4.2/frontend/src/mocks/handlers/lineage.ts +0 -1304
- truthound_dashboard-1.4.2/frontend/src/mocks/handlers/maintenance.ts +0 -150
- truthound_dashboard-1.4.2/frontend/src/mocks/handlers/mask.ts +0 -149
- truthound_dashboard-1.4.2/frontend/src/mocks/handlers/model-monitoring.ts +0 -721
- truthound_dashboard-1.4.2/frontend/src/mocks/handlers/notifications-advanced.ts +0 -1521
- truthound_dashboard-1.4.2/frontend/src/mocks/handlers/notifications.ts +0 -552
- truthound_dashboard-1.4.2/frontend/src/mocks/handlers/plugins.ts +0 -1301
- truthound_dashboard-1.4.2/frontend/src/mocks/handlers/profile.ts +0 -256
- truthound_dashboard-1.4.2/frontend/src/mocks/handlers/report-history.ts +0 -304
- truthound_dashboard-1.4.2/frontend/src/mocks/handlers/reports.ts +0 -419
- truthound_dashboard-1.4.2/frontend/src/mocks/handlers/rule-suggestions.ts +0 -611
- truthound_dashboard-1.4.2/frontend/src/mocks/handlers/rules.ts +0 -266
- truthound_dashboard-1.4.2/frontend/src/mocks/handlers/scan.ts +0 -140
- truthound_dashboard-1.4.2/frontend/src/mocks/handlers/schedules.ts +0 -287
- truthound_dashboard-1.4.2/frontend/src/mocks/handlers/schema-evolution.ts +0 -177
- truthound_dashboard-1.4.2/frontend/src/mocks/handlers/schemas.ts +0 -176
- truthound_dashboard-1.4.2/frontend/src/mocks/handlers/sources.ts +0 -456
- truthound_dashboard-1.4.2/frontend/src/mocks/handlers/triggers.ts +0 -310
- truthound_dashboard-1.4.2/frontend/src/mocks/handlers/validations.ts +0 -166
- truthound_dashboard-1.4.2/frontend/src/mocks/handlers/validators.ts +0 -2508
- truthound_dashboard-1.4.2/frontend/src/mocks/handlers/versioning.ts +0 -279
- truthound_dashboard-1.4.2/frontend/src/mocks/index.ts +0 -8
- truthound_dashboard-1.4.2/frontend/src/pages/Activity.tsx +0 -131
- truthound_dashboard-1.4.2/frontend/src/pages/Alerts.tsx +0 -555
- truthound_dashboard-1.4.2/frontend/src/pages/Anomaly.tsx +0 -596
- truthound_dashboard-1.4.2/frontend/src/pages/Catalog.tsx +0 -277
- truthound_dashboard-1.4.2/frontend/src/pages/CatalogDetail.tsx +0 -399
- truthound_dashboard-1.4.2/frontend/src/pages/Dashboard.test.tsx +0 -570
- truthound_dashboard-1.4.2/frontend/src/pages/Dashboard.tsx +0 -269
- truthound_dashboard-1.4.2/frontend/src/pages/Drift.tsx +0 -452
- truthound_dashboard-1.4.2/frontend/src/pages/DriftMonitoring.tsx +0 -712
- truthound_dashboard-1.4.2/frontend/src/pages/Glossary.tsx +0 -266
- truthound_dashboard-1.4.2/frontend/src/pages/GlossaryDetail.tsx +0 -352
- truthound_dashboard-1.4.2/frontend/src/pages/History.tsx +0 -301
- truthound_dashboard-1.4.2/frontend/src/pages/Lineage.tsx +0 -618
- truthound_dashboard-1.4.2/frontend/src/pages/Maintenance.tsx +0 -23
- truthound_dashboard-1.4.2/frontend/src/pages/ModelMonitoring.tsx +0 -677
- truthound_dashboard-1.4.2/frontend/src/pages/Notifications.tsx +0 -1069
- truthound_dashboard-1.4.2/frontend/src/pages/NotificationsAdvanced.tsx +0 -269
- truthound_dashboard-1.4.2/frontend/src/pages/Plugins.tsx +0 -809
- truthound_dashboard-1.4.2/frontend/src/pages/Privacy.tsx +0 -344
- truthound_dashboard-1.4.2/frontend/src/pages/Profile.tsx +0 -1096
- truthound_dashboard-1.4.2/frontend/src/pages/ProfileComparison.tsx +0 -593
- truthound_dashboard-1.4.2/frontend/src/pages/Reports.tsx +0 -579
- truthound_dashboard-1.4.2/frontend/src/pages/RuleSuggestions.tsx +0 -989
- truthound_dashboard-1.4.2/frontend/src/pages/Rules.tsx +0 -481
- truthound_dashboard-1.4.2/frontend/src/pages/Schedules.tsx +0 -693
- truthound_dashboard-1.4.2/frontend/src/pages/SchemaEvolution.tsx +0 -476
- truthound_dashboard-1.4.2/frontend/src/pages/SourceDetail.tsx +0 -820
- truthound_dashboard-1.4.2/frontend/src/pages/Sources.tsx +0 -252
- truthound_dashboard-1.4.2/frontend/src/pages/TriggerMonitoring.tsx +0 -622
- truthound_dashboard-1.4.2/frontend/src/pages/Validations.tsx +0 -352
- truthound_dashboard-1.4.2/frontend/src/pages/VersionHistory.tsx +0 -328
- truthound_dashboard-1.4.2/frontend/src/pages/__tests__/Catalog.e2e.test.tsx +0 -615
- truthound_dashboard-1.4.2/frontend/src/pages/__tests__/CatalogDetail.e2e.test.tsx +0 -497
- truthound_dashboard-1.4.2/frontend/src/pages/__tests__/Dashboard.e2e.test.tsx +0 -266
- truthound_dashboard-1.4.2/frontend/src/pages/__tests__/Glossary.e2e.test.tsx +0 -948
- truthound_dashboard-1.4.2/frontend/src/pages/__tests__/GlossaryDetail.e2e.test.tsx +0 -944
- truthound_dashboard-1.4.2/frontend/src/pages/__tests__/History.e2e.test.tsx +0 -457
- truthound_dashboard-1.4.2/frontend/src/pages/__tests__/Profile.e2e.test.tsx +0 -475
- truthound_dashboard-1.4.2/frontend/src/pages/__tests__/Rules.e2e.test.tsx +0 -476
- truthound_dashboard-1.4.2/frontend/src/pages/__tests__/SourceDetail.e2e.test.tsx +0 -465
- truthound_dashboard-1.4.2/frontend/src/pages/__tests__/Sources.e2e.test.tsx +0 -426
- truthound_dashboard-1.4.2/frontend/src/providers/index.ts +0 -9
- truthound_dashboard-1.4.2/frontend/src/providers/intlayer/IntlayerProvider.tsx +0 -125
- truthound_dashboard-1.4.2/frontend/src/providers/intlayer/config.ts +0 -121
- truthound_dashboard-1.4.2/frontend/src/providers/intlayer/index.ts +0 -27
- truthound_dashboard-1.4.2/frontend/src/stores/catalogStore.test.ts +0 -276
- truthound_dashboard-1.4.2/frontend/src/stores/catalogStore.ts +0 -180
- truthound_dashboard-1.4.2/frontend/src/stores/glossaryStore.test.ts +0 -279
- truthound_dashboard-1.4.2/frontend/src/stores/glossaryStore.ts +0 -187
- truthound_dashboard-1.4.2/frontend/src/stores/theme.ts +0 -144
- truthound_dashboard-1.4.2/frontend/src/test/mocks/intlayer-config.ts +0 -19
- truthound_dashboard-1.4.2/frontend/src/test/mocks/intlayer.ts +0 -31
- truthound_dashboard-1.4.2/frontend/src/test/mocks/react-intlayer.ts +0 -979
- truthound_dashboard-1.4.2/frontend/src/test/msw-server.ts +0 -61
- truthound_dashboard-1.4.2/frontend/src/test/setup.ts +0 -145
- truthound_dashboard-1.4.2/frontend/src/test/test-utils.tsx +0 -448
- truthound_dashboard-1.4.2/frontend/src/types/validators.ts +0 -521
- truthound_dashboard-1.4.2/frontend/src/vite-env.d.ts +0 -10
- truthound_dashboard-1.4.2/frontend/tailwind.config.js +0 -103
- truthound_dashboard-1.4.2/frontend/tsconfig.json +0 -36
- truthound_dashboard-1.4.2/frontend/tsconfig.node.json +0 -10
- truthound_dashboard-1.4.2/frontend/vercel.json +0 -8
- truthound_dashboard-1.4.2/frontend/vite.config.ts +0 -29
- truthound_dashboard-1.4.2/frontend/vitest.config.ts +0 -97
- truthound_dashboard-1.4.2/package-lock.json +0 -6
- truthound_dashboard-1.4.2/scripts/load_test.py +0 -389
- truthound_dashboard-1.4.2/src/truthound_dashboard/api/model_monitoring.py +0 -805
- truthound_dashboard-1.4.2/src/truthound_dashboard/api/profile.py +0 -257
- truthound_dashboard-1.4.2/src/truthound_dashboard/core/cross_alerts.py +0 -837
- truthound_dashboard-1.4.2/src/truthound_dashboard/core/notifications/channels.py +0 -1576
- truthound_dashboard-1.4.2/src/truthound_dashboard/core/notifications/deduplication/__init__.py +0 -143
- truthound_dashboard-1.4.2/src/truthound_dashboard/core/notifications/deduplication/service.py +0 -400
- truthound_dashboard-1.4.2/src/truthound_dashboard/core/notifications/escalation/__init__.py +0 -149
- truthound_dashboard-1.4.2/src/truthound_dashboard/core/notifications/escalation/engine.py +0 -429
- truthound_dashboard-1.4.2/src/truthound_dashboard/core/notifications/routing/__init__.py +0 -169
- truthound_dashboard-1.4.2/src/truthound_dashboard/core/notifications/routing/engine.py +0 -382
- truthound_dashboard-1.4.2/src/truthound_dashboard/core/notifications/throttling/__init__.py +0 -83
- truthound_dashboard-1.4.2/src/truthound_dashboard/core/notifications/throttling/builder.py +0 -311
- truthound_dashboard-1.4.2/src/truthound_dashboard/core/plugins/hooks/__init__.py +0 -63
- truthound_dashboard-1.4.2/src/truthound_dashboard/core/plugins/hooks/decorators.py +0 -367
- truthound_dashboard-1.4.2/src/truthound_dashboard/core/plugins/hooks/manager.py +0 -403
- truthound_dashboard-1.4.2/src/truthound_dashboard/core/plugins/hooks/protocols.py +0 -265
- truthound_dashboard-1.4.2/src/truthound_dashboard/core/plugins/lifecycle/hot_reload.py +0 -584
- truthound_dashboard-1.4.2/src/truthound_dashboard/core/reporters/__init__.py +0 -57
- truthound_dashboard-1.4.2/src/truthound_dashboard/core/reporters/junit_reporter.py +0 -233
- truthound_dashboard-1.4.2/src/truthound_dashboard/core/reporters/markdown_reporter.py +0 -207
- truthound_dashboard-1.4.2/src/truthound_dashboard/core/reporters/pdf_reporter.py +0 -209
- truthound_dashboard-1.4.2/src/truthound_dashboard/core/truthound_adapter.py +0 -1074
- truthound_dashboard-1.4.2/src/truthound_dashboard/schemas/profile.py +0 -520
- truthound_dashboard-1.4.2/src/truthound_dashboard/static/favicon.ico +0 -0
- truthound_dashboard-1.4.2/src/truthound_dashboard/static/index.html +0 -15
- truthound_dashboard-1.4.2/tests/__init__.py +0 -1
- truthound_dashboard-1.4.2/tests/conftest.py +0 -125
- truthound_dashboard-1.4.2/tests/test_api/__init__.py +0 -1
- truthound_dashboard-1.4.2/tests/test_api/test_catalog.py +0 -459
- truthound_dashboard-1.4.2/tests/test_api/test_collaboration.py +0 -307
- truthound_dashboard-1.4.2/tests/test_api/test_glossary.py +0 -365
- truthound_dashboard-1.4.2/tests/test_api/test_health.py +0 -27
- truthound_dashboard-1.4.2/tests/test_api/test_rules.py +0 -351
- truthound_dashboard-1.4.2/tests/test_api/test_sources.py +0 -164
- truthound_dashboard-1.4.2/tests/test_core/__init__.py +0 -1
- truthound_dashboard-1.4.2/tests/test_core/test_performance.py +0 -1284
- truthound_dashboard-1.4.2/tests/test_core/test_plugins.py +0 -832
- truthound_dashboard-1.4.2/tests/test_core/test_rule_validator.py +0 -517
- truthound_dashboard-1.4.2/tests/test_core/test_services.py +0 -219
- truthound_dashboard-1.4.2/tests/test_db/__init__.py +0 -1
- truthound_dashboard-1.4.2/tests/test_db/test_models.py +0 -128
- truthound_dashboard-1.4.2/tests/test_phase4.py +0 -727
- truthound_dashboard-1.4.2/uv.lock +0 -1579
- {truthound_dashboard-1.4.2 → truthound_dashboard-1.5.0}/LICENSE +0 -0
- {truthound_dashboard-1.4.2 → truthound_dashboard-1.5.0}/src/truthound_dashboard/__init__.py +0 -0
- {truthound_dashboard-1.4.2 → truthound_dashboard-1.5.0}/src/truthound_dashboard/__main__.py +0 -0
- {truthound_dashboard-1.4.2 → truthound_dashboard-1.5.0}/src/truthound_dashboard/api/__init__.py +0 -0
- {truthound_dashboard-1.4.2 → truthound_dashboard-1.5.0}/src/truthound_dashboard/api/catalog.py +0 -0
- {truthound_dashboard-1.4.2 → truthound_dashboard-1.5.0}/src/truthound_dashboard/api/collaboration.py +0 -0
- {truthound_dashboard-1.4.2 → truthound_dashboard-1.5.0}/src/truthound_dashboard/api/deps.py +0 -0
- {truthound_dashboard-1.4.2 → truthound_dashboard-1.5.0}/src/truthound_dashboard/api/error_handlers.py +0 -0
- {truthound_dashboard-1.4.2 → truthound_dashboard-1.5.0}/src/truthound_dashboard/api/glossary.py +0 -0
- {truthound_dashboard-1.4.2 → truthound_dashboard-1.5.0}/src/truthound_dashboard/api/health.py +0 -0
- {truthound_dashboard-1.4.2 → truthound_dashboard-1.5.0}/src/truthound_dashboard/api/rules.py +0 -0
- {truthound_dashboard-1.4.2 → truthound_dashboard-1.5.0}/src/truthound_dashboard/api/schemas.py +0 -0
- {truthound_dashboard-1.4.2 → truthound_dashboard-1.5.0}/src/truthound_dashboard/api/validators.py +0 -0
- {truthound_dashboard-1.4.2 → truthound_dashboard-1.5.0}/src/truthound_dashboard/api/websocket.py +0 -0
- {truthound_dashboard-1.4.2 → truthound_dashboard-1.5.0}/src/truthound_dashboard/cli.py +0 -0
- {truthound_dashboard-1.4.2 → truthound_dashboard-1.5.0}/src/truthound_dashboard/config.py +0 -0
- {truthound_dashboard-1.4.2 → truthound_dashboard-1.5.0}/src/truthound_dashboard/core/base.py +0 -0
- {truthound_dashboard-1.4.2 → truthound_dashboard-1.5.0}/src/truthound_dashboard/core/cache.py +0 -0
- {truthound_dashboard-1.4.2 → truthound_dashboard-1.5.0}/src/truthound_dashboard/core/cached_services.py +0 -0
- {truthound_dashboard-1.4.2 → truthound_dashboard-1.5.0}/src/truthound_dashboard/core/charts.py +0 -0
- {truthound_dashboard-1.4.2 → truthound_dashboard-1.5.0}/src/truthound_dashboard/core/drift_sampling.py +0 -0
- {truthound_dashboard-1.4.2 → truthound_dashboard-1.5.0}/src/truthound_dashboard/core/encryption.py +0 -0
- {truthound_dashboard-1.4.2 → truthound_dashboard-1.5.0}/src/truthound_dashboard/core/exceptions.py +0 -0
- {truthound_dashboard-1.4.2 → truthound_dashboard-1.5.0}/src/truthound_dashboard/core/i18n/__init__.py +0 -0
- {truthound_dashboard-1.4.2 → truthound_dashboard-1.5.0}/src/truthound_dashboard/core/i18n/detector.py +0 -0
- {truthound_dashboard-1.4.2 → truthound_dashboard-1.5.0}/src/truthound_dashboard/core/i18n/messages.py +0 -0
- {truthound_dashboard-1.4.2 → truthound_dashboard-1.5.0}/src/truthound_dashboard/core/logging.py +0 -0
- {truthound_dashboard-1.4.2 → truthound_dashboard-1.5.0}/src/truthound_dashboard/core/maintenance.py +0 -0
- {truthound_dashboard-1.4.2 → truthound_dashboard-1.5.0}/src/truthound_dashboard/core/notifications/__init__.py +0 -0
- {truthound_dashboard-1.4.2 → truthound_dashboard-1.5.0}/src/truthound_dashboard/core/notifications/deduplication/policies.py +0 -0
- {truthound_dashboard-1.4.2 → truthound_dashboard-1.5.0}/src/truthound_dashboard/core/notifications/deduplication/stores.py +0 -0
- {truthound_dashboard-1.4.2 → truthound_dashboard-1.5.0}/src/truthound_dashboard/core/notifications/deduplication/strategies.py +0 -0
- {truthound_dashboard-1.4.2 → truthound_dashboard-1.5.0}/src/truthound_dashboard/core/notifications/escalation/backends.py +0 -0
- {truthound_dashboard-1.4.2 → truthound_dashboard-1.5.0}/src/truthound_dashboard/core/notifications/escalation/models.py +0 -0
- {truthound_dashboard-1.4.2 → truthound_dashboard-1.5.0}/src/truthound_dashboard/core/notifications/escalation/scheduler.py +0 -0
- {truthound_dashboard-1.4.2 → truthound_dashboard-1.5.0}/src/truthound_dashboard/core/notifications/escalation/state_machine.py +0 -0
- {truthound_dashboard-1.4.2 → truthound_dashboard-1.5.0}/src/truthound_dashboard/core/notifications/escalation/stores.py +0 -0
- {truthound_dashboard-1.4.2 → truthound_dashboard-1.5.0}/src/truthound_dashboard/core/notifications/events.py +0 -0
- {truthound_dashboard-1.4.2 → truthound_dashboard-1.5.0}/src/truthound_dashboard/core/notifications/metrics/__init__.py +0 -0
- {truthound_dashboard-1.4.2 → truthound_dashboard-1.5.0}/src/truthound_dashboard/core/notifications/metrics/base.py +0 -0
- {truthound_dashboard-1.4.2 → truthound_dashboard-1.5.0}/src/truthound_dashboard/core/notifications/metrics/collectors.py +0 -0
- {truthound_dashboard-1.4.2 → truthound_dashboard-1.5.0}/src/truthound_dashboard/core/notifications/routing/combinators.py +0 -0
- {truthound_dashboard-1.4.2 → truthound_dashboard-1.5.0}/src/truthound_dashboard/core/notifications/routing/config.py +0 -0
- {truthound_dashboard-1.4.2 → truthound_dashboard-1.5.0}/src/truthound_dashboard/core/notifications/routing/config_parser.py +0 -0
- {truthound_dashboard-1.4.2 → truthound_dashboard-1.5.0}/src/truthound_dashboard/core/notifications/routing/expression_engine.py +0 -0
- {truthound_dashboard-1.4.2 → truthound_dashboard-1.5.0}/src/truthound_dashboard/core/notifications/routing/jinja2_engine.py +0 -0
- {truthound_dashboard-1.4.2 → truthound_dashboard-1.5.0}/src/truthound_dashboard/core/notifications/routing/rules.py +0 -0
- {truthound_dashboard-1.4.2 → truthound_dashboard-1.5.0}/src/truthound_dashboard/core/notifications/routing/validator.py +0 -0
- {truthound_dashboard-1.4.2 → truthound_dashboard-1.5.0}/src/truthound_dashboard/core/notifications/service.py +0 -0
- {truthound_dashboard-1.4.2 → truthound_dashboard-1.5.0}/src/truthound_dashboard/core/notifications/throttling/stores.py +0 -0
- {truthound_dashboard-1.4.2 → truthound_dashboard-1.5.0}/src/truthound_dashboard/core/notifications/throttling/throttlers.py +0 -0
- {truthound_dashboard-1.4.2 → truthound_dashboard-1.5.0}/src/truthound_dashboard/core/openlineage.py +0 -0
- {truthound_dashboard-1.4.2 → truthound_dashboard-1.5.0}/src/truthound_dashboard/core/phase5/__init__.py +0 -0
- {truthound_dashboard-1.4.2 → truthound_dashboard-1.5.0}/src/truthound_dashboard/core/phase5/activity.py +0 -0
- {truthound_dashboard-1.4.2 → truthound_dashboard-1.5.0}/src/truthound_dashboard/core/phase5/catalog.py +0 -0
- {truthound_dashboard-1.4.2 → truthound_dashboard-1.5.0}/src/truthound_dashboard/core/phase5/glossary.py +0 -0
- {truthound_dashboard-1.4.2 → truthound_dashboard-1.5.0}/src/truthound_dashboard/core/plugins/__init__.py +0 -0
- {truthound_dashboard-1.4.2 → truthound_dashboard-1.5.0}/src/truthound_dashboard/core/plugins/docs/__init__.py +0 -0
- {truthound_dashboard-1.4.2 → truthound_dashboard-1.5.0}/src/truthound_dashboard/core/plugins/docs/extractor.py +0 -0
- {truthound_dashboard-1.4.2 → truthound_dashboard-1.5.0}/src/truthound_dashboard/core/plugins/docs/renderers.py +0 -0
- {truthound_dashboard-1.4.2 → truthound_dashboard-1.5.0}/src/truthound_dashboard/core/plugins/lifecycle/machine.py +0 -0
- {truthound_dashboard-1.4.2 → truthound_dashboard-1.5.0}/src/truthound_dashboard/core/plugins/lifecycle/states.py +0 -0
- {truthound_dashboard-1.4.2 → truthound_dashboard-1.5.0}/src/truthound_dashboard/core/plugins/loader.py +0 -0
- {truthound_dashboard-1.4.2 → truthound_dashboard-1.5.0}/src/truthound_dashboard/core/plugins/registry.py +0 -0
- {truthound_dashboard-1.4.2 → truthound_dashboard-1.5.0}/src/truthound_dashboard/core/plugins/reporter_executor.py +0 -0
- {truthound_dashboard-1.4.2 → truthound_dashboard-1.5.0}/src/truthound_dashboard/core/plugins/sandbox/__init__.py +0 -0
- {truthound_dashboard-1.4.2 → truthound_dashboard-1.5.0}/src/truthound_dashboard/core/plugins/sandbox/code_validator.py +0 -0
- {truthound_dashboard-1.4.2 → truthound_dashboard-1.5.0}/src/truthound_dashboard/core/plugins/sandbox/engines.py +0 -0
- {truthound_dashboard-1.4.2 → truthound_dashboard-1.5.0}/src/truthound_dashboard/core/plugins/sandbox/protocols.py +0 -0
- {truthound_dashboard-1.4.2 → truthound_dashboard-1.5.0}/src/truthound_dashboard/core/plugins/sandbox.py +0 -0
- {truthound_dashboard-1.4.2 → truthound_dashboard-1.5.0}/src/truthound_dashboard/core/plugins/security/__init__.py +0 -0
- {truthound_dashboard-1.4.2 → truthound_dashboard-1.5.0}/src/truthound_dashboard/core/plugins/security/analyzer.py +0 -0
- {truthound_dashboard-1.4.2 → truthound_dashboard-1.5.0}/src/truthound_dashboard/core/plugins/security/policies.py +0 -0
- {truthound_dashboard-1.4.2 → truthound_dashboard-1.5.0}/src/truthound_dashboard/core/plugins/security/protocols.py +0 -0
- {truthound_dashboard-1.4.2 → truthound_dashboard-1.5.0}/src/truthound_dashboard/core/plugins/security/signing.py +0 -0
- {truthound_dashboard-1.4.2 → truthound_dashboard-1.5.0}/src/truthound_dashboard/core/plugins/security.py +0 -0
- {truthound_dashboard-1.4.2 → truthound_dashboard-1.5.0}/src/truthound_dashboard/core/plugins/validator_executor.py +0 -0
- {truthound_dashboard-1.4.2 → truthound_dashboard-1.5.0}/src/truthound_dashboard/core/plugins/versioning/__init__.py +0 -0
- {truthound_dashboard-1.4.2 → truthound_dashboard-1.5.0}/src/truthound_dashboard/core/plugins/versioning/constraints.py +0 -0
- {truthound_dashboard-1.4.2 → truthound_dashboard-1.5.0}/src/truthound_dashboard/core/plugins/versioning/dependencies.py +0 -0
- {truthound_dashboard-1.4.2 → truthound_dashboard-1.5.0}/src/truthound_dashboard/core/plugins/versioning/semver.py +0 -0
- {truthound_dashboard-1.4.2 → truthound_dashboard-1.5.0}/src/truthound_dashboard/core/profile_comparison.py +0 -0
- {truthound_dashboard-1.4.2 → truthound_dashboard-1.5.0}/src/truthound_dashboard/core/reporters/html_reporter.py +0 -0
- {truthound_dashboard-1.4.2 → truthound_dashboard-1.5.0}/src/truthound_dashboard/core/reporters/i18n/__init__.py +0 -0
- {truthound_dashboard-1.4.2 → truthound_dashboard-1.5.0}/src/truthound_dashboard/core/reporters/i18n/base.py +0 -0
- {truthound_dashboard-1.4.2 → truthound_dashboard-1.5.0}/src/truthound_dashboard/core/reporters/i18n/catalogs.py +0 -0
- {truthound_dashboard-1.4.2 → truthound_dashboard-1.5.0}/src/truthound_dashboard/core/reporters/json_reporter.py +0 -0
- {truthound_dashboard-1.4.2 → truthound_dashboard-1.5.0}/src/truthound_dashboard/core/rule_generator.py +0 -0
- {truthound_dashboard-1.4.2 → truthound_dashboard-1.5.0}/src/truthound_dashboard/core/sampling.py +0 -0
- {truthound_dashboard-1.4.2 → truthound_dashboard-1.5.0}/src/truthound_dashboard/core/statistics.py +0 -0
- {truthound_dashboard-1.4.2 → truthound_dashboard-1.5.0}/src/truthound_dashboard/core/triggers/__init__.py +0 -0
- {truthound_dashboard-1.4.2 → truthound_dashboard-1.5.0}/src/truthound_dashboard/core/triggers/base.py +0 -0
- {truthound_dashboard-1.4.2 → truthound_dashboard-1.5.0}/src/truthound_dashboard/core/triggers/factory.py +0 -0
- {truthound_dashboard-1.4.2 → truthound_dashboard-1.5.0}/src/truthound_dashboard/core/validation_limits.py +0 -0
- {truthound_dashboard-1.4.2 → truthound_dashboard-1.5.0}/src/truthound_dashboard/core/versioning.py +0 -0
- {truthound_dashboard-1.4.2 → truthound_dashboard-1.5.0}/src/truthound_dashboard/core/websocket/__init__.py +0 -0
- {truthound_dashboard-1.4.2 → truthound_dashboard-1.5.0}/src/truthound_dashboard/core/websocket/manager.py +0 -0
- {truthound_dashboard-1.4.2 → truthound_dashboard-1.5.0}/src/truthound_dashboard/core/websocket/messages.py +0 -0
- {truthound_dashboard-1.4.2 → truthound_dashboard-1.5.0}/src/truthound_dashboard/db/base.py +0 -0
- {truthound_dashboard-1.4.2 → truthound_dashboard-1.5.0}/src/truthound_dashboard/schemas/anomaly.py +0 -0
- {truthound_dashboard-1.4.2 → truthound_dashboard-1.5.0}/src/truthound_dashboard/schemas/catalog.py +0 -0
- {truthound_dashboard-1.4.2 → truthound_dashboard-1.5.0}/src/truthound_dashboard/schemas/glossary.py +0 -0
- {truthound_dashboard-1.4.2 → truthound_dashboard-1.5.0}/src/truthound_dashboard/schemas/history.py +0 -0
- {truthound_dashboard-1.4.2 → truthound_dashboard-1.5.0}/src/truthound_dashboard/schemas/maintenance.py +0 -0
- {truthound_dashboard-1.4.2 → truthound_dashboard-1.5.0}/src/truthound_dashboard/schemas/openlineage.py +0 -0
- {truthound_dashboard-1.4.2 → truthound_dashboard-1.5.0}/src/truthound_dashboard/schemas/profile_comparison.py +0 -0
- {truthound_dashboard-1.4.2 → truthound_dashboard-1.5.0}/src/truthound_dashboard/schemas/rule.py +0 -0
- {truthound_dashboard-1.4.2 → truthound_dashboard-1.5.0}/src/truthound_dashboard/schemas/schema.py +0 -0
- {truthound_dashboard-1.4.2 → truthound_dashboard-1.5.0}/src/truthound_dashboard/schemas/schema_evolution.py +0 -0
- {truthound_dashboard-1.4.2 → truthound_dashboard-1.5.0}/src/truthound_dashboard/schemas/validators/__init__.py +0 -0
- {truthound_dashboard-1.4.2 → truthound_dashboard-1.5.0}/src/truthound_dashboard/schemas/validators/aggregate_validators.py +0 -0
- {truthound_dashboard-1.4.2 → truthound_dashboard-1.5.0}/src/truthound_dashboard/schemas/validators/anomaly_validators.py +0 -0
- {truthound_dashboard-1.4.2 → truthound_dashboard-1.5.0}/src/truthound_dashboard/schemas/validators/completeness_validators.py +0 -0
- {truthound_dashboard-1.4.2 → truthound_dashboard-1.5.0}/src/truthound_dashboard/schemas/validators/cross_table_validators.py +0 -0
- {truthound_dashboard-1.4.2 → truthound_dashboard-1.5.0}/src/truthound_dashboard/schemas/validators/datetime_validators.py +0 -0
- {truthound_dashboard-1.4.2 → truthound_dashboard-1.5.0}/src/truthound_dashboard/schemas/validators/distribution_validators.py +0 -0
- {truthound_dashboard-1.4.2 → truthound_dashboard-1.5.0}/src/truthound_dashboard/schemas/validators/drift_validators.py +0 -0
- {truthound_dashboard-1.4.2 → truthound_dashboard-1.5.0}/src/truthound_dashboard/schemas/validators/geospatial_validators.py +0 -0
- {truthound_dashboard-1.4.2 → truthound_dashboard-1.5.0}/src/truthound_dashboard/schemas/validators/multi_column_validators.py +0 -0
- {truthound_dashboard-1.4.2 → truthound_dashboard-1.5.0}/src/truthound_dashboard/schemas/validators/privacy_validators.py +0 -0
- {truthound_dashboard-1.4.2 → truthound_dashboard-1.5.0}/src/truthound_dashboard/schemas/validators/query_validators.py +0 -0
- {truthound_dashboard-1.4.2 → truthound_dashboard-1.5.0}/src/truthound_dashboard/schemas/validators/schema_validators.py +0 -0
- {truthound_dashboard-1.4.2 → truthound_dashboard-1.5.0}/src/truthound_dashboard/schemas/validators/string_validators.py +0 -0
- {truthound_dashboard-1.4.2 → truthound_dashboard-1.5.0}/src/truthound_dashboard/schemas/validators/table_validators.py +0 -0
- {truthound_dashboard-1.4.2 → truthound_dashboard-1.5.0}/src/truthound_dashboard/schemas/validators/uniqueness_validators.py +0 -0
- {truthound_dashboard-1.4.2 → truthound_dashboard-1.5.0}/src/truthound_dashboard/schemas/validators.py +0 -0
- {truthound_dashboard-1.4.2 → truthound_dashboard-1.5.0}/src/truthound_dashboard/static/assets/logo--IpBiMPK.png +0 -0
- {truthound_dashboard-1.4.2/frontend/public-pip → truthound_dashboard-1.5.0/src/truthound_dashboard/static}/favicon.ico +0 -0
- {truthound_dashboard-1.4.2 → truthound_dashboard-1.5.0}/src/truthound_dashboard/translate/__init__.py +0 -0
- {truthound_dashboard-1.4.2 → truthound_dashboard-1.5.0}/src/truthound_dashboard/translate/config_updater.py +0 -0
- {truthound_dashboard-1.4.2 → truthound_dashboard-1.5.0}/src/truthound_dashboard/translate/exceptions.py +0 -0
- {truthound_dashboard-1.4.2 → truthound_dashboard-1.5.0}/src/truthound_dashboard/translate/providers/__init__.py +0 -0
- {truthound_dashboard-1.4.2 → truthound_dashboard-1.5.0}/src/truthound_dashboard/translate/providers/anthropic.py +0 -0
- {truthound_dashboard-1.4.2 → truthound_dashboard-1.5.0}/src/truthound_dashboard/translate/providers/base.py +0 -0
- {truthound_dashboard-1.4.2 → truthound_dashboard-1.5.0}/src/truthound_dashboard/translate/providers/mistral.py +0 -0
- {truthound_dashboard-1.4.2 → truthound_dashboard-1.5.0}/src/truthound_dashboard/translate/providers/ollama.py +0 -0
- {truthound_dashboard-1.4.2 → truthound_dashboard-1.5.0}/src/truthound_dashboard/translate/providers/openai.py +0 -0
- {truthound_dashboard-1.4.2 → truthound_dashboard-1.5.0}/src/truthound_dashboard/translate/providers/registry.py +0 -0
- {truthound_dashboard-1.4.2 → truthound_dashboard-1.5.0}/src/truthound_dashboard/translate/translator.py +0 -0
|
@@ -0,0 +1,309 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: truthound-dashboard
|
|
3
|
+
Version: 1.5.0
|
|
4
|
+
Summary: Open-source data quality dashboard - GX Cloud alternative
|
|
5
|
+
Author-email: Truthound Team <team@truthound.dev>
|
|
6
|
+
License-Expression: Apache-2.0
|
|
7
|
+
License-File: LICENSE
|
|
8
|
+
Keywords: dashboard,data-quality,monitoring,truthound,validation
|
|
9
|
+
Classifier: Development Status :: 3 - Alpha
|
|
10
|
+
Classifier: Framework :: FastAPI
|
|
11
|
+
Classifier: Intended Audience :: Developers
|
|
12
|
+
Classifier: Intended Audience :: Science/Research
|
|
13
|
+
Classifier: License :: OSI Approved :: Apache Software License
|
|
14
|
+
Classifier: Operating System :: OS Independent
|
|
15
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
16
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
17
|
+
Classifier: Topic :: Database
|
|
18
|
+
Classifier: Topic :: Scientific/Engineering
|
|
19
|
+
Requires-Python: >=3.11
|
|
20
|
+
Requires-Dist: aiosmtplib>=3.0.0
|
|
21
|
+
Requires-Dist: aiosqlite>=0.19.0
|
|
22
|
+
Requires-Dist: apscheduler>=3.10.0
|
|
23
|
+
Requires-Dist: cryptography>=41.0.0
|
|
24
|
+
Requires-Dist: fastapi>=0.110.0
|
|
25
|
+
Requires-Dist: httpx>=0.26.0
|
|
26
|
+
Requires-Dist: jinja2>=3.1.0
|
|
27
|
+
Requires-Dist: numpy>=1.24.0
|
|
28
|
+
Requires-Dist: pydantic-settings>=2.1.0
|
|
29
|
+
Requires-Dist: pydantic>=2.5.0
|
|
30
|
+
Requires-Dist: sqlalchemy[asyncio]>=2.0.0
|
|
31
|
+
Requires-Dist: truthound>=1.2.10
|
|
32
|
+
Requires-Dist: uvicorn[standard]>=0.27.0
|
|
33
|
+
Provides-Extra: dev
|
|
34
|
+
Requires-Dist: black>=23.0.0; extra == 'dev'
|
|
35
|
+
Requires-Dist: httpx>=0.26.0; extra == 'dev'
|
|
36
|
+
Requires-Dist: mypy>=1.8.0; extra == 'dev'
|
|
37
|
+
Requires-Dist: pytest-asyncio>=0.21.0; extra == 'dev'
|
|
38
|
+
Requires-Dist: pytest-cov>=4.1.0; extra == 'dev'
|
|
39
|
+
Requires-Dist: pytest>=7.4.0; extra == 'dev'
|
|
40
|
+
Requires-Dist: ruff>=0.1.0; extra == 'dev'
|
|
41
|
+
Provides-Extra: redis
|
|
42
|
+
Requires-Dist: redis>=5.0.0; extra == 'redis'
|
|
43
|
+
Provides-Extra: translate
|
|
44
|
+
Description-Content-Type: text/markdown
|
|
45
|
+
|
|
46
|
+
# truthound-dashboard
|
|
47
|
+
|
|
48
|
+
> **UNDER ACTIVE DEVELOPMENT**: This project is currently in active development. APIs and features may change without notice. Not recommended for production use yet.
|
|
49
|
+
|
|
50
|
+
## Overview
|
|
51
|
+
<img width="300" height="300" alt="Truthound_icon" src="https://github.com/user-attachments/assets/90d9e806-8895-45ec-97dc-f8300da4d997" />
|
|
52
|
+
|
|
53
|
+
[](https://pypi.org/project/truthound-dashboard/)
|
|
54
|
+
[](https://www.python.org/downloads/)
|
|
55
|
+
[](https://opensource.org/licenses/Apache-2.0)
|
|
56
|
+
[](https://intlayer.org)
|
|
57
|
+
[](https://pepy.tech/project/truthound-dashboard)
|
|
58
|
+
|
|
59
|
+
A web-based data quality monitoring dashboard for [truthound](https://github.com/seadonggyun4/truthound).
|
|
60
|
+
|
|
61
|
+
truthound-dashboard provides a graphical interface for managing data sources, executing validations, tracking historical results, scheduling automated checks, and configuring notifications. It serves as an alternative to commercial data quality platforms.
|
|
62
|
+
|
|
63
|
+
[Documentation](https://truthound.netlify.app) | [PyPI](https://pypi.org/project/truthound-dashboard/)
|
|
64
|
+
|
|
65
|
+
## Design Principles
|
|
66
|
+
|
|
67
|
+
- **Zero-Config**: Works out of the box with sensible defaults
|
|
68
|
+
- **Single Process**: No Redis, Celery, or PostgreSQL required
|
|
69
|
+
- **Local First**: Full functionality without cloud dependencies
|
|
70
|
+
- **GX Cloud Parity**: Match paid features for free
|
|
71
|
+
|
|
72
|
+
## Feature Comparison with GX Cloud
|
|
73
|
+
|
|
74
|
+
| Feature | GX Cloud (Paid) | truthound-dashboard |
|
|
75
|
+
|---------|-----------------|---------------------|
|
|
76
|
+
| Data Source Management | Available | Available |
|
|
77
|
+
| Schema Learning | Available | Available |
|
|
78
|
+
| Validation Execution | Available | Available (289+ validators) |
|
|
79
|
+
| Validation History | Available | Available |
|
|
80
|
+
| Scheduled Validations | Available | Available (6 trigger types) |
|
|
81
|
+
| Notifications | Available | Available (9 channels) |
|
|
82
|
+
| Drift Detection | Available | Available (14 methods) |
|
|
83
|
+
| Data Profiling | Available | Available |
|
|
84
|
+
| PII Scan & Masking | Available | Available (GDPR/CCPA/LGPD) |
|
|
85
|
+
| Anomaly Detection | Limited | Available (6 ML algorithms) |
|
|
86
|
+
| Data Lineage | Available | Available (4 renderers) |
|
|
87
|
+
| Model Monitoring | Available | Available |
|
|
88
|
+
| Reports & Export | Available | Available (6 formats) |
|
|
89
|
+
| Plugin Marketplace | Not Available | Available |
|
|
90
|
+
| Storage Tiering | Not Available | Available |
|
|
91
|
+
| Dark Mode & i18n | Limited | Available (2 languages + AI translation) |
|
|
92
|
+
| License | Commercial | Apache 2.0 |
|
|
93
|
+
|
|
94
|
+
## Requirements
|
|
95
|
+
|
|
96
|
+
- Python 3.11 or higher
|
|
97
|
+
- truthound >= 1.2.10
|
|
98
|
+
|
|
99
|
+
## Installation
|
|
100
|
+
|
|
101
|
+
```bash
|
|
102
|
+
pip install truthound-dashboard
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
This command automatically installs [truthound](https://github.com/seadonggyun4/truthound) as a dependency.
|
|
106
|
+
|
|
107
|
+
## Usage
|
|
108
|
+
|
|
109
|
+
```bash
|
|
110
|
+
# Start the dashboard server (default port: 8765)
|
|
111
|
+
truthound serve
|
|
112
|
+
|
|
113
|
+
# Specify a custom port
|
|
114
|
+
truthound serve --port 9000
|
|
115
|
+
|
|
116
|
+
# Enable development mode with hot reload
|
|
117
|
+
truthound serve --reload
|
|
118
|
+
|
|
119
|
+
# Disable automatic browser opening
|
|
120
|
+
truthound serve --no-browser
|
|
121
|
+
```
|
|
122
|
+
|
|
123
|
+
The dashboard interface is accessible at `http://localhost:8765`.
|
|
124
|
+
|
|
125
|
+
## Features
|
|
126
|
+
|
|
127
|
+
### Data Management
|
|
128
|
+
|
|
129
|
+
| Feature | Description | Documentation |
|
|
130
|
+
|---------|-------------|---------------|
|
|
131
|
+
| **Dashboard** | Overview statistics and quick navigation | [docs/data-management/dashboard.md](./docs/data-management/dashboard.md) |
|
|
132
|
+
| **Data Sources** | CSV, Parquet, JSON, 13 database connectors (PostgreSQL, MySQL, SQLite, BigQuery, Snowflake, etc.) | [docs/data-management/sources.md](./docs/data-management/sources.md) |
|
|
133
|
+
| **Data Catalog** | Asset metadata, column-level management, quality scores, sensitivity classification | [docs/data-management/catalog.md](./docs/data-management/catalog.md) |
|
|
134
|
+
| **Business Glossary** | Term definitions, categories, relationships, lifecycle management | [docs/data-management/glossary.md](./docs/data-management/glossary.md) |
|
|
135
|
+
|
|
136
|
+
### Data Quality
|
|
137
|
+
|
|
138
|
+
| Feature | Description | Documentation |
|
|
139
|
+
|---------|-------------|---------------|
|
|
140
|
+
| **Validations** | 289+ validators across 15 categories, per-validator configuration, severity override, parallel execution | [docs/data-quality/validations.md](./docs/data-quality/validations.md) |
|
|
141
|
+
| **Drift Detection** | 14 statistical methods (KS, PSI, Chi2, JS, Wasserstein, etc.), column-level comparison | [docs/data-quality/drift.md](./docs/data-quality/drift.md) |
|
|
142
|
+
| **Drift Monitoring** | Continuous monitoring with alerts, root cause analysis, remediation suggestions | [docs/data-quality/drift-monitoring.md](./docs/data-quality/drift-monitoring.md) |
|
|
143
|
+
| **Schema Evolution** | Change tracking, breaking/warning/safe classification, version timeline | [docs/data-quality/schema-evolution.md](./docs/data-quality/schema-evolution.md) |
|
|
144
|
+
| **Schema Watcher** | Real-time schema change detection, rename detection, alert thresholds | [docs/data-quality/schema-watcher.md](./docs/data-quality/schema-watcher.md) |
|
|
145
|
+
| **Profile Comparison** | Longitudinal profile analysis, delta computation, trend charts | [docs/data-quality/profile-comparison.md](./docs/data-quality/profile-comparison.md) |
|
|
146
|
+
| **Privacy & PII** | PII detection (`th.scan`), data masking (`th.mask`), GDPR/CCPA/LGPD compliance | [docs/data-quality/privacy.md](./docs/data-quality/privacy.md) |
|
|
147
|
+
| **Data Lineage** | Interactive graph visualization (D3/Mermaid/Cytoscape), impact analysis, OpenLineage integration | [docs/data-quality/lineage.md](./docs/data-quality/lineage.md) |
|
|
148
|
+
| **Quality Reporter** | Quality scoring with F1/Precision/Recall metrics, multi-format export | [docs/data-quality/quality-reporter.md](./docs/data-quality/quality-reporter.md) |
|
|
149
|
+
| **Enterprise Sampling** | Block, multi-stage, column-aware, progressive strategies for 100M+ rows | [docs/data-quality/enterprise-sampling.md](./docs/data-quality/enterprise-sampling.md) |
|
|
150
|
+
| **Rule Suggestions** | AI-powered rule generation from data profiles, confidence scoring | [docs/data-quality/rule-suggestions.md](./docs/data-quality/rule-suggestions.md) |
|
|
151
|
+
|
|
152
|
+
### ML & Monitoring
|
|
153
|
+
|
|
154
|
+
| Feature | Description | Documentation |
|
|
155
|
+
|---------|-------------|---------------|
|
|
156
|
+
| **Anomaly Detection** | 6 ML algorithms (IsolationForest, Z-Score, IQR, MAD, Ensemble, DistributionDrift), streaming support | [docs/ml-monitoring/anomaly.md](./docs/ml-monitoring/anomaly.md) |
|
|
157
|
+
| **Model Monitoring** | ML model performance tracking, metric monitoring, alert rules, model versioning | [docs/ml-monitoring/model-monitoring.md](./docs/ml-monitoring/model-monitoring.md) |
|
|
158
|
+
|
|
159
|
+
### System
|
|
160
|
+
|
|
161
|
+
| Feature | Description | Documentation |
|
|
162
|
+
|---------|-------------|---------------|
|
|
163
|
+
| **Unified Alerts** | Cross-feature alert aggregation, severity filtering, correlation and grouping | [docs/system/alerts.md](./docs/system/alerts.md) |
|
|
164
|
+
| **Schedules** | 6 trigger types (cron, interval, data change, composite, event, manual), validator configuration | [docs/system/schedules.md](./docs/system/schedules.md) |
|
|
165
|
+
| **Trigger Monitoring** | Real-time trigger health, cooldown tracking, webhook management, execution history | [docs/system/trigger-monitoring.md](./docs/system/trigger-monitoring.md) |
|
|
166
|
+
| **Activity Feed** | System event timeline, collaboration comments, change tracking | [docs/system/activity.md](./docs/system/activity.md) |
|
|
167
|
+
| **Notifications** | 9 channels (Slack, Email, Webhook, Discord, Telegram, PagerDuty, OpsGenie, Teams, GitHub) | [docs/system/notifications.md](./docs/system/notifications.md) |
|
|
168
|
+
| **Advanced Notifications** | Rule-based routing, deduplication (4 strategies), throttling (5 methods), multi-level escalation | [docs/system/notifications-advanced.md](./docs/system/notifications-advanced.md) |
|
|
169
|
+
| **Reports** | 6 formats (HTML, PDF, CSV, JSON, Excel, Markdown), statistics dashboard, lifecycle management | [docs/system/reports.md](./docs/system/reports.md) |
|
|
170
|
+
| **Plugins** | Marketplace, 4 plugin types, custom validator/reporter creation, security levels | [docs/system/plugins.md](./docs/system/plugins.md) |
|
|
171
|
+
| **Storage Tiering** | Hot/Warm/Cold/Archive tiers, 6 policy types, composite AND/OR logic, migration history | [docs/system/storage-tiering.md](./docs/system/storage-tiering.md) |
|
|
172
|
+
| **Observability** | Audit logging, metrics collection, distributed tracing | [docs/system/observability.md](./docs/system/observability.md) |
|
|
173
|
+
| **Maintenance** | Retention policies, auto-cleanup, database optimization (VACUUM), cache management | [docs/system/maintenance.md](./docs/system/maintenance.md) |
|
|
174
|
+
|
|
175
|
+
## Internationalization
|
|
176
|
+
|
|
177
|
+
truthound-dashboard implements internationalization using [Intlayer](https://intlayer.org), a modern i18n framework that provides type-safe translations with component-level content declaration.
|
|
178
|
+
|
|
179
|
+
### Built-in Languages
|
|
180
|
+
|
|
181
|
+
The dashboard ships with **2 fully translated languages**:
|
|
182
|
+
- **English (en)** - Complete UI translation
|
|
183
|
+
- **Korean (ko)** - Complete UI translation
|
|
184
|
+
|
|
185
|
+
These languages are immediately available without additional configuration or setup.
|
|
186
|
+
|
|
187
|
+
### Extending Language Support
|
|
188
|
+
|
|
189
|
+
The dashboard can be extended to support 15+ additional languages using the AI-powered `translate` command. This CLI tool translates all UI content files from the built-in English and Korean to your target language.
|
|
190
|
+
|
|
191
|
+
**Note:** Additional languages are not included in the default installation and must be generated using the translation CLI before deployment.
|
|
192
|
+
|
|
193
|
+
#### Supported AI Providers
|
|
194
|
+
|
|
195
|
+
| Provider | Environment Variable | Models |
|
|
196
|
+
|----------|---------------------|--------|
|
|
197
|
+
| OpenAI | `OPENAI_API_KEY` | GPT-4o, GPT-4o-mini, GPT-4, GPT-3.5 |
|
|
198
|
+
| Anthropic | `ANTHROPIC_API_KEY` | Claude Sonnet 4, Claude Opus 4 |
|
|
199
|
+
| Mistral | `MISTRAL_API_KEY` | Mistral Large, Mistral Small |
|
|
200
|
+
| Ollama | Not required | Llama 3.2, Mistral, Qwen (local execution) |
|
|
201
|
+
|
|
202
|
+
#### Configuration
|
|
203
|
+
|
|
204
|
+
API credentials are configured through environment variables. This approach ensures that sensitive credentials are not exposed in command history or application logs.
|
|
205
|
+
|
|
206
|
+
**Temporary Session Configuration**
|
|
207
|
+
|
|
208
|
+
```bash
|
|
209
|
+
# OpenAI
|
|
210
|
+
export OPENAI_API_KEY=sk-xxxxxxxxxxxx
|
|
211
|
+
truthound translate -l fr -p openai
|
|
212
|
+
|
|
213
|
+
# Anthropic
|
|
214
|
+
export ANTHROPIC_API_KEY=sk-ant-xxxxxxxxxxxx
|
|
215
|
+
truthound translate -l fr -p anthropic
|
|
216
|
+
|
|
217
|
+
# Mistral
|
|
218
|
+
export MISTRAL_API_KEY=xxxxxxxxxxxx
|
|
219
|
+
truthound translate -l fr -p mistral
|
|
220
|
+
```
|
|
221
|
+
|
|
222
|
+
**Persistent Configuration**
|
|
223
|
+
|
|
224
|
+
```bash
|
|
225
|
+
# Add to shell configuration file (~/.bashrc or ~/.zshrc)
|
|
226
|
+
echo 'export OPENAI_API_KEY=sk-xxxxxxxxxxxx' >> ~/.zshrc
|
|
227
|
+
source ~/.zshrc
|
|
228
|
+
```
|
|
229
|
+
|
|
230
|
+
**Inline Configuration**
|
|
231
|
+
|
|
232
|
+
```bash
|
|
233
|
+
OPENAI_API_KEY=sk-xxx truthound translate -l fr -p openai
|
|
234
|
+
```
|
|
235
|
+
|
|
236
|
+
#### Usage Examples
|
|
237
|
+
|
|
238
|
+
```bash
|
|
239
|
+
# Translate to French using OpenAI
|
|
240
|
+
truthound translate -l fr -p openai
|
|
241
|
+
|
|
242
|
+
# Translate to multiple languages
|
|
243
|
+
truthound translate -l ja,zh,de,fr -p anthropic
|
|
244
|
+
|
|
245
|
+
# Use local Ollama (no API key required)
|
|
246
|
+
truthound translate -l fr -p ollama
|
|
247
|
+
|
|
248
|
+
# Auto-detect available provider
|
|
249
|
+
truthound translate -l fr
|
|
250
|
+
|
|
251
|
+
# Preview files without making changes
|
|
252
|
+
truthound translate -l fr --dry-run
|
|
253
|
+
|
|
254
|
+
# List available providers and their status
|
|
255
|
+
truthound translate --list-providers
|
|
256
|
+
|
|
257
|
+
# List supported language codes
|
|
258
|
+
truthound translate --list-languages
|
|
259
|
+
```
|
|
260
|
+
|
|
261
|
+
#### Security Considerations
|
|
262
|
+
|
|
263
|
+
| Aspect | Risk Level | Description |
|
|
264
|
+
|--------|------------|-------------|
|
|
265
|
+
| Network transmission | None | API keys are used locally and transmitted only to the selected provider |
|
|
266
|
+
| Source code exposure | None | Credentials are injected via environment variables |
|
|
267
|
+
| Build artifact inclusion | None | Only translated content is persisted; credentials are not stored |
|
|
268
|
+
| API communication | Standard | Requests are made directly to provider endpoints using user credentials |
|
|
269
|
+
|
|
270
|
+
#### Supported Languages
|
|
271
|
+
|
|
272
|
+
The translation system supports 36 languages including: Arabic, Bulgarian, Chinese, Croatian, Czech, Danish, Dutch, English, Estonian, Finnish, French, German, Greek, Hebrew, Hindi, Hungarian, Indonesian, Italian, Japanese, Korean, Latvian, Lithuanian, Malay, Norwegian, Polish, Portuguese, Romanian, Russian, Slovak, Slovenian, Spanish, Swedish, Thai, Turkish, Ukrainian, and Vietnamese.
|
|
273
|
+
|
|
274
|
+
Execute `truthound translate --list-languages` to view the complete list with language codes.
|
|
275
|
+
|
|
276
|
+
## Technology Stack
|
|
277
|
+
|
|
278
|
+
**Backend**
|
|
279
|
+
- FastAPI
|
|
280
|
+
- SQLAlchemy 2.0 (async)
|
|
281
|
+
- SQLite with aiosqlite
|
|
282
|
+
- APScheduler
|
|
283
|
+
- Pydantic 2.x
|
|
284
|
+
|
|
285
|
+
**Frontend**
|
|
286
|
+
- React 18
|
|
287
|
+
- TypeScript
|
|
288
|
+
- Vite
|
|
289
|
+
- TailwindCSS
|
|
290
|
+
- shadcn/ui
|
|
291
|
+
- Zustand
|
|
292
|
+
- [Intlayer](https://intlayer.org) (internationalization)
|
|
293
|
+
|
|
294
|
+
## Documentation
|
|
295
|
+
|
|
296
|
+
Full documentation is available at [https://truthound.netlify.app](https://truthound.netlify.app).
|
|
297
|
+
|
|
298
|
+
- [Getting Started](./docs/getting-started.md)
|
|
299
|
+
- [Architecture](./docs/architecture.md)
|
|
300
|
+
- [All Documentation](./docs/index.md)
|
|
301
|
+
|
|
302
|
+
## Related Projects
|
|
303
|
+
|
|
304
|
+
- [truthound](https://github.com/seadonggyun4/truthound) - Core data validation library
|
|
305
|
+
- [truthound-orchestration](https://github.com/seadonggyun4/truthound-orchestration) - Pipeline orchestration integration
|
|
306
|
+
|
|
307
|
+
## License
|
|
308
|
+
|
|
309
|
+
This project is licensed under the Apache License 2.0.
|
|
@@ -0,0 +1,264 @@
|
|
|
1
|
+
# truthound-dashboard
|
|
2
|
+
|
|
3
|
+
> **UNDER ACTIVE DEVELOPMENT**: This project is currently in active development. APIs and features may change without notice. Not recommended for production use yet.
|
|
4
|
+
|
|
5
|
+
## Overview
|
|
6
|
+
<img width="300" height="300" alt="Truthound_icon" src="https://github.com/user-attachments/assets/90d9e806-8895-45ec-97dc-f8300da4d997" />
|
|
7
|
+
|
|
8
|
+
[](https://pypi.org/project/truthound-dashboard/)
|
|
9
|
+
[](https://www.python.org/downloads/)
|
|
10
|
+
[](https://opensource.org/licenses/Apache-2.0)
|
|
11
|
+
[](https://intlayer.org)
|
|
12
|
+
[](https://pepy.tech/project/truthound-dashboard)
|
|
13
|
+
|
|
14
|
+
A web-based data quality monitoring dashboard for [truthound](https://github.com/seadonggyun4/truthound).
|
|
15
|
+
|
|
16
|
+
truthound-dashboard provides a graphical interface for managing data sources, executing validations, tracking historical results, scheduling automated checks, and configuring notifications. It serves as an alternative to commercial data quality platforms.
|
|
17
|
+
|
|
18
|
+
[Documentation](https://truthound.netlify.app) | [PyPI](https://pypi.org/project/truthound-dashboard/)
|
|
19
|
+
|
|
20
|
+
## Design Principles
|
|
21
|
+
|
|
22
|
+
- **Zero-Config**: Works out of the box with sensible defaults
|
|
23
|
+
- **Single Process**: No Redis, Celery, or PostgreSQL required
|
|
24
|
+
- **Local First**: Full functionality without cloud dependencies
|
|
25
|
+
- **GX Cloud Parity**: Match paid features for free
|
|
26
|
+
|
|
27
|
+
## Feature Comparison with GX Cloud
|
|
28
|
+
|
|
29
|
+
| Feature | GX Cloud (Paid) | truthound-dashboard |
|
|
30
|
+
|---------|-----------------|---------------------|
|
|
31
|
+
| Data Source Management | Available | Available |
|
|
32
|
+
| Schema Learning | Available | Available |
|
|
33
|
+
| Validation Execution | Available | Available (289+ validators) |
|
|
34
|
+
| Validation History | Available | Available |
|
|
35
|
+
| Scheduled Validations | Available | Available (6 trigger types) |
|
|
36
|
+
| Notifications | Available | Available (9 channels) |
|
|
37
|
+
| Drift Detection | Available | Available (14 methods) |
|
|
38
|
+
| Data Profiling | Available | Available |
|
|
39
|
+
| PII Scan & Masking | Available | Available (GDPR/CCPA/LGPD) |
|
|
40
|
+
| Anomaly Detection | Limited | Available (6 ML algorithms) |
|
|
41
|
+
| Data Lineage | Available | Available (4 renderers) |
|
|
42
|
+
| Model Monitoring | Available | Available |
|
|
43
|
+
| Reports & Export | Available | Available (6 formats) |
|
|
44
|
+
| Plugin Marketplace | Not Available | Available |
|
|
45
|
+
| Storage Tiering | Not Available | Available |
|
|
46
|
+
| Dark Mode & i18n | Limited | Available (2 languages + AI translation) |
|
|
47
|
+
| License | Commercial | Apache 2.0 |
|
|
48
|
+
|
|
49
|
+
## Requirements
|
|
50
|
+
|
|
51
|
+
- Python 3.11 or higher
|
|
52
|
+
- truthound >= 1.2.10
|
|
53
|
+
|
|
54
|
+
## Installation
|
|
55
|
+
|
|
56
|
+
```bash
|
|
57
|
+
pip install truthound-dashboard
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
This command automatically installs [truthound](https://github.com/seadonggyun4/truthound) as a dependency.
|
|
61
|
+
|
|
62
|
+
## Usage
|
|
63
|
+
|
|
64
|
+
```bash
|
|
65
|
+
# Start the dashboard server (default port: 8765)
|
|
66
|
+
truthound serve
|
|
67
|
+
|
|
68
|
+
# Specify a custom port
|
|
69
|
+
truthound serve --port 9000
|
|
70
|
+
|
|
71
|
+
# Enable development mode with hot reload
|
|
72
|
+
truthound serve --reload
|
|
73
|
+
|
|
74
|
+
# Disable automatic browser opening
|
|
75
|
+
truthound serve --no-browser
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
The dashboard interface is accessible at `http://localhost:8765`.
|
|
79
|
+
|
|
80
|
+
## Features
|
|
81
|
+
|
|
82
|
+
### Data Management
|
|
83
|
+
|
|
84
|
+
| Feature | Description | Documentation |
|
|
85
|
+
|---------|-------------|---------------|
|
|
86
|
+
| **Dashboard** | Overview statistics and quick navigation | [docs/data-management/dashboard.md](./docs/data-management/dashboard.md) |
|
|
87
|
+
| **Data Sources** | CSV, Parquet, JSON, 13 database connectors (PostgreSQL, MySQL, SQLite, BigQuery, Snowflake, etc.) | [docs/data-management/sources.md](./docs/data-management/sources.md) |
|
|
88
|
+
| **Data Catalog** | Asset metadata, column-level management, quality scores, sensitivity classification | [docs/data-management/catalog.md](./docs/data-management/catalog.md) |
|
|
89
|
+
| **Business Glossary** | Term definitions, categories, relationships, lifecycle management | [docs/data-management/glossary.md](./docs/data-management/glossary.md) |
|
|
90
|
+
|
|
91
|
+
### Data Quality
|
|
92
|
+
|
|
93
|
+
| Feature | Description | Documentation |
|
|
94
|
+
|---------|-------------|---------------|
|
|
95
|
+
| **Validations** | 289+ validators across 15 categories, per-validator configuration, severity override, parallel execution | [docs/data-quality/validations.md](./docs/data-quality/validations.md) |
|
|
96
|
+
| **Drift Detection** | 14 statistical methods (KS, PSI, Chi2, JS, Wasserstein, etc.), column-level comparison | [docs/data-quality/drift.md](./docs/data-quality/drift.md) |
|
|
97
|
+
| **Drift Monitoring** | Continuous monitoring with alerts, root cause analysis, remediation suggestions | [docs/data-quality/drift-monitoring.md](./docs/data-quality/drift-monitoring.md) |
|
|
98
|
+
| **Schema Evolution** | Change tracking, breaking/warning/safe classification, version timeline | [docs/data-quality/schema-evolution.md](./docs/data-quality/schema-evolution.md) |
|
|
99
|
+
| **Schema Watcher** | Real-time schema change detection, rename detection, alert thresholds | [docs/data-quality/schema-watcher.md](./docs/data-quality/schema-watcher.md) |
|
|
100
|
+
| **Profile Comparison** | Longitudinal profile analysis, delta computation, trend charts | [docs/data-quality/profile-comparison.md](./docs/data-quality/profile-comparison.md) |
|
|
101
|
+
| **Privacy & PII** | PII detection (`th.scan`), data masking (`th.mask`), GDPR/CCPA/LGPD compliance | [docs/data-quality/privacy.md](./docs/data-quality/privacy.md) |
|
|
102
|
+
| **Data Lineage** | Interactive graph visualization (D3/Mermaid/Cytoscape), impact analysis, OpenLineage integration | [docs/data-quality/lineage.md](./docs/data-quality/lineage.md) |
|
|
103
|
+
| **Quality Reporter** | Quality scoring with F1/Precision/Recall metrics, multi-format export | [docs/data-quality/quality-reporter.md](./docs/data-quality/quality-reporter.md) |
|
|
104
|
+
| **Enterprise Sampling** | Block, multi-stage, column-aware, progressive strategies for 100M+ rows | [docs/data-quality/enterprise-sampling.md](./docs/data-quality/enterprise-sampling.md) |
|
|
105
|
+
| **Rule Suggestions** | AI-powered rule generation from data profiles, confidence scoring | [docs/data-quality/rule-suggestions.md](./docs/data-quality/rule-suggestions.md) |
|
|
106
|
+
|
|
107
|
+
### ML & Monitoring
|
|
108
|
+
|
|
109
|
+
| Feature | Description | Documentation |
|
|
110
|
+
|---------|-------------|---------------|
|
|
111
|
+
| **Anomaly Detection** | 6 ML algorithms (IsolationForest, Z-Score, IQR, MAD, Ensemble, DistributionDrift), streaming support | [docs/ml-monitoring/anomaly.md](./docs/ml-monitoring/anomaly.md) |
|
|
112
|
+
| **Model Monitoring** | ML model performance tracking, metric monitoring, alert rules, model versioning | [docs/ml-monitoring/model-monitoring.md](./docs/ml-monitoring/model-monitoring.md) |
|
|
113
|
+
|
|
114
|
+
### System
|
|
115
|
+
|
|
116
|
+
| Feature | Description | Documentation |
|
|
117
|
+
|---------|-------------|---------------|
|
|
118
|
+
| **Unified Alerts** | Cross-feature alert aggregation, severity filtering, correlation and grouping | [docs/system/alerts.md](./docs/system/alerts.md) |
|
|
119
|
+
| **Schedules** | 6 trigger types (cron, interval, data change, composite, event, manual), validator configuration | [docs/system/schedules.md](./docs/system/schedules.md) |
|
|
120
|
+
| **Trigger Monitoring** | Real-time trigger health, cooldown tracking, webhook management, execution history | [docs/system/trigger-monitoring.md](./docs/system/trigger-monitoring.md) |
|
|
121
|
+
| **Activity Feed** | System event timeline, collaboration comments, change tracking | [docs/system/activity.md](./docs/system/activity.md) |
|
|
122
|
+
| **Notifications** | 9 channels (Slack, Email, Webhook, Discord, Telegram, PagerDuty, OpsGenie, Teams, GitHub) | [docs/system/notifications.md](./docs/system/notifications.md) |
|
|
123
|
+
| **Advanced Notifications** | Rule-based routing, deduplication (4 strategies), throttling (5 methods), multi-level escalation | [docs/system/notifications-advanced.md](./docs/system/notifications-advanced.md) |
|
|
124
|
+
| **Reports** | 6 formats (HTML, PDF, CSV, JSON, Excel, Markdown), statistics dashboard, lifecycle management | [docs/system/reports.md](./docs/system/reports.md) |
|
|
125
|
+
| **Plugins** | Marketplace, 4 plugin types, custom validator/reporter creation, security levels | [docs/system/plugins.md](./docs/system/plugins.md) |
|
|
126
|
+
| **Storage Tiering** | Hot/Warm/Cold/Archive tiers, 6 policy types, composite AND/OR logic, migration history | [docs/system/storage-tiering.md](./docs/system/storage-tiering.md) |
|
|
127
|
+
| **Observability** | Audit logging, metrics collection, distributed tracing | [docs/system/observability.md](./docs/system/observability.md) |
|
|
128
|
+
| **Maintenance** | Retention policies, auto-cleanup, database optimization (VACUUM), cache management | [docs/system/maintenance.md](./docs/system/maintenance.md) |
|
|
129
|
+
|
|
130
|
+
## Internationalization
|
|
131
|
+
|
|
132
|
+
truthound-dashboard implements internationalization using [Intlayer](https://intlayer.org), a modern i18n framework that provides type-safe translations with component-level content declaration.
|
|
133
|
+
|
|
134
|
+
### Built-in Languages
|
|
135
|
+
|
|
136
|
+
The dashboard ships with **2 fully translated languages**:
|
|
137
|
+
- **English (en)** - Complete UI translation
|
|
138
|
+
- **Korean (ko)** - Complete UI translation
|
|
139
|
+
|
|
140
|
+
These languages are immediately available without additional configuration or setup.
|
|
141
|
+
|
|
142
|
+
### Extending Language Support
|
|
143
|
+
|
|
144
|
+
The dashboard can be extended to support 15+ additional languages using the AI-powered `translate` command. This CLI tool translates all UI content files from the built-in English and Korean to your target language.
|
|
145
|
+
|
|
146
|
+
**Note:** Additional languages are not included in the default installation and must be generated using the translation CLI before deployment.
|
|
147
|
+
|
|
148
|
+
#### Supported AI Providers
|
|
149
|
+
|
|
150
|
+
| Provider | Environment Variable | Models |
|
|
151
|
+
|----------|---------------------|--------|
|
|
152
|
+
| OpenAI | `OPENAI_API_KEY` | GPT-4o, GPT-4o-mini, GPT-4, GPT-3.5 |
|
|
153
|
+
| Anthropic | `ANTHROPIC_API_KEY` | Claude Sonnet 4, Claude Opus 4 |
|
|
154
|
+
| Mistral | `MISTRAL_API_KEY` | Mistral Large, Mistral Small |
|
|
155
|
+
| Ollama | Not required | Llama 3.2, Mistral, Qwen (local execution) |
|
|
156
|
+
|
|
157
|
+
#### Configuration
|
|
158
|
+
|
|
159
|
+
API credentials are configured through environment variables. This approach ensures that sensitive credentials are not exposed in command history or application logs.
|
|
160
|
+
|
|
161
|
+
**Temporary Session Configuration**
|
|
162
|
+
|
|
163
|
+
```bash
|
|
164
|
+
# OpenAI
|
|
165
|
+
export OPENAI_API_KEY=sk-xxxxxxxxxxxx
|
|
166
|
+
truthound translate -l fr -p openai
|
|
167
|
+
|
|
168
|
+
# Anthropic
|
|
169
|
+
export ANTHROPIC_API_KEY=sk-ant-xxxxxxxxxxxx
|
|
170
|
+
truthound translate -l fr -p anthropic
|
|
171
|
+
|
|
172
|
+
# Mistral
|
|
173
|
+
export MISTRAL_API_KEY=xxxxxxxxxxxx
|
|
174
|
+
truthound translate -l fr -p mistral
|
|
175
|
+
```
|
|
176
|
+
|
|
177
|
+
**Persistent Configuration**
|
|
178
|
+
|
|
179
|
+
```bash
|
|
180
|
+
# Add to shell configuration file (~/.bashrc or ~/.zshrc)
|
|
181
|
+
echo 'export OPENAI_API_KEY=sk-xxxxxxxxxxxx' >> ~/.zshrc
|
|
182
|
+
source ~/.zshrc
|
|
183
|
+
```
|
|
184
|
+
|
|
185
|
+
**Inline Configuration**
|
|
186
|
+
|
|
187
|
+
```bash
|
|
188
|
+
OPENAI_API_KEY=sk-xxx truthound translate -l fr -p openai
|
|
189
|
+
```
|
|
190
|
+
|
|
191
|
+
#### Usage Examples
|
|
192
|
+
|
|
193
|
+
```bash
|
|
194
|
+
# Translate to French using OpenAI
|
|
195
|
+
truthound translate -l fr -p openai
|
|
196
|
+
|
|
197
|
+
# Translate to multiple languages
|
|
198
|
+
truthound translate -l ja,zh,de,fr -p anthropic
|
|
199
|
+
|
|
200
|
+
# Use local Ollama (no API key required)
|
|
201
|
+
truthound translate -l fr -p ollama
|
|
202
|
+
|
|
203
|
+
# Auto-detect available provider
|
|
204
|
+
truthound translate -l fr
|
|
205
|
+
|
|
206
|
+
# Preview files without making changes
|
|
207
|
+
truthound translate -l fr --dry-run
|
|
208
|
+
|
|
209
|
+
# List available providers and their status
|
|
210
|
+
truthound translate --list-providers
|
|
211
|
+
|
|
212
|
+
# List supported language codes
|
|
213
|
+
truthound translate --list-languages
|
|
214
|
+
```
|
|
215
|
+
|
|
216
|
+
#### Security Considerations
|
|
217
|
+
|
|
218
|
+
| Aspect | Risk Level | Description |
|
|
219
|
+
|--------|------------|-------------|
|
|
220
|
+
| Network transmission | None | API keys are used locally and transmitted only to the selected provider |
|
|
221
|
+
| Source code exposure | None | Credentials are injected via environment variables |
|
|
222
|
+
| Build artifact inclusion | None | Only translated content is persisted; credentials are not stored |
|
|
223
|
+
| API communication | Standard | Requests are made directly to provider endpoints using user credentials |
|
|
224
|
+
|
|
225
|
+
#### Supported Languages
|
|
226
|
+
|
|
227
|
+
The translation system supports 36 languages including: Arabic, Bulgarian, Chinese, Croatian, Czech, Danish, Dutch, English, Estonian, Finnish, French, German, Greek, Hebrew, Hindi, Hungarian, Indonesian, Italian, Japanese, Korean, Latvian, Lithuanian, Malay, Norwegian, Polish, Portuguese, Romanian, Russian, Slovak, Slovenian, Spanish, Swedish, Thai, Turkish, Ukrainian, and Vietnamese.
|
|
228
|
+
|
|
229
|
+
Execute `truthound translate --list-languages` to view the complete list with language codes.
|
|
230
|
+
|
|
231
|
+
## Technology Stack
|
|
232
|
+
|
|
233
|
+
**Backend**
|
|
234
|
+
- FastAPI
|
|
235
|
+
- SQLAlchemy 2.0 (async)
|
|
236
|
+
- SQLite with aiosqlite
|
|
237
|
+
- APScheduler
|
|
238
|
+
- Pydantic 2.x
|
|
239
|
+
|
|
240
|
+
**Frontend**
|
|
241
|
+
- React 18
|
|
242
|
+
- TypeScript
|
|
243
|
+
- Vite
|
|
244
|
+
- TailwindCSS
|
|
245
|
+
- shadcn/ui
|
|
246
|
+
- Zustand
|
|
247
|
+
- [Intlayer](https://intlayer.org) (internationalization)
|
|
248
|
+
|
|
249
|
+
## Documentation
|
|
250
|
+
|
|
251
|
+
Full documentation is available at [https://truthound.netlify.app](https://truthound.netlify.app).
|
|
252
|
+
|
|
253
|
+
- [Getting Started](./docs/getting-started.md)
|
|
254
|
+
- [Architecture](./docs/architecture.md)
|
|
255
|
+
- [All Documentation](./docs/index.md)
|
|
256
|
+
|
|
257
|
+
## Related Projects
|
|
258
|
+
|
|
259
|
+
- [truthound](https://github.com/seadonggyun4/truthound) - Core data validation library
|
|
260
|
+
- [truthound-orchestration](https://github.com/seadonggyun4/truthound-orchestration) - Pipeline orchestration integration
|
|
261
|
+
|
|
262
|
+
## License
|
|
263
|
+
|
|
264
|
+
This project is licensed under the Apache License 2.0.
|
|
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "truthound-dashboard"
|
|
7
|
-
version = "1.
|
|
7
|
+
version = "1.5.0"
|
|
8
8
|
description = "Open-source data quality dashboard - GX Cloud alternative"
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
license = "Apache-2.0"
|
|
@@ -25,20 +25,16 @@ classifiers = [
|
|
|
25
25
|
]
|
|
26
26
|
|
|
27
27
|
dependencies = [
|
|
28
|
-
"truthound>=1.
|
|
28
|
+
"truthound>=1.2.10",
|
|
29
29
|
"fastapi>=0.110.0",
|
|
30
30
|
"uvicorn[standard]>=0.27.0",
|
|
31
31
|
"sqlalchemy[asyncio]>=2.0.0",
|
|
32
32
|
"aiosqlite>=0.19.0",
|
|
33
33
|
"pydantic>=2.5.0",
|
|
34
34
|
"pydantic-settings>=2.1.0",
|
|
35
|
-
"typer>=0.9.0",
|
|
36
|
-
"rich>=13.0.0",
|
|
37
|
-
"pyyaml>=6.0.0",
|
|
38
35
|
"apscheduler>=3.10.0",
|
|
39
36
|
"httpx>=0.26.0",
|
|
40
37
|
"aiosmtplib>=3.0.0",
|
|
41
|
-
"polars>=0.20.0",
|
|
42
38
|
"cryptography>=41.0.0",
|
|
43
39
|
"jinja2>=3.1.0",
|
|
44
40
|
"numpy>=1.24.0",
|
|
@@ -70,6 +66,15 @@ serve = "truthound_dashboard.cli:register_commands"
|
|
|
70
66
|
|
|
71
67
|
[tool.hatch.build.targets.wheel]
|
|
72
68
|
packages = ["src/truthound_dashboard"]
|
|
69
|
+
artifacts = ["src/truthound_dashboard/static/**/*"]
|
|
70
|
+
|
|
71
|
+
[tool.hatch.build.targets.sdist]
|
|
72
|
+
include = [
|
|
73
|
+
"/src",
|
|
74
|
+
"/tests",
|
|
75
|
+
"/README.md",
|
|
76
|
+
"/pyproject.toml",
|
|
77
|
+
]
|
|
73
78
|
|
|
74
79
|
[tool.ruff]
|
|
75
80
|
line-length = 88
|