truthound-dashboard 1.3.1__tar.gz → 1.4.1__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.
Files changed (848) hide show
  1. truthound_dashboard-1.4.1/.gitignore +174 -0
  2. truthound_dashboard-1.4.1/PKG-INFO +507 -0
  3. truthound_dashboard-1.4.1/README.md +459 -0
  4. truthound_dashboard-1.4.1/docs/advanced-features.md +578 -0
  5. truthound_dashboard-1.4.1/docs/api.md +1572 -0
  6. truthound_dashboard-1.4.1/docs/features.md +860 -0
  7. truthound_dashboard-1.4.1/docs/internationalization.md +624 -0
  8. truthound_dashboard-1.4.1/e2e/tests/activity.spec.ts +815 -0
  9. truthound_dashboard-1.4.1/e2e/tests/anomaly.spec.ts +517 -0
  10. truthound_dashboard-1.4.1/e2e/tests/drift-monitoring.spec.ts +747 -0
  11. truthound_dashboard-1.4.1/e2e/tests/drift.spec.ts +637 -0
  12. truthound_dashboard-1.4.1/e2e/tests/lineage.spec.ts +272 -0
  13. truthound_dashboard-1.4.1/e2e/tests/maintenance.spec.ts +971 -0
  14. truthound_dashboard-1.4.1/e2e/tests/model-monitoring.spec.ts +513 -0
  15. truthound_dashboard-1.4.1/e2e/tests/notifications-advanced-deep.spec.ts +478 -0
  16. truthound_dashboard-1.4.1/e2e/tests/notifications-advanced.spec.ts +638 -0
  17. truthound_dashboard-1.4.1/e2e/tests/notifications.spec.ts +528 -0
  18. truthound_dashboard-1.4.1/e2e/tests/plugins.spec.ts +1235 -0
  19. truthound_dashboard-1.4.1/e2e/tests/privacy-new.spec.ts +20 -0
  20. truthound_dashboard-1.4.1/e2e/tests/privacy.spec.ts +255 -0
  21. truthound_dashboard-1.4.1/e2e/tests/reports.spec.ts +785 -0
  22. truthound_dashboard-1.4.1/e2e/tests/schedules.spec.ts +985 -0
  23. truthound_dashboard-1.4.1/frontend/.gitignore +1 -0
  24. truthound_dashboard-1.4.1/frontend/intlayer.config.mjs +23 -0
  25. truthound_dashboard-1.4.1/frontend/package-lock.json +11803 -0
  26. truthound_dashboard-1.4.1/frontend/package.json +91 -0
  27. truthound_dashboard-1.4.1/frontend/scripts/generate-fallbacks.mjs +111 -0
  28. truthound_dashboard-1.4.1/frontend/src/App.tsx +87 -0
  29. truthound_dashboard-1.4.1/frontend/src/api/client.ts +6116 -0
  30. truthound_dashboard-1.4.1/frontend/src/components/ConfirmDialog.tsx +131 -0
  31. truthound_dashboard-1.4.1/frontend/src/components/Layout.tsx +322 -0
  32. truthound_dashboard-1.4.1/frontend/src/components/alerts/AlertCorrelation.tsx +220 -0
  33. truthound_dashboard-1.4.1/frontend/src/components/alerts/AlertSummaryCards.tsx +305 -0
  34. truthound_dashboard-1.4.1/frontend/src/components/alerts/UnifiedAlertList.tsx +391 -0
  35. truthound_dashboard-1.4.1/frontend/src/components/alerts/index.ts +7 -0
  36. truthound_dashboard-1.4.1/frontend/src/components/anomaly/AlgorithmAgreement.tsx +334 -0
  37. truthound_dashboard-1.4.1/frontend/src/components/anomaly/AlgorithmComparison.tsx +263 -0
  38. truthound_dashboard-1.4.1/frontend/src/components/anomaly/AlgorithmConfigForm.tsx +219 -0
  39. truthound_dashboard-1.4.1/frontend/src/components/anomaly/AlgorithmSelector.tsx +95 -0
  40. truthound_dashboard-1.4.1/frontend/src/components/anomaly/AnomalyDetectionPanel.tsx +344 -0
  41. truthound_dashboard-1.4.1/frontend/src/components/anomaly/AnomalyExplanation.tsx +322 -0
  42. truthound_dashboard-1.4.1/frontend/src/components/anomaly/AnomalyHistoryList.tsx +123 -0
  43. truthound_dashboard-1.4.1/frontend/src/components/anomaly/AnomalyResultsTable.tsx +137 -0
  44. truthound_dashboard-1.4.1/frontend/src/components/anomaly/AnomalyScoreChart.tsx +85 -0
  45. truthound_dashboard-1.4.1/frontend/src/components/anomaly/BatchDetectionDialog.tsx +374 -0
  46. truthound_dashboard-1.4.1/frontend/src/components/anomaly/BatchProgress.tsx +273 -0
  47. truthound_dashboard-1.4.1/frontend/src/components/anomaly/BatchResults.tsx +341 -0
  48. truthound_dashboard-1.4.1/frontend/src/components/anomaly/ColumnAnomalySummary.tsx +78 -0
  49. truthound_dashboard-1.4.1/frontend/src/components/anomaly/ComparisonChart.tsx +252 -0
  50. truthound_dashboard-1.4.1/frontend/src/components/anomaly/ComparisonResultsTable.tsx +277 -0
  51. truthound_dashboard-1.4.1/frontend/src/components/anomaly/ExplanationSummary.tsx +134 -0
  52. truthound_dashboard-1.4.1/frontend/src/components/anomaly/FeatureContributionChart.tsx +154 -0
  53. truthound_dashboard-1.4.1/frontend/src/components/anomaly/StreamingChart.tsx +308 -0
  54. truthound_dashboard-1.4.1/frontend/src/components/anomaly/StreamingControls.tsx +268 -0
  55. truthound_dashboard-1.4.1/frontend/src/components/anomaly/StreamingDashboard.tsx +337 -0
  56. truthound_dashboard-1.4.1/frontend/src/components/anomaly/index.ts +16 -0
  57. truthound_dashboard-1.4.1/frontend/src/components/common/CodeEditor.tsx +355 -0
  58. truthound_dashboard-1.4.1/frontend/src/components/common/LanguageSelector.tsx +153 -0
  59. truthound_dashboard-1.4.1/frontend/src/components/common/index.ts +6 -0
  60. truthound_dashboard-1.4.1/frontend/src/components/cross-alerts/AutoTriggerConfig.tsx +389 -0
  61. truthound_dashboard-1.4.1/frontend/src/components/cross-alerts/CorrelatedAlerts.tsx +347 -0
  62. truthound_dashboard-1.4.1/frontend/src/components/cross-alerts/CrossAlertCard.tsx +299 -0
  63. truthound_dashboard-1.4.1/frontend/src/components/cross-alerts/index.ts +7 -0
  64. truthound_dashboard-1.4.1/frontend/src/components/drift/ChunkedProgress.tsx +313 -0
  65. truthound_dashboard-1.4.1/frontend/src/components/drift/ColumnDistributionChart.tsx +218 -0
  66. truthound_dashboard-1.4.1/frontend/src/components/drift/ColumnDistributionComparison.tsx +249 -0
  67. truthound_dashboard-1.4.1/frontend/src/components/drift/ColumnDriftCard.tsx +176 -0
  68. truthound_dashboard-1.4.1/frontend/src/components/drift/ColumnDrilldown.tsx +384 -0
  69. truthound_dashboard-1.4.1/frontend/src/components/drift/ColumnStatistics.tsx +146 -0
  70. truthound_dashboard-1.4.1/frontend/src/components/drift/DriftAlertList.tsx +213 -0
  71. truthound_dashboard-1.4.1/frontend/src/components/drift/DriftConfigPanel.tsx +515 -0
  72. truthound_dashboard-1.4.1/frontend/src/components/drift/DriftMethodSelector.tsx +416 -0
  73. truthound_dashboard-1.4.1/frontend/src/components/drift/DriftMonitorForm.tsx +502 -0
  74. truthound_dashboard-1.4.1/frontend/src/components/drift/DriftMonitorList.tsx +233 -0
  75. truthound_dashboard-1.4.1/frontend/src/components/drift/DriftMonitorStats.tsx +115 -0
  76. truthound_dashboard-1.4.1/frontend/src/components/drift/DriftPreview.tsx +323 -0
  77. truthound_dashboard-1.4.1/frontend/src/components/drift/DriftPreviewResults.tsx +298 -0
  78. truthound_dashboard-1.4.1/frontend/src/components/drift/DriftScoreGauge.tsx +129 -0
  79. truthound_dashboard-1.4.1/frontend/src/components/drift/DriftTrendChart.tsx +176 -0
  80. truthound_dashboard-1.4.1/frontend/src/components/drift/LargeDatasetWarning.tsx +204 -0
  81. truthound_dashboard-1.4.1/frontend/src/components/drift/RemediationPanel.tsx +303 -0
  82. truthound_dashboard-1.4.1/frontend/src/components/drift/RootCauseAnalysis.tsx +521 -0
  83. truthound_dashboard-1.4.1/frontend/src/components/drift/SamplingConfig.tsx +360 -0
  84. truthound_dashboard-1.4.1/frontend/src/components/drift/index.ts +47 -0
  85. truthound_dashboard-1.4.1/frontend/src/components/lineage/AnomalyImpactPath.tsx +257 -0
  86. truthound_dashboard-1.4.1/frontend/src/components/lineage/AnomalyLegend.tsx +301 -0
  87. truthound_dashboard-1.4.1/frontend/src/components/lineage/AnomalyOverlayNode.tsx +257 -0
  88. truthound_dashboard-1.4.1/frontend/src/components/lineage/ColumnImpactAnalysis.tsx +336 -0
  89. truthound_dashboard-1.4.1/frontend/src/components/lineage/ColumnLineageEdge.tsx +215 -0
  90. truthound_dashboard-1.4.1/frontend/src/components/lineage/ColumnLineagePanel.tsx +254 -0
  91. truthound_dashboard-1.4.1/frontend/src/components/lineage/ColumnMappingTable.tsx +321 -0
  92. truthound_dashboard-1.4.1/frontend/src/components/lineage/CytoscapeLineageGraph.tsx +323 -0
  93. truthound_dashboard-1.4.1/frontend/src/components/lineage/ImpactAnalysisPanel.tsx +144 -0
  94. truthound_dashboard-1.4.1/frontend/src/components/lineage/LazyLineageNode.tsx +215 -0
  95. truthound_dashboard-1.4.1/frontend/src/components/lineage/LineageCluster.tsx +165 -0
  96. truthound_dashboard-1.4.1/frontend/src/components/lineage/LineageControls.tsx +84 -0
  97. truthound_dashboard-1.4.1/frontend/src/components/lineage/LineageEdge.tsx +88 -0
  98. truthound_dashboard-1.4.1/frontend/src/components/lineage/LineageExportPanel.tsx +279 -0
  99. truthound_dashboard-1.4.1/frontend/src/components/lineage/LineageGraph.tsx +479 -0
  100. truthound_dashboard-1.4.1/frontend/src/components/lineage/LineageMinimap.tsx +265 -0
  101. truthound_dashboard-1.4.1/frontend/src/components/lineage/LineageNode.tsx +342 -0
  102. truthound_dashboard-1.4.1/frontend/src/components/lineage/LineageNodeDetails.tsx +417 -0
  103. truthound_dashboard-1.4.1/frontend/src/components/lineage/LineageRendererSelector.tsx +105 -0
  104. truthound_dashboard-1.4.1/frontend/src/components/lineage/LineageToolbar.tsx +160 -0
  105. truthound_dashboard-1.4.1/frontend/src/components/lineage/MermaidLineageGraph.tsx +331 -0
  106. truthound_dashboard-1.4.1/frontend/src/components/lineage/OpenLineageConfig.tsx +396 -0
  107. truthound_dashboard-1.4.1/frontend/src/components/lineage/OpenLineageExport.tsx +441 -0
  108. truthound_dashboard-1.4.1/frontend/src/components/lineage/VirtualizedLineageGraph.tsx +353 -0
  109. truthound_dashboard-1.4.1/frontend/src/components/lineage/WebhookForm.tsx +283 -0
  110. truthound_dashboard-1.4.1/frontend/src/components/lineage/WebhookStatus.tsx +134 -0
  111. truthound_dashboard-1.4.1/frontend/src/components/lineage/column-lineage-types.ts +102 -0
  112. truthound_dashboard-1.4.1/frontend/src/components/lineage/index.ts +58 -0
  113. truthound_dashboard-1.4.1/frontend/src/components/maintenance/MaintenanceSettings.tsx +452 -0
  114. truthound_dashboard-1.4.1/frontend/src/components/maintenance/index.ts +5 -0
  115. truthound_dashboard-1.4.1/frontend/src/components/model-monitoring/AlertHandlerList.tsx +238 -0
  116. truthound_dashboard-1.4.1/frontend/src/components/model-monitoring/AlertList.tsx +162 -0
  117. truthound_dashboard-1.4.1/frontend/src/components/model-monitoring/AlertRuleList.tsx +169 -0
  118. truthound_dashboard-1.4.1/frontend/src/components/model-monitoring/MetricsChart.tsx +187 -0
  119. truthound_dashboard-1.4.1/frontend/src/components/model-monitoring/ModelDashboard.tsx +399 -0
  120. truthound_dashboard-1.4.1/frontend/src/components/model-monitoring/ModelHealthIndicator.tsx +178 -0
  121. truthound_dashboard-1.4.1/frontend/src/components/model-monitoring/ModelList.tsx +195 -0
  122. truthound_dashboard-1.4.1/frontend/src/components/model-monitoring/ModelMetricsChart.tsx +283 -0
  123. truthound_dashboard-1.4.1/frontend/src/components/model-monitoring/MonitoringOverviewStats.tsx +132 -0
  124. truthound_dashboard-1.4.1/frontend/src/components/model-monitoring/RegisterModelDialog.tsx +397 -0
  125. truthound_dashboard-1.4.1/frontend/src/components/model-monitoring/index.ts +20 -0
  126. truthound_dashboard-1.4.1/frontend/src/components/notifications/BulkActionBar.tsx +587 -0
  127. truthound_dashboard-1.4.1/frontend/src/components/notifications/ChannelConfigForm.tsx +881 -0
  128. truthound_dashboard-1.4.1/frontend/src/components/notifications/ConfigImportExport.tsx +716 -0
  129. truthound_dashboard-1.4.1/frontend/src/components/notifications/DeduplicationTab.tsx +575 -0
  130. truthound_dashboard-1.4.1/frontend/src/components/notifications/EscalationLevelBuilder.tsx +777 -0
  131. truthound_dashboard-1.4.1/frontend/src/components/notifications/EscalationTab.tsx +824 -0
  132. truthound_dashboard-1.4.1/frontend/src/components/notifications/EscalationTimeline.tsx +600 -0
  133. truthound_dashboard-1.4.1/frontend/src/components/notifications/ExpressionRuleEditor.tsx +900 -0
  134. truthound_dashboard-1.4.1/frontend/src/components/notifications/IncidentDetailDialog.tsx +818 -0
  135. truthound_dashboard-1.4.1/frontend/src/components/notifications/Jinja2RuleEditor.tsx +975 -0
  136. truthound_dashboard-1.4.1/frontend/src/components/notifications/RoutingRulesTab.tsx +722 -0
  137. truthound_dashboard-1.4.1/frontend/src/components/notifications/RuleBuilder.tsx +1647 -0
  138. truthound_dashboard-1.4.1/frontend/src/components/notifications/RuleTestPanel.tsx +455 -0
  139. truthound_dashboard-1.4.1/frontend/src/components/notifications/SchedulerControlPanel.tsx +446 -0
  140. truthound_dashboard-1.4.1/frontend/src/components/notifications/StrategyGuide.tsx +490 -0
  141. truthound_dashboard-1.4.1/frontend/src/components/notifications/TemplateLibrary.tsx +671 -0
  142. truthound_dashboard-1.4.1/frontend/src/components/notifications/ThrottlingTab.tsx +584 -0
  143. truthound_dashboard-1.4.1/frontend/src/components/notifications/TimeWindowPicker.tsx +647 -0
  144. truthound_dashboard-1.4.1/frontend/src/components/notifications/WebSocketStatus.tsx +222 -0
  145. truthound_dashboard-1.4.1/frontend/src/components/notifications/__tests__/ChannelConfigForm.test.tsx +478 -0
  146. truthound_dashboard-1.4.1/frontend/src/components/notifications/__tests__/DeduplicationTab.test.tsx +310 -0
  147. truthound_dashboard-1.4.1/frontend/src/components/notifications/__tests__/EscalationTab.test.tsx +315 -0
  148. truthound_dashboard-1.4.1/frontend/src/components/notifications/__tests__/RuleBuilder.test.tsx +320 -0
  149. truthound_dashboard-1.4.1/frontend/src/components/notifications/index.ts +92 -0
  150. truthound_dashboard-1.4.1/frontend/src/components/plugins/PluginDependencyGraph.tsx +401 -0
  151. truthound_dashboard-1.4.1/frontend/src/components/plugins/PluginDetailDialog.tsx +471 -0
  152. truthound_dashboard-1.4.1/frontend/src/components/plugins/PluginHooksPanel.tsx +697 -0
  153. truthound_dashboard-1.4.1/frontend/src/components/plugins/PluginInstallProgress.tsx +377 -0
  154. truthound_dashboard-1.4.1/frontend/src/components/plugins/PluginLifecyclePanel.tsx +641 -0
  155. truthound_dashboard-1.4.1/frontend/src/components/plugins/PluginSecurityPanel.tsx +734 -0
  156. truthound_dashboard-1.4.1/frontend/src/components/plugins/PluginSettingsTab.tsx +965 -0
  157. truthound_dashboard-1.4.1/frontend/src/components/plugins/ReporterConfigForm.tsx +340 -0
  158. truthound_dashboard-1.4.1/frontend/src/components/plugins/ReporterEditorDialog.tsx +496 -0
  159. truthound_dashboard-1.4.1/frontend/src/components/plugins/ReporterPreviewPanel.tsx +331 -0
  160. truthound_dashboard-1.4.1/frontend/src/components/plugins/ValidatorEditorDialog.tsx +515 -0
  161. truthound_dashboard-1.4.1/frontend/src/components/plugins/ValidatorParamForm.tsx +373 -0
  162. truthound_dashboard-1.4.1/frontend/src/components/plugins/ValidatorTestPanel.tsx +359 -0
  163. truthound_dashboard-1.4.1/frontend/src/components/plugins/index.ts +29 -0
  164. truthound_dashboard-1.4.1/frontend/src/components/plugins/types.ts +171 -0
  165. truthound_dashboard-1.4.1/frontend/src/components/privacy/MaskingPanel.tsx +234 -0
  166. truthound_dashboard-1.4.1/frontend/src/components/privacy/MaskingStrategySelector.tsx +115 -0
  167. truthound_dashboard-1.4.1/frontend/src/components/privacy/PIIFindingsTable.tsx +144 -0
  168. truthound_dashboard-1.4.1/frontend/src/components/privacy/PIIScanPanel.tsx +284 -0
  169. truthound_dashboard-1.4.1/frontend/src/components/privacy/PrivacyStats.tsx +82 -0
  170. truthound_dashboard-1.4.1/frontend/src/components/privacy/ScanHistoryList.tsx +138 -0
  171. truthound_dashboard-1.4.1/frontend/src/components/privacy/index.ts +12 -0
  172. truthound_dashboard-1.4.1/frontend/src/components/profile/PatternDetectionPanel.tsx +299 -0
  173. truthound_dashboard-1.4.1/frontend/src/components/profile/PatternResultsDisplay.tsx +419 -0
  174. truthound_dashboard-1.4.1/frontend/src/components/profile/ProfileComparisonTable.tsx +225 -0
  175. truthound_dashboard-1.4.1/frontend/src/components/profile/ProfileTrendChart.tsx +229 -0
  176. truthound_dashboard-1.4.1/frontend/src/components/profile/ProfileVersionSelector.tsx +251 -0
  177. truthound_dashboard-1.4.1/frontend/src/components/profile/SamplingConfigPanel.tsx +395 -0
  178. truthound_dashboard-1.4.1/frontend/src/components/profile/index.ts +34 -0
  179. truthound_dashboard-1.4.1/frontend/src/components/reports/CustomReporterManagement.tsx +381 -0
  180. truthound_dashboard-1.4.1/frontend/src/components/reports/CustomReporterSection.tsx +381 -0
  181. truthound_dashboard-1.4.1/frontend/src/components/reports/ReportDownloadButton.tsx +248 -0
  182. truthound_dashboard-1.4.1/frontend/src/components/reports/index.ts +7 -0
  183. truthound_dashboard-1.4.1/frontend/src/components/rules/CrossColumnRuleCard.tsx +350 -0
  184. truthound_dashboard-1.4.1/frontend/src/components/rules/RuleSuggestionCard.tsx +122 -0
  185. truthound_dashboard-1.4.1/frontend/src/components/rules/RuleSuggestionDialog.tsx +615 -0
  186. truthound_dashboard-1.4.1/frontend/src/components/rules/index.ts +2 -0
  187. truthound_dashboard-1.4.1/frontend/src/components/schema/SchemaChangeCard.tsx +107 -0
  188. truthound_dashboard-1.4.1/frontend/src/components/schema/SchemaDiffViewer.tsx +406 -0
  189. truthound_dashboard-1.4.1/frontend/src/components/schema/SchemaEvolutionTimeline.tsx +250 -0
  190. truthound_dashboard-1.4.1/frontend/src/components/schema/SchemaVersionCompare.tsx +264 -0
  191. truthound_dashboard-1.4.1/frontend/src/components/schema/index.ts +13 -0
  192. truthound_dashboard-1.4.1/frontend/src/components/sources/AddSourceDialog.tsx +533 -0
  193. truthound_dashboard-1.4.1/frontend/src/components/sources/DynamicSourceForm.tsx +255 -0
  194. truthound_dashboard-1.4.1/frontend/src/components/sources/EditSourceDialog.tsx +486 -0
  195. truthound_dashboard-1.4.1/frontend/src/components/sources/SourceTypeSelector.tsx +141 -0
  196. truthound_dashboard-1.4.1/frontend/src/components/sources/index.ts +8 -0
  197. truthound_dashboard-1.4.1/frontend/src/components/triggers/CompositeTriggerForm.tsx +350 -0
  198. truthound_dashboard-1.4.1/frontend/src/components/triggers/CronTriggerForm.tsx +237 -0
  199. truthound_dashboard-1.4.1/frontend/src/components/triggers/DataChangeTriggerForm.tsx +244 -0
  200. truthound_dashboard-1.4.1/frontend/src/components/triggers/IntervalTriggerForm.tsx +176 -0
  201. truthound_dashboard-1.4.1/frontend/src/components/triggers/TriggerBuilder.tsx +483 -0
  202. truthound_dashboard-1.4.1/frontend/src/components/triggers/TriggerPreview.tsx +297 -0
  203. truthound_dashboard-1.4.1/frontend/src/components/triggers/TriggerTypeSelector.tsx +106 -0
  204. truthound_dashboard-1.4.1/frontend/src/components/triggers/index.ts +19 -0
  205. truthound_dashboard-1.4.1/frontend/src/components/ui/accordion.tsx +58 -0
  206. truthound_dashboard-1.4.1/frontend/src/components/ui/alert.tsx +59 -0
  207. truthound_dashboard-1.4.1/frontend/src/components/ui/checkbox.tsx +30 -0
  208. truthound_dashboard-1.4.1/frontend/src/components/ui/collapsible.tsx +15 -0
  209. truthound_dashboard-1.4.1/frontend/src/components/ui/popover.tsx +31 -0
  210. truthound_dashboard-1.4.1/frontend/src/components/ui/progress.tsx +25 -0
  211. truthound_dashboard-1.4.1/frontend/src/components/ui/radio-group.tsx +48 -0
  212. truthound_dashboard-1.4.1/frontend/src/components/ui/scroll-area.tsx +46 -0
  213. truthound_dashboard-1.4.1/frontend/src/components/ui/separator.tsx +29 -0
  214. truthound_dashboard-1.4.1/frontend/src/components/ui/sheet.tsx +138 -0
  215. truthound_dashboard-1.4.1/frontend/src/components/ui/slider.tsx +25 -0
  216. truthound_dashboard-1.4.1/frontend/src/components/ui/textarea.tsx +24 -0
  217. truthound_dashboard-1.4.1/frontend/src/components/ui/tooltip.tsx +30 -0
  218. truthound_dashboard-1.4.1/frontend/src/components/validators/CustomValidatorCard.tsx +303 -0
  219. truthound_dashboard-1.4.1/frontend/src/components/validators/ValidatorSelector.tsx +652 -0
  220. truthound_dashboard-1.4.1/frontend/src/components/validators/index.ts +13 -0
  221. truthound_dashboard-1.4.1/frontend/src/components/versioning/VersionCompare.tsx +375 -0
  222. truthound_dashboard-1.4.1/frontend/src/components/versioning/VersionTimeline.tsx +148 -0
  223. truthound_dashboard-1.4.1/frontend/src/components/versioning/index.ts +6 -0
  224. truthound_dashboard-1.4.1/frontend/src/content/alerts.content.ts +191 -0
  225. truthound_dashboard-1.4.1/frontend/src/content/anomaly.content.ts +462 -0
  226. truthound_dashboard-1.4.1/frontend/src/content/common.content.ts +780 -0
  227. truthound_dashboard-1.4.1/frontend/src/content/cross-alerts.content.ts +170 -0
  228. truthound_dashboard-1.4.1/frontend/src/content/drift-monitor.content.ts +469 -0
  229. truthound_dashboard-1.4.1/frontend/src/content/drift.content.ts +235 -0
  230. truthound_dashboard-1.4.1/frontend/src/content/errors.content.ts +135 -0
  231. truthound_dashboard-1.4.1/frontend/src/content/lineage.content.ts +488 -0
  232. truthound_dashboard-1.4.1/frontend/src/content/maintenance.content.ts +99 -0
  233. truthound_dashboard-1.4.1/frontend/src/content/model-monitoring.content.ts +245 -0
  234. truthound_dashboard-1.4.1/frontend/src/content/nav.content.ts +478 -0
  235. truthound_dashboard-1.4.1/frontend/src/content/notifications-advanced.content.ts +866 -0
  236. truthound_dashboard-1.4.1/frontend/src/content/notifications.content.ts +360 -0
  237. truthound_dashboard-1.4.1/frontend/src/content/plugins.content.ts +486 -0
  238. truthound_dashboard-1.4.1/frontend/src/content/privacy.content.ts +181 -0
  239. truthound_dashboard-1.4.1/frontend/src/content/profile-comparison.content.ts +124 -0
  240. truthound_dashboard-1.4.1/frontend/src/content/profiler.content.ts +265 -0
  241. truthound_dashboard-1.4.1/frontend/src/content/reports.content.ts +185 -0
  242. truthound_dashboard-1.4.1/frontend/src/content/rule-suggestions.content.ts +364 -0
  243. truthound_dashboard-1.4.1/frontend/src/content/schema-evolution.content.ts +99 -0
  244. truthound_dashboard-1.4.1/frontend/src/content/sources.content.ts +239 -0
  245. truthound_dashboard-1.4.1/frontend/src/content/triggers.content.ts +134 -0
  246. truthound_dashboard-1.4.1/frontend/src/content/versioning.content.ts +206 -0
  247. truthound_dashboard-1.4.1/frontend/src/hooks/useLineagePerformance.ts +232 -0
  248. truthound_dashboard-1.4.1/frontend/src/hooks/useSafeIntlayer.ts +90 -0
  249. truthound_dashboard-1.4.1/frontend/src/hooks/useStreamingAnomaly.ts +293 -0
  250. truthound_dashboard-1.4.1/frontend/src/hooks/useWebSocket.ts +389 -0
  251. truthound_dashboard-1.4.1/frontend/src/lib/__tests__/lineage-performance.test.ts +643 -0
  252. truthound_dashboard-1.4.1/frontend/src/lib/intlayer-fallbacks.ts +2908 -0
  253. truthound_dashboard-1.4.1/frontend/src/lib/lineage-performance.ts +630 -0
  254. truthound_dashboard-1.4.1/frontend/src/lib/lineage-utils.ts +457 -0
  255. truthound_dashboard-1.4.1/frontend/src/lib/utils.ts +131 -0
  256. truthound_dashboard-1.4.1/frontend/src/mocks/data/store.ts +435 -0
  257. truthound_dashboard-1.4.1/frontend/src/mocks/factories/anomaly.ts +438 -0
  258. truthound_dashboard-1.4.1/frontend/src/mocks/factories/base.ts +61 -0
  259. truthound_dashboard-1.4.1/frontend/src/mocks/factories/index.ts +27 -0
  260. truthound_dashboard-1.4.1/frontend/src/mocks/factories/lineage.ts +363 -0
  261. truthound_dashboard-1.4.1/frontend/src/mocks/factories/model-monitoring.ts +479 -0
  262. truthound_dashboard-1.4.1/frontend/src/mocks/factories/notifications-advanced.ts +691 -0
  263. truthound_dashboard-1.4.1/frontend/src/mocks/factories/notifications.ts +927 -0
  264. truthound_dashboard-1.4.1/frontend/src/mocks/factories/plugins.ts +693 -0
  265. truthound_dashboard-1.4.1/frontend/src/mocks/factories/profile-comparison.ts +328 -0
  266. truthound_dashboard-1.4.1/frontend/src/mocks/factories/profile.ts +474 -0
  267. truthound_dashboard-1.4.1/frontend/src/mocks/factories/reports.ts +216 -0
  268. truthound_dashboard-1.4.1/frontend/src/mocks/factories/rule-suggestions.ts +1113 -0
  269. truthound_dashboard-1.4.1/frontend/src/mocks/factories/schedules.ts +501 -0
  270. truthound_dashboard-1.4.1/frontend/src/mocks/factories/schema-evolution.ts +186 -0
  271. truthound_dashboard-1.4.1/frontend/src/mocks/factories/sources.ts +262 -0
  272. truthound_dashboard-1.4.1/frontend/src/mocks/factories/versioning.ts +124 -0
  273. truthound_dashboard-1.4.1/frontend/src/mocks/handlers/alerts.ts +505 -0
  274. truthound_dashboard-1.4.1/frontend/src/mocks/handlers/anomaly.ts +1314 -0
  275. truthound_dashboard-1.4.1/frontend/src/mocks/handlers/cross-alerts.ts +384 -0
  276. truthound_dashboard-1.4.1/frontend/src/mocks/handlers/drift.ts +1391 -0
  277. truthound_dashboard-1.4.1/frontend/src/mocks/handlers/index.ts +67 -0
  278. truthound_dashboard-1.4.1/frontend/src/mocks/handlers/lineage.ts +1304 -0
  279. truthound_dashboard-1.4.1/frontend/src/mocks/handlers/maintenance.ts +150 -0
  280. truthound_dashboard-1.4.1/frontend/src/mocks/handlers/model-monitoring.ts +721 -0
  281. truthound_dashboard-1.4.1/frontend/src/mocks/handlers/notifications-advanced.ts +1521 -0
  282. truthound_dashboard-1.4.1/frontend/src/mocks/handlers/notifications.ts +552 -0
  283. truthound_dashboard-1.4.1/frontend/src/mocks/handlers/plugins.ts +1301 -0
  284. truthound_dashboard-1.4.1/frontend/src/mocks/handlers/profile.ts +256 -0
  285. truthound_dashboard-1.4.1/frontend/src/mocks/handlers/report-history.ts +304 -0
  286. truthound_dashboard-1.4.1/frontend/src/mocks/handlers/reports.ts +419 -0
  287. truthound_dashboard-1.4.1/frontend/src/mocks/handlers/rule-suggestions.ts +611 -0
  288. truthound_dashboard-1.4.1/frontend/src/mocks/handlers/schedules.ts +287 -0
  289. truthound_dashboard-1.4.1/frontend/src/mocks/handlers/schema-evolution.ts +177 -0
  290. truthound_dashboard-1.4.1/frontend/src/mocks/handlers/sources.ts +456 -0
  291. truthound_dashboard-1.4.1/frontend/src/mocks/handlers/triggers.ts +310 -0
  292. truthound_dashboard-1.4.1/frontend/src/mocks/handlers/validators.ts +2508 -0
  293. truthound_dashboard-1.4.1/frontend/src/mocks/handlers/versioning.ts +279 -0
  294. truthound_dashboard-1.4.1/frontend/src/pages/Activity.tsx +131 -0
  295. truthound_dashboard-1.4.1/frontend/src/pages/Alerts.tsx +555 -0
  296. truthound_dashboard-1.4.1/frontend/src/pages/Anomaly.tsx +596 -0
  297. truthound_dashboard-1.4.1/frontend/src/pages/Catalog.tsx +277 -0
  298. truthound_dashboard-1.4.1/frontend/src/pages/CatalogDetail.tsx +399 -0
  299. truthound_dashboard-1.4.1/frontend/src/pages/Dashboard.tsx +269 -0
  300. truthound_dashboard-1.4.1/frontend/src/pages/Drift.tsx +452 -0
  301. truthound_dashboard-1.4.1/frontend/src/pages/DriftMonitoring.tsx +712 -0
  302. truthound_dashboard-1.4.1/frontend/src/pages/Glossary.tsx +266 -0
  303. truthound_dashboard-1.4.1/frontend/src/pages/GlossaryDetail.tsx +352 -0
  304. truthound_dashboard-1.4.1/frontend/src/pages/Lineage.tsx +618 -0
  305. truthound_dashboard-1.4.1/frontend/src/pages/Maintenance.tsx +23 -0
  306. truthound_dashboard-1.4.1/frontend/src/pages/ModelMonitoring.tsx +677 -0
  307. truthound_dashboard-1.4.1/frontend/src/pages/Notifications.tsx +1069 -0
  308. truthound_dashboard-1.4.1/frontend/src/pages/NotificationsAdvanced.tsx +269 -0
  309. truthound_dashboard-1.4.1/frontend/src/pages/Plugins.tsx +809 -0
  310. truthound_dashboard-1.4.1/frontend/src/pages/Privacy.tsx +344 -0
  311. truthound_dashboard-1.4.1/frontend/src/pages/Profile.tsx +1096 -0
  312. truthound_dashboard-1.4.1/frontend/src/pages/ProfileComparison.tsx +593 -0
  313. truthound_dashboard-1.4.1/frontend/src/pages/Reports.tsx +579 -0
  314. truthound_dashboard-1.4.1/frontend/src/pages/RuleSuggestions.tsx +989 -0
  315. truthound_dashboard-1.4.1/frontend/src/pages/Schedules.tsx +693 -0
  316. truthound_dashboard-1.4.1/frontend/src/pages/SchemaEvolution.tsx +476 -0
  317. truthound_dashboard-1.4.1/frontend/src/pages/SourceDetail.tsx +820 -0
  318. truthound_dashboard-1.4.1/frontend/src/pages/Sources.tsx +252 -0
  319. truthound_dashboard-1.4.1/frontend/src/pages/TriggerMonitoring.tsx +622 -0
  320. truthound_dashboard-1.4.1/frontend/src/pages/Validations.tsx +352 -0
  321. truthound_dashboard-1.4.1/frontend/src/pages/VersionHistory.tsx +328 -0
  322. truthound_dashboard-1.4.1/frontend/src/providers/intlayer/IntlayerProvider.tsx +125 -0
  323. truthound_dashboard-1.4.1/frontend/src/providers/intlayer/config.ts +121 -0
  324. truthound_dashboard-1.4.1/frontend/src/test/mocks/react-intlayer.ts +979 -0
  325. truthound_dashboard-1.4.1/frontend/src/test/msw-server.ts +61 -0
  326. truthound_dashboard-1.4.1/frontend/src/test/setup.ts +145 -0
  327. truthound_dashboard-1.4.1/frontend/src/test/test-utils.tsx +448 -0
  328. truthound_dashboard-1.4.1/frontend/tsconfig.json +36 -0
  329. truthound_dashboard-1.4.1/frontend/vercel.json +8 -0
  330. truthound_dashboard-1.4.1/frontend/vitest.config.ts +97 -0
  331. truthound_dashboard-1.4.1/pyproject.toml +121 -0
  332. truthound_dashboard-1.4.1/src/truthound_dashboard/api/alerts.py +258 -0
  333. truthound_dashboard-1.4.1/src/truthound_dashboard/api/anomaly.py +1302 -0
  334. truthound_dashboard-1.4.1/src/truthound_dashboard/api/cross_alerts.py +352 -0
  335. truthound_dashboard-1.4.1/src/truthound_dashboard/api/deps.py +324 -0
  336. truthound_dashboard-1.4.1/src/truthound_dashboard/api/drift_monitor.py +540 -0
  337. truthound_dashboard-1.4.1/src/truthound_dashboard/api/lineage.py +1151 -0
  338. truthound_dashboard-1.4.1/src/truthound_dashboard/api/maintenance.py +363 -0
  339. truthound_dashboard-1.4.1/src/truthound_dashboard/api/middleware.py +998 -0
  340. truthound_dashboard-1.4.1/src/truthound_dashboard/api/model_monitoring.py +805 -0
  341. truthound_dashboard-1.4.1/src/truthound_dashboard/api/notifications_advanced.py +2452 -0
  342. truthound_dashboard-1.4.1/src/truthound_dashboard/api/plugins.py +2096 -0
  343. truthound_dashboard-1.4.1/src/truthound_dashboard/api/profile.py +257 -0
  344. truthound_dashboard-1.4.1/src/truthound_dashboard/api/reports.py +853 -0
  345. truthound_dashboard-1.4.1/src/truthound_dashboard/api/router.py +281 -0
  346. truthound_dashboard-1.4.1/src/truthound_dashboard/api/rule_suggestions.py +310 -0
  347. truthound_dashboard-1.4.1/src/truthound_dashboard/api/schema_evolution.py +231 -0
  348. truthound_dashboard-1.4.1/src/truthound_dashboard/api/sources.py +273 -0
  349. truthound_dashboard-1.4.1/src/truthound_dashboard/api/triggers.py +190 -0
  350. truthound_dashboard-1.4.1/src/truthound_dashboard/api/validations.py +170 -0
  351. truthound_dashboard-1.4.1/src/truthound_dashboard/api/validators.py +414 -0
  352. truthound_dashboard-1.4.1/src/truthound_dashboard/api/versioning.py +309 -0
  353. truthound_dashboard-1.4.1/src/truthound_dashboard/api/websocket.py +301 -0
  354. truthound_dashboard-1.4.1/src/truthound_dashboard/core/__init__.py +311 -0
  355. truthound_dashboard-1.4.1/src/truthound_dashboard/core/anomaly.py +1395 -0
  356. truthound_dashboard-1.4.1/src/truthound_dashboard/core/anomaly_explainer.py +633 -0
  357. truthound_dashboard-1.4.1/src/truthound_dashboard/core/cache.py +685 -0
  358. truthound_dashboard-1.4.1/src/truthound_dashboard/core/cached_services.py +422 -0
  359. truthound_dashboard-1.4.1/src/truthound_dashboard/core/charts.py +352 -0
  360. truthound_dashboard-1.4.1/src/truthound_dashboard/core/connections.py +1358 -0
  361. truthound_dashboard-1.4.1/src/truthound_dashboard/core/cross_alerts.py +837 -0
  362. truthound_dashboard-1.4.1/src/truthound_dashboard/core/drift_monitor.py +1477 -0
  363. truthound_dashboard-1.4.1/src/truthound_dashboard/core/drift_sampling.py +669 -0
  364. truthound_dashboard-1.4.1/src/truthound_dashboard/core/i18n/__init__.py +42 -0
  365. truthound_dashboard-1.4.1/src/truthound_dashboard/core/i18n/detector.py +173 -0
  366. truthound_dashboard-1.4.1/src/truthound_dashboard/core/i18n/messages.py +564 -0
  367. truthound_dashboard-1.4.1/src/truthound_dashboard/core/lineage.py +971 -0
  368. truthound_dashboard-1.4.1/src/truthound_dashboard/core/maintenance.py +980 -0
  369. truthound_dashboard-1.4.1/src/truthound_dashboard/core/model_monitoring.py +1043 -0
  370. truthound_dashboard-1.4.1/src/truthound_dashboard/core/notifications/channels.py +1576 -0
  371. truthound_dashboard-1.4.1/src/truthound_dashboard/core/notifications/deduplication/__init__.py +143 -0
  372. truthound_dashboard-1.4.1/src/truthound_dashboard/core/notifications/deduplication/policies.py +274 -0
  373. truthound_dashboard-1.4.1/src/truthound_dashboard/core/notifications/deduplication/service.py +400 -0
  374. truthound_dashboard-1.4.1/src/truthound_dashboard/core/notifications/deduplication/stores.py +2365 -0
  375. truthound_dashboard-1.4.1/src/truthound_dashboard/core/notifications/deduplication/strategies.py +422 -0
  376. truthound_dashboard-1.4.1/src/truthound_dashboard/core/notifications/dispatcher.py +496 -0
  377. truthound_dashboard-1.4.1/src/truthound_dashboard/core/notifications/escalation/__init__.py +149 -0
  378. truthound_dashboard-1.4.1/src/truthound_dashboard/core/notifications/escalation/backends.py +1384 -0
  379. truthound_dashboard-1.4.1/src/truthound_dashboard/core/notifications/escalation/engine.py +429 -0
  380. truthound_dashboard-1.4.1/src/truthound_dashboard/core/notifications/escalation/models.py +336 -0
  381. truthound_dashboard-1.4.1/src/truthound_dashboard/core/notifications/escalation/scheduler.py +1187 -0
  382. truthound_dashboard-1.4.1/src/truthound_dashboard/core/notifications/escalation/state_machine.py +330 -0
  383. truthound_dashboard-1.4.1/src/truthound_dashboard/core/notifications/escalation/stores.py +2896 -0
  384. truthound_dashboard-1.4.1/src/truthound_dashboard/core/notifications/events.py +204 -0
  385. truthound_dashboard-1.4.1/src/truthound_dashboard/core/notifications/metrics/__init__.py +115 -0
  386. truthound_dashboard-1.4.1/src/truthound_dashboard/core/notifications/metrics/base.py +528 -0
  387. truthound_dashboard-1.4.1/src/truthound_dashboard/core/notifications/metrics/collectors.py +583 -0
  388. truthound_dashboard-1.4.1/src/truthound_dashboard/core/notifications/routing/__init__.py +169 -0
  389. truthound_dashboard-1.4.1/src/truthound_dashboard/core/notifications/routing/combinators.py +184 -0
  390. truthound_dashboard-1.4.1/src/truthound_dashboard/core/notifications/routing/config.py +375 -0
  391. truthound_dashboard-1.4.1/src/truthound_dashboard/core/notifications/routing/config_parser.py +867 -0
  392. truthound_dashboard-1.4.1/src/truthound_dashboard/core/notifications/routing/engine.py +382 -0
  393. truthound_dashboard-1.4.1/src/truthound_dashboard/core/notifications/routing/expression_engine.py +1269 -0
  394. truthound_dashboard-1.4.1/src/truthound_dashboard/core/notifications/routing/jinja2_engine.py +774 -0
  395. truthound_dashboard-1.4.1/src/truthound_dashboard/core/notifications/routing/rules.py +625 -0
  396. truthound_dashboard-1.4.1/src/truthound_dashboard/core/notifications/routing/validator.py +678 -0
  397. truthound_dashboard-1.4.1/src/truthound_dashboard/core/notifications/service.py +746 -0
  398. truthound_dashboard-1.4.1/src/truthound_dashboard/core/notifications/stats_aggregator.py +850 -0
  399. truthound_dashboard-1.4.1/src/truthound_dashboard/core/notifications/throttling/__init__.py +83 -0
  400. truthound_dashboard-1.4.1/src/truthound_dashboard/core/notifications/throttling/builder.py +311 -0
  401. truthound_dashboard-1.4.1/src/truthound_dashboard/core/notifications/throttling/stores.py +1859 -0
  402. truthound_dashboard-1.4.1/src/truthound_dashboard/core/notifications/throttling/throttlers.py +633 -0
  403. truthound_dashboard-1.4.1/src/truthound_dashboard/core/openlineage.py +1028 -0
  404. truthound_dashboard-1.4.1/src/truthound_dashboard/core/plugins/__init__.py +39 -0
  405. truthound_dashboard-1.4.1/src/truthound_dashboard/core/plugins/docs/__init__.py +39 -0
  406. truthound_dashboard-1.4.1/src/truthound_dashboard/core/plugins/docs/extractor.py +703 -0
  407. truthound_dashboard-1.4.1/src/truthound_dashboard/core/plugins/docs/renderers.py +804 -0
  408. truthound_dashboard-1.4.1/src/truthound_dashboard/core/plugins/hooks/__init__.py +63 -0
  409. truthound_dashboard-1.4.1/src/truthound_dashboard/core/plugins/hooks/decorators.py +367 -0
  410. truthound_dashboard-1.4.1/src/truthound_dashboard/core/plugins/hooks/manager.py +403 -0
  411. truthound_dashboard-1.4.1/src/truthound_dashboard/core/plugins/hooks/protocols.py +265 -0
  412. truthound_dashboard-1.4.1/src/truthound_dashboard/core/plugins/lifecycle/__init__.py +41 -0
  413. truthound_dashboard-1.4.1/src/truthound_dashboard/core/plugins/lifecycle/hot_reload.py +584 -0
  414. truthound_dashboard-1.4.1/src/truthound_dashboard/core/plugins/lifecycle/machine.py +419 -0
  415. truthound_dashboard-1.4.1/src/truthound_dashboard/core/plugins/lifecycle/states.py +266 -0
  416. truthound_dashboard-1.4.1/src/truthound_dashboard/core/plugins/loader.py +504 -0
  417. truthound_dashboard-1.4.1/src/truthound_dashboard/core/plugins/registry.py +810 -0
  418. truthound_dashboard-1.4.1/src/truthound_dashboard/core/plugins/reporter_executor.py +588 -0
  419. truthound_dashboard-1.4.1/src/truthound_dashboard/core/plugins/sandbox/__init__.py +59 -0
  420. truthound_dashboard-1.4.1/src/truthound_dashboard/core/plugins/sandbox/code_validator.py +243 -0
  421. truthound_dashboard-1.4.1/src/truthound_dashboard/core/plugins/sandbox/engines.py +770 -0
  422. truthound_dashboard-1.4.1/src/truthound_dashboard/core/plugins/sandbox/protocols.py +194 -0
  423. truthound_dashboard-1.4.1/src/truthound_dashboard/core/plugins/sandbox.py +617 -0
  424. truthound_dashboard-1.4.1/src/truthound_dashboard/core/plugins/security/__init__.py +68 -0
  425. truthound_dashboard-1.4.1/src/truthound_dashboard/core/plugins/security/analyzer.py +535 -0
  426. truthound_dashboard-1.4.1/src/truthound_dashboard/core/plugins/security/policies.py +311 -0
  427. truthound_dashboard-1.4.1/src/truthound_dashboard/core/plugins/security/protocols.py +296 -0
  428. truthound_dashboard-1.4.1/src/truthound_dashboard/core/plugins/security/signing.py +842 -0
  429. truthound_dashboard-1.4.1/src/truthound_dashboard/core/plugins/security.py +446 -0
  430. truthound_dashboard-1.4.1/src/truthound_dashboard/core/plugins/validator_executor.py +401 -0
  431. truthound_dashboard-1.4.1/src/truthound_dashboard/core/plugins/versioning/__init__.py +51 -0
  432. truthound_dashboard-1.4.1/src/truthound_dashboard/core/plugins/versioning/constraints.py +377 -0
  433. truthound_dashboard-1.4.1/src/truthound_dashboard/core/plugins/versioning/dependencies.py +541 -0
  434. truthound_dashboard-1.4.1/src/truthound_dashboard/core/plugins/versioning/semver.py +266 -0
  435. truthound_dashboard-1.4.1/src/truthound_dashboard/core/profile_comparison.py +601 -0
  436. truthound_dashboard-1.4.1/src/truthound_dashboard/core/report_history.py +570 -0
  437. truthound_dashboard-1.4.1/src/truthound_dashboard/core/reporters/__init__.py +57 -0
  438. truthound_dashboard-1.4.1/src/truthound_dashboard/core/reporters/base.py +296 -0
  439. truthound_dashboard-1.4.1/src/truthound_dashboard/core/reporters/csv_reporter.py +155 -0
  440. truthound_dashboard-1.4.1/src/truthound_dashboard/core/reporters/html_reporter.py +598 -0
  441. truthound_dashboard-1.4.1/src/truthound_dashboard/core/reporters/i18n/__init__.py +65 -0
  442. truthound_dashboard-1.4.1/src/truthound_dashboard/core/reporters/i18n/base.py +494 -0
  443. truthound_dashboard-1.4.1/src/truthound_dashboard/core/reporters/i18n/catalogs.py +930 -0
  444. truthound_dashboard-1.4.1/src/truthound_dashboard/core/reporters/json_reporter.py +160 -0
  445. truthound_dashboard-1.4.1/src/truthound_dashboard/core/reporters/junit_reporter.py +233 -0
  446. truthound_dashboard-1.4.1/src/truthound_dashboard/core/reporters/markdown_reporter.py +207 -0
  447. truthound_dashboard-1.4.1/src/truthound_dashboard/core/reporters/pdf_reporter.py +209 -0
  448. truthound_dashboard-1.4.1/src/truthound_dashboard/core/reporters/registry.py +272 -0
  449. truthound_dashboard-1.4.1/src/truthound_dashboard/core/rule_generator.py +2088 -0
  450. truthound_dashboard-1.4.1/src/truthound_dashboard/core/scheduler.py +1121 -0
  451. truthound_dashboard-1.4.1/src/truthound_dashboard/core/schema_evolution.py +858 -0
  452. truthound_dashboard-1.4.1/src/truthound_dashboard/core/services.py +2124 -0
  453. truthound_dashboard-1.4.1/src/truthound_dashboard/core/statistics.py +718 -0
  454. truthound_dashboard-1.4.1/src/truthound_dashboard/core/streaming_anomaly.py +883 -0
  455. truthound_dashboard-1.4.1/src/truthound_dashboard/core/triggers/__init__.py +45 -0
  456. truthound_dashboard-1.4.1/src/truthound_dashboard/core/triggers/base.py +226 -0
  457. truthound_dashboard-1.4.1/src/truthound_dashboard/core/triggers/evaluators.py +609 -0
  458. truthound_dashboard-1.4.1/src/truthound_dashboard/core/triggers/factory.py +363 -0
  459. truthound_dashboard-1.4.1/src/truthound_dashboard/core/unified_alerts.py +870 -0
  460. truthound_dashboard-1.4.1/src/truthound_dashboard/core/validation_limits.py +509 -0
  461. truthound_dashboard-1.4.1/src/truthound_dashboard/core/versioning.py +709 -0
  462. truthound_dashboard-1.4.1/src/truthound_dashboard/core/websocket/__init__.py +59 -0
  463. truthound_dashboard-1.4.1/src/truthound_dashboard/core/websocket/manager.py +512 -0
  464. truthound_dashboard-1.4.1/src/truthound_dashboard/core/websocket/messages.py +130 -0
  465. truthound_dashboard-1.4.1/src/truthound_dashboard/db/__init__.py +140 -0
  466. truthound_dashboard-1.4.1/src/truthound_dashboard/db/models.py +5046 -0
  467. truthound_dashboard-1.4.1/src/truthound_dashboard/main.py +331 -0
  468. truthound_dashboard-1.4.1/src/truthound_dashboard/schemas/__init__.py +710 -0
  469. truthound_dashboard-1.4.1/src/truthound_dashboard/schemas/anomaly.py +1258 -0
  470. truthound_dashboard-1.4.1/src/truthound_dashboard/schemas/base.py +100 -0
  471. truthound_dashboard-1.4.1/src/truthound_dashboard/schemas/cross_alerts.py +334 -0
  472. truthound_dashboard-1.4.1/src/truthound_dashboard/schemas/drift_monitor.py +890 -0
  473. truthound_dashboard-1.4.1/src/truthound_dashboard/schemas/lineage.py +428 -0
  474. truthound_dashboard-1.4.1/src/truthound_dashboard/schemas/maintenance.py +154 -0
  475. truthound_dashboard-1.4.1/src/truthound_dashboard/schemas/model_monitoring.py +374 -0
  476. truthound_dashboard-1.4.1/src/truthound_dashboard/schemas/notifications_advanced.py +1363 -0
  477. truthound_dashboard-1.4.1/src/truthound_dashboard/schemas/openlineage.py +704 -0
  478. truthound_dashboard-1.4.1/src/truthound_dashboard/schemas/plugins.py +1293 -0
  479. truthound_dashboard-1.4.1/src/truthound_dashboard/schemas/profile.py +520 -0
  480. truthound_dashboard-1.4.1/src/truthound_dashboard/schemas/profile_comparison.py +242 -0
  481. truthound_dashboard-1.4.1/src/truthound_dashboard/schemas/reports.py +285 -0
  482. truthound_dashboard-1.4.1/src/truthound_dashboard/schemas/rule_suggestion.py +434 -0
  483. truthound_dashboard-1.4.1/src/truthound_dashboard/schemas/schema_evolution.py +164 -0
  484. truthound_dashboard-1.4.1/src/truthound_dashboard/schemas/source.py +253 -0
  485. truthound_dashboard-1.4.1/src/truthound_dashboard/schemas/triggers.py +511 -0
  486. truthound_dashboard-1.4.1/src/truthound_dashboard/schemas/unified_alerts.py +223 -0
  487. truthound_dashboard-1.4.1/src/truthound_dashboard/schemas/validation.py +273 -0
  488. truthound_dashboard-1.4.1/src/truthound_dashboard/schemas/validators/__init__.py +70 -0
  489. truthound_dashboard-1.4.1/src/truthound_dashboard/schemas/validators/base.py +414 -0
  490. truthound_dashboard-1.4.1/src/truthound_dashboard/schemas/versioning.py +152 -0
  491. truthound_dashboard-1.4.1/src/truthound_dashboard/static/index.html +15 -0
  492. truthound_dashboard-1.4.1/tests/test_core/test_performance.py +1284 -0
  493. truthound_dashboard-1.4.1/tests/test_core/test_plugins.py +832 -0
  494. truthound_dashboard-1.4.1/tests/test_core/test_rule_validator.py +517 -0
  495. truthound_dashboard-1.4.1/uv.lock +1579 -0
  496. truthound_dashboard-1.3.1/.gitignore +0 -166
  497. truthound_dashboard-1.3.1/PKG-INFO +0 -383
  498. truthound_dashboard-1.3.1/README.md +0 -338
  499. truthound_dashboard-1.3.1/docs/api.md +0 -1377
  500. truthound_dashboard-1.3.1/docs/features.md +0 -632
  501. truthound_dashboard-1.3.1/docs/internationalization.md +0 -621
  502. truthound_dashboard-1.3.1/e2e/tests/activity.spec.ts +0 -638
  503. truthound_dashboard-1.3.1/e2e/tests/drift.spec.ts +0 -553
  504. truthound_dashboard-1.3.1/e2e/tests/notifications.spec.ts +0 -962
  505. truthound_dashboard-1.3.1/e2e/tests/schedules.spec.ts +0 -644
  506. truthound_dashboard-1.3.1/frontend/.intlayer/config/configuration.json +0 -121
  507. truthound_dashboard-1.3.1/frontend/.intlayer/dictionary/catalog.json +0 -155
  508. truthound_dashboard-1.3.1/frontend/.intlayer/dictionary/collaboration.json +0 -97
  509. truthound_dashboard-1.3.1/frontend/.intlayer/dictionary/common.json +0 -99
  510. truthound_dashboard-1.3.1/frontend/.intlayer/dictionary/dashboard.json +0 -65
  511. truthound_dashboard-1.3.1/frontend/.intlayer/dictionary/drift.json +0 -97
  512. truthound_dashboard-1.3.1/frontend/.intlayer/dictionary/errors.json +0 -29
  513. truthound_dashboard-1.3.1/frontend/.intlayer/dictionary/glossary.json +0 -133
  514. truthound_dashboard-1.3.1/frontend/.intlayer/dictionary/nav.json +0 -41
  515. truthound_dashboard-1.3.1/frontend/.intlayer/dictionary/notifications.json +0 -89
  516. truthound_dashboard-1.3.1/frontend/.intlayer/dictionary/schedules.json +0 -99
  517. truthound_dashboard-1.3.1/frontend/.intlayer/dictionary/settings.json +0 -31
  518. truthound_dashboard-1.3.1/frontend/.intlayer/dictionary/sources.json +0 -85
  519. truthound_dashboard-1.3.1/frontend/.intlayer/dictionary/validation.json +0 -65
  520. truthound_dashboard-1.3.1/frontend/.intlayer/dictionary/validators.json +0 -215
  521. truthound_dashboard-1.3.1/frontend/.intlayer/main/dictionaries.cjs +0 -35
  522. truthound_dashboard-1.3.1/frontend/.intlayer/main/dictionaries.mjs +0 -35
  523. truthound_dashboard-1.3.1/frontend/.intlayer/main/dynamic_dictionaries.cjs +0 -8
  524. truthound_dashboard-1.3.1/frontend/.intlayer/main/dynamic_dictionaries.mjs +0 -8
  525. truthound_dashboard-1.3.1/frontend/.intlayer/main/fetch_dictionaries.cjs +0 -8
  526. truthound_dashboard-1.3.1/frontend/.intlayer/main/fetch_dictionaries.mjs +0 -8
  527. truthound_dashboard-1.3.1/frontend/.intlayer/main/remote_dictionaries.cjs +0 -8
  528. truthound_dashboard-1.3.1/frontend/.intlayer/main/remote_dictionaries.mjs +0 -8
  529. truthound_dashboard-1.3.1/frontend/.intlayer/main/unmerged_dictionaries.cjs +0 -35
  530. truthound_dashboard-1.3.1/frontend/.intlayer/main/unmerged_dictionaries.mjs +0 -35
  531. truthound_dashboard-1.3.1/frontend/.intlayer/types/catalog.ts +0 -156
  532. truthound_dashboard-1.3.1/frontend/.intlayer/types/collaboration.ts +0 -98
  533. truthound_dashboard-1.3.1/frontend/.intlayer/types/common.ts +0 -100
  534. truthound_dashboard-1.3.1/frontend/.intlayer/types/dashboard.ts +0 -66
  535. truthound_dashboard-1.3.1/frontend/.intlayer/types/drift.ts +0 -98
  536. truthound_dashboard-1.3.1/frontend/.intlayer/types/errors.ts +0 -30
  537. truthound_dashboard-1.3.1/frontend/.intlayer/types/glossary.ts +0 -134
  538. truthound_dashboard-1.3.1/frontend/.intlayer/types/intlayer.d.ts +0 -46
  539. truthound_dashboard-1.3.1/frontend/.intlayer/types/nav.ts +0 -42
  540. truthound_dashboard-1.3.1/frontend/.intlayer/types/notifications.ts +0 -90
  541. truthound_dashboard-1.3.1/frontend/.intlayer/types/schedules.ts +0 -100
  542. truthound_dashboard-1.3.1/frontend/.intlayer/types/settings.ts +0 -32
  543. truthound_dashboard-1.3.1/frontend/.intlayer/types/sources.ts +0 -86
  544. truthound_dashboard-1.3.1/frontend/.intlayer/types/validation.ts +0 -66
  545. truthound_dashboard-1.3.1/frontend/.intlayer/types/validators.ts +0 -216
  546. truthound_dashboard-1.3.1/frontend/.intlayer/unmerged_dictionary/catalog.json +0 -464
  547. truthound_dashboard-1.3.1/frontend/.intlayer/unmerged_dictionary/collaboration.json +0 -261
  548. truthound_dashboard-1.3.1/frontend/.intlayer/unmerged_dictionary/common.json +0 -304
  549. truthound_dashboard-1.3.1/frontend/.intlayer/unmerged_dictionary/dashboard.json +0 -185
  550. truthound_dashboard-1.3.1/frontend/.intlayer/unmerged_dictionary/drift.json +0 -285
  551. truthound_dashboard-1.3.1/frontend/.intlayer/unmerged_dictionary/errors.json +0 -59
  552. truthound_dashboard-1.3.1/frontend/.intlayer/unmerged_dictionary/glossary.json +0 -387
  553. truthound_dashboard-1.3.1/frontend/.intlayer/unmerged_dictionary/nav.json +0 -101
  554. truthound_dashboard-1.3.1/frontend/.intlayer/unmerged_dictionary/notifications.json +0 -245
  555. truthound_dashboard-1.3.1/frontend/.intlayer/unmerged_dictionary/schedules.json +0 -292
  556. truthound_dashboard-1.3.1/frontend/.intlayer/unmerged_dictionary/settings.json +0 -66
  557. truthound_dashboard-1.3.1/frontend/.intlayer/unmerged_dictionary/sources.json +0 -243
  558. truthound_dashboard-1.3.1/frontend/.intlayer/unmerged_dictionary/validation.json +0 -173
  559. truthound_dashboard-1.3.1/frontend/.intlayer/unmerged_dictionary/validators.json +0 -602
  560. truthound_dashboard-1.3.1/frontend/intlayer.config.mjs +0 -19
  561. truthound_dashboard-1.3.1/frontend/package-lock.json +0 -10019
  562. truthound_dashboard-1.3.1/frontend/package.json +0 -71
  563. truthound_dashboard-1.3.1/frontend/src/App.tsx +0 -48
  564. truthound_dashboard-1.3.1/frontend/src/api/client.ts +0 -1609
  565. truthound_dashboard-1.3.1/frontend/src/components/ConfirmDialog.tsx +0 -131
  566. truthound_dashboard-1.3.1/frontend/src/components/Layout.tsx +0 -168
  567. truthound_dashboard-1.3.1/frontend/src/components/validators/ValidatorSelector.tsx +0 -427
  568. truthound_dashboard-1.3.1/frontend/src/components/validators/index.ts +0 -7
  569. truthound_dashboard-1.3.1/frontend/src/content/common.content.ts +0 -109
  570. truthound_dashboard-1.3.1/frontend/src/content/drift.content.ts +0 -124
  571. truthound_dashboard-1.3.1/frontend/src/content/errors.content.ts +0 -42
  572. truthound_dashboard-1.3.1/frontend/src/content/nav.content.ts +0 -27
  573. truthound_dashboard-1.3.1/frontend/src/content/notifications.content.ts +0 -124
  574. truthound_dashboard-1.3.1/frontend/src/content/sources.content.ts +0 -112
  575. truthound_dashboard-1.3.1/frontend/src/lib/utils.ts +0 -111
  576. truthound_dashboard-1.3.1/frontend/src/mocks/data/store.ts +0 -351
  577. truthound_dashboard-1.3.1/frontend/src/mocks/factories/base.ts +0 -61
  578. truthound_dashboard-1.3.1/frontend/src/mocks/factories/index.ts +0 -19
  579. truthound_dashboard-1.3.1/frontend/src/mocks/factories/notifications.ts +0 -640
  580. truthound_dashboard-1.3.1/frontend/src/mocks/factories/profile.ts +0 -196
  581. truthound_dashboard-1.3.1/frontend/src/mocks/factories/schedules.ts +0 -353
  582. truthound_dashboard-1.3.1/frontend/src/mocks/factories/sources.ts +0 -200
  583. truthound_dashboard-1.3.1/frontend/src/mocks/handlers/drift.ts +0 -136
  584. truthound_dashboard-1.3.1/frontend/src/mocks/handlers/index.ts +0 -39
  585. truthound_dashboard-1.3.1/frontend/src/mocks/handlers/notifications.ts +0 -499
  586. truthound_dashboard-1.3.1/frontend/src/mocks/handlers/profile.ts +0 -60
  587. truthound_dashboard-1.3.1/frontend/src/mocks/handlers/schedules.ts +0 -270
  588. truthound_dashboard-1.3.1/frontend/src/mocks/handlers/sources.ts +0 -242
  589. truthound_dashboard-1.3.1/frontend/src/mocks/handlers/validators.ts +0 -2260
  590. truthound_dashboard-1.3.1/frontend/src/pages/Activity.tsx +0 -131
  591. truthound_dashboard-1.3.1/frontend/src/pages/Catalog.tsx +0 -277
  592. truthound_dashboard-1.3.1/frontend/src/pages/CatalogDetail.tsx +0 -399
  593. truthound_dashboard-1.3.1/frontend/src/pages/Dashboard.tsx +0 -269
  594. truthound_dashboard-1.3.1/frontend/src/pages/Drift.tsx +0 -330
  595. truthound_dashboard-1.3.1/frontend/src/pages/Glossary.tsx +0 -266
  596. truthound_dashboard-1.3.1/frontend/src/pages/GlossaryDetail.tsx +0 -352
  597. truthound_dashboard-1.3.1/frontend/src/pages/Notifications.tsx +0 -527
  598. truthound_dashboard-1.3.1/frontend/src/pages/Profile.tsx +0 -613
  599. truthound_dashboard-1.3.1/frontend/src/pages/Schedules.tsx +0 -535
  600. truthound_dashboard-1.3.1/frontend/src/pages/SourceDetail.tsx +0 -487
  601. truthound_dashboard-1.3.1/frontend/src/pages/Sources.tsx +0 -243
  602. truthound_dashboard-1.3.1/frontend/src/pages/Validations.tsx +0 -307
  603. truthound_dashboard-1.3.1/frontend/src/providers/intlayer/IntlayerProvider.tsx +0 -122
  604. truthound_dashboard-1.3.1/frontend/src/providers/intlayer/config.ts +0 -95
  605. truthound_dashboard-1.3.1/frontend/src/test/mocks/react-intlayer.ts +0 -717
  606. truthound_dashboard-1.3.1/frontend/src/test/setup.ts +0 -67
  607. truthound_dashboard-1.3.1/frontend/src/test/test-utils.tsx +0 -84
  608. truthound_dashboard-1.3.1/frontend/tsconfig.json +0 -36
  609. truthound_dashboard-1.3.1/frontend/vitest.config.ts +0 -36
  610. truthound_dashboard-1.3.1/pyproject.toml +0 -117
  611. truthound_dashboard-1.3.1/src/truthound_dashboard/api/deps.py +0 -181
  612. truthound_dashboard-1.3.1/src/truthound_dashboard/api/middleware.py +0 -626
  613. truthound_dashboard-1.3.1/src/truthound_dashboard/api/profile.py +0 -60
  614. truthound_dashboard-1.3.1/src/truthound_dashboard/api/router.py +0 -134
  615. truthound_dashboard-1.3.1/src/truthound_dashboard/api/sources.py +0 -229
  616. truthound_dashboard-1.3.1/src/truthound_dashboard/api/validations.py +0 -157
  617. truthound_dashboard-1.3.1/src/truthound_dashboard/api/validators.py +0 -85
  618. truthound_dashboard-1.3.1/src/truthound_dashboard/core/__init__.py +0 -284
  619. truthound_dashboard-1.3.1/src/truthound_dashboard/core/cache.py +0 -479
  620. truthound_dashboard-1.3.1/src/truthound_dashboard/core/connections.py +0 -331
  621. truthound_dashboard-1.3.1/src/truthound_dashboard/core/maintenance.py +0 -542
  622. truthound_dashboard-1.3.1/src/truthound_dashboard/core/notifications/channels.py +0 -557
  623. truthound_dashboard-1.3.1/src/truthound_dashboard/core/notifications/dispatcher.py +0 -453
  624. truthound_dashboard-1.3.1/src/truthound_dashboard/core/notifications/events.py +0 -155
  625. truthound_dashboard-1.3.1/src/truthound_dashboard/core/notifications/service.py +0 -744
  626. truthound_dashboard-1.3.1/src/truthound_dashboard/core/scheduler.py +0 -311
  627. truthound_dashboard-1.3.1/src/truthound_dashboard/core/services.py +0 -1981
  628. truthound_dashboard-1.3.1/src/truthound_dashboard/db/__init__.py +0 -110
  629. truthound_dashboard-1.3.1/src/truthound_dashboard/db/models.py +0 -1674
  630. truthound_dashboard-1.3.1/src/truthound_dashboard/main.py +0 -309
  631. truthound_dashboard-1.3.1/src/truthound_dashboard/schemas/__init__.py +0 -315
  632. truthound_dashboard-1.3.1/src/truthound_dashboard/schemas/base.py +0 -96
  633. truthound_dashboard-1.3.1/src/truthound_dashboard/schemas/profile.py +0 -134
  634. truthound_dashboard-1.3.1/src/truthound_dashboard/schemas/source.py +0 -138
  635. truthound_dashboard-1.3.1/src/truthound_dashboard/schemas/validation.py +0 -249
  636. truthound_dashboard-1.3.1/src/truthound_dashboard/schemas/validators/__init__.py +0 -59
  637. truthound_dashboard-1.3.1/src/truthound_dashboard/schemas/validators/base.py +0 -263
  638. truthound_dashboard-1.3.1/src/truthound_dashboard/static/assets/index-BZG20KuF.js +0 -586
  639. truthound_dashboard-1.3.1/src/truthound_dashboard/static/assets/index-D_HyZ3pb.css +0 -1
  640. truthound_dashboard-1.3.1/src/truthound_dashboard/static/assets/unmerged_dictionaries-CtpqQBm0.js +0 -1
  641. truthound_dashboard-1.3.1/src/truthound_dashboard/static/index.html +0 -15
  642. {truthound_dashboard-1.3.1 → truthound_dashboard-1.4.1}/.github/workflows/release.yml +0 -0
  643. {truthound_dashboard-1.3.1 → truthound_dashboard-1.4.1}/.github/workflows/trigger-docs.yml +0 -0
  644. {truthound_dashboard-1.3.1 → truthound_dashboard-1.4.1}/LICENSE +0 -0
  645. {truthound_dashboard-1.3.1 → truthound_dashboard-1.4.1}/docs/configuration.md +0 -0
  646. {truthound_dashboard-1.3.1 → truthound_dashboard-1.4.1}/docs/getting-started.md +0 -0
  647. {truthound_dashboard-1.3.1 → truthound_dashboard-1.4.1}/docs/index.md +0 -0
  648. {truthound_dashboard-1.3.1 → truthound_dashboard-1.4.1}/e2e/package-lock.json +0 -0
  649. {truthound_dashboard-1.3.1 → truthound_dashboard-1.4.1}/e2e/package.json +0 -0
  650. {truthound_dashboard-1.3.1 → truthound_dashboard-1.4.1}/e2e/playwright.config.ts +0 -0
  651. {truthound_dashboard-1.3.1 → truthound_dashboard-1.4.1}/e2e/tests/dashboard.spec.ts +0 -0
  652. {truthound_dashboard-1.3.1 → truthound_dashboard-1.4.1}/e2e/tests/language.spec.ts +0 -0
  653. {truthound_dashboard-1.3.1 → truthound_dashboard-1.4.1}/e2e/tests/theme.spec.ts +0 -0
  654. {truthound_dashboard-1.3.1 → truthound_dashboard-1.4.1}/frontend/.env.development +0 -0
  655. {truthound_dashboard-1.3.1 → truthound_dashboard-1.4.1}/frontend/.env.mock +0 -0
  656. {truthound_dashboard-1.3.1 → truthound_dashboard-1.4.1}/frontend/.env.pip +0 -0
  657. {truthound_dashboard-1.3.1 → truthound_dashboard-1.4.1}/frontend/.eslintrc.cjs +0 -0
  658. {truthound_dashboard-1.3.1 → truthound_dashboard-1.4.1}/frontend/index.html +0 -0
  659. {truthound_dashboard-1.3.1 → truthound_dashboard-1.4.1}/frontend/postcss.config.js +0 -0
  660. {truthound_dashboard-1.3.1 → truthound_dashboard-1.4.1}/frontend/public/favicon.ico +0 -0
  661. {truthound_dashboard-1.3.1 → truthound_dashboard-1.4.1}/frontend/public/mockServiceWorker.js +0 -0
  662. {truthound_dashboard-1.3.1 → truthound_dashboard-1.4.1}/frontend/public-pip/favicon.ico +0 -0
  663. {truthound_dashboard-1.3.1 → truthound_dashboard-1.4.1}/frontend/src/assets/logo.png +0 -0
  664. {truthound_dashboard-1.3.1 → truthound_dashboard-1.4.1}/frontend/src/components/AnimatedNumber.test.tsx +0 -0
  665. {truthound_dashboard-1.3.1 → truthound_dashboard-1.4.1}/frontend/src/components/AnimatedNumber.tsx +0 -0
  666. {truthound_dashboard-1.3.1 → truthound_dashboard-1.4.1}/frontend/src/components/GlassCard.test.tsx +0 -0
  667. {truthound_dashboard-1.3.1 → truthound_dashboard-1.4.1}/frontend/src/components/GlassCard.tsx +0 -0
  668. {truthound_dashboard-1.3.1 → truthound_dashboard-1.4.1}/frontend/src/components/LoadingFallback.tsx +0 -0
  669. {truthound_dashboard-1.3.1 → truthound_dashboard-1.4.1}/frontend/src/components/ThemeToggle.tsx +0 -0
  670. {truthound_dashboard-1.3.1 → truthound_dashboard-1.4.1}/frontend/src/components/catalog/AssetFormDialog.tsx +0 -0
  671. {truthound_dashboard-1.3.1 → truthound_dashboard-1.4.1}/frontend/src/components/catalog/ColumnMappingDialog.tsx +0 -0
  672. {truthound_dashboard-1.3.1 → truthound_dashboard-1.4.1}/frontend/src/components/collaboration/ActivityFeed.tsx +0 -0
  673. {truthound_dashboard-1.3.1 → truthound_dashboard-1.4.1}/frontend/src/components/collaboration/Comments.tsx +0 -0
  674. {truthound_dashboard-1.3.1 → truthound_dashboard-1.4.1}/frontend/src/components/glossary/TermFormDialog.tsx +0 -0
  675. {truthound_dashboard-1.3.1 → truthound_dashboard-1.4.1}/frontend/src/components/theme-provider.tsx +0 -0
  676. {truthound_dashboard-1.3.1 → truthound_dashboard-1.4.1}/frontend/src/components/ui/alert-dialog.tsx +0 -0
  677. {truthound_dashboard-1.3.1 → truthound_dashboard-1.4.1}/frontend/src/components/ui/badge.tsx +0 -0
  678. {truthound_dashboard-1.3.1 → truthound_dashboard-1.4.1}/frontend/src/components/ui/button.tsx +0 -0
  679. {truthound_dashboard-1.3.1 → truthound_dashboard-1.4.1}/frontend/src/components/ui/card.tsx +0 -0
  680. {truthound_dashboard-1.3.1 → truthound_dashboard-1.4.1}/frontend/src/components/ui/dialog.tsx +0 -0
  681. {truthound_dashboard-1.3.1 → truthound_dashboard-1.4.1}/frontend/src/components/ui/dropdown-menu.tsx +0 -0
  682. {truthound_dashboard-1.3.1 → truthound_dashboard-1.4.1}/frontend/src/components/ui/input.tsx +0 -0
  683. {truthound_dashboard-1.3.1 → truthound_dashboard-1.4.1}/frontend/src/components/ui/label.tsx +0 -0
  684. {truthound_dashboard-1.3.1 → truthound_dashboard-1.4.1}/frontend/src/components/ui/select.tsx +0 -0
  685. {truthound_dashboard-1.3.1 → truthound_dashboard-1.4.1}/frontend/src/components/ui/switch.tsx +0 -0
  686. {truthound_dashboard-1.3.1 → truthound_dashboard-1.4.1}/frontend/src/components/ui/table.tsx +0 -0
  687. {truthound_dashboard-1.3.1 → truthound_dashboard-1.4.1}/frontend/src/components/ui/tabs.tsx +0 -0
  688. {truthound_dashboard-1.3.1 → truthound_dashboard-1.4.1}/frontend/src/components/ui/toast.tsx +0 -0
  689. {truthound_dashboard-1.3.1 → truthound_dashboard-1.4.1}/frontend/src/components/ui/toaster.tsx +0 -0
  690. {truthound_dashboard-1.3.1 → truthound_dashboard-1.4.1}/frontend/src/components/validators/ValidatorConfigCard.tsx +0 -0
  691. {truthound_dashboard-1.3.1 → truthound_dashboard-1.4.1}/frontend/src/components/validators/ValidatorParamInput.tsx +0 -0
  692. {truthound_dashboard-1.3.1 → truthound_dashboard-1.4.1}/frontend/src/content/catalog.content.ts +0 -0
  693. {truthound_dashboard-1.3.1 → truthound_dashboard-1.4.1}/frontend/src/content/collaboration.content.ts +0 -0
  694. {truthound_dashboard-1.3.1 → truthound_dashboard-1.4.1}/frontend/src/content/dashboard.content.ts +0 -0
  695. {truthound_dashboard-1.3.1 → truthound_dashboard-1.4.1}/frontend/src/content/glossary.content.ts +0 -0
  696. {truthound_dashboard-1.3.1 → truthound_dashboard-1.4.1}/frontend/src/content/index.ts +0 -0
  697. {truthound_dashboard-1.3.1 → truthound_dashboard-1.4.1}/frontend/src/content/schedules.content.ts +0 -0
  698. {truthound_dashboard-1.3.1 → truthound_dashboard-1.4.1}/frontend/src/content/settings.content.ts +0 -0
  699. {truthound_dashboard-1.3.1 → truthound_dashboard-1.4.1}/frontend/src/content/validation.content.ts +0 -0
  700. {truthound_dashboard-1.3.1 → truthound_dashboard-1.4.1}/frontend/src/content/validators.content.ts +0 -0
  701. {truthound_dashboard-1.3.1 → truthound_dashboard-1.4.1}/frontend/src/hooks/use-api.ts +0 -0
  702. {truthound_dashboard-1.3.1 → truthound_dashboard-1.4.1}/frontend/src/hooks/use-toast.ts +0 -0
  703. {truthound_dashboard-1.3.1 → truthound_dashboard-1.4.1}/frontend/src/index.css +0 -0
  704. {truthound_dashboard-1.3.1 → truthound_dashboard-1.4.1}/frontend/src/lib/intlayer-utils.ts +0 -0
  705. {truthound_dashboard-1.3.1 → truthound_dashboard-1.4.1}/frontend/src/main.tsx +0 -0
  706. {truthound_dashboard-1.3.1 → truthound_dashboard-1.4.1}/frontend/src/mocks/__tests__/phase5-e2e.test.ts +0 -0
  707. {truthound_dashboard-1.3.1 → truthound_dashboard-1.4.1}/frontend/src/mocks/browser.ts +0 -0
  708. {truthound_dashboard-1.3.1 → truthound_dashboard-1.4.1}/frontend/src/mocks/factories/catalog.test.ts +0 -0
  709. {truthound_dashboard-1.3.1 → truthound_dashboard-1.4.1}/frontend/src/mocks/factories/catalog.ts +0 -0
  710. {truthound_dashboard-1.3.1 → truthound_dashboard-1.4.1}/frontend/src/mocks/factories/collaboration.test.ts +0 -0
  711. {truthound_dashboard-1.3.1 → truthound_dashboard-1.4.1}/frontend/src/mocks/factories/collaboration.ts +0 -0
  712. {truthound_dashboard-1.3.1 → truthound_dashboard-1.4.1}/frontend/src/mocks/factories/drift.ts +0 -0
  713. {truthound_dashboard-1.3.1 → truthound_dashboard-1.4.1}/frontend/src/mocks/factories/glossary.test.ts +0 -0
  714. {truthound_dashboard-1.3.1 → truthound_dashboard-1.4.1}/frontend/src/mocks/factories/glossary.ts +0 -0
  715. {truthound_dashboard-1.3.1 → truthound_dashboard-1.4.1}/frontend/src/mocks/factories/history.ts +0 -0
  716. {truthound_dashboard-1.3.1 → truthound_dashboard-1.4.1}/frontend/src/mocks/factories/mask.ts +0 -0
  717. {truthound_dashboard-1.3.1 → truthound_dashboard-1.4.1}/frontend/src/mocks/factories/scan.ts +0 -0
  718. {truthound_dashboard-1.3.1 → truthound_dashboard-1.4.1}/frontend/src/mocks/factories/schemas.ts +0 -0
  719. {truthound_dashboard-1.3.1 → truthound_dashboard-1.4.1}/frontend/src/mocks/factories/validations.ts +0 -0
  720. {truthound_dashboard-1.3.1 → truthound_dashboard-1.4.1}/frontend/src/mocks/factories/validators.ts +0 -0
  721. {truthound_dashboard-1.3.1 → truthound_dashboard-1.4.1}/frontend/src/mocks/handlers/catalog.ts +0 -0
  722. {truthound_dashboard-1.3.1 → truthound_dashboard-1.4.1}/frontend/src/mocks/handlers/collaboration.ts +0 -0
  723. {truthound_dashboard-1.3.1 → truthound_dashboard-1.4.1}/frontend/src/mocks/handlers/glossary.ts +0 -0
  724. {truthound_dashboard-1.3.1 → truthound_dashboard-1.4.1}/frontend/src/mocks/handlers/health.ts +0 -0
  725. {truthound_dashboard-1.3.1 → truthound_dashboard-1.4.1}/frontend/src/mocks/handlers/history.ts +0 -0
  726. {truthound_dashboard-1.3.1 → truthound_dashboard-1.4.1}/frontend/src/mocks/handlers/mask.ts +0 -0
  727. {truthound_dashboard-1.3.1 → truthound_dashboard-1.4.1}/frontend/src/mocks/handlers/rules.ts +0 -0
  728. {truthound_dashboard-1.3.1 → truthound_dashboard-1.4.1}/frontend/src/mocks/handlers/scan.ts +0 -0
  729. {truthound_dashboard-1.3.1 → truthound_dashboard-1.4.1}/frontend/src/mocks/handlers/schemas.ts +0 -0
  730. {truthound_dashboard-1.3.1 → truthound_dashboard-1.4.1}/frontend/src/mocks/handlers/validations.ts +0 -0
  731. {truthound_dashboard-1.3.1 → truthound_dashboard-1.4.1}/frontend/src/mocks/index.ts +0 -0
  732. {truthound_dashboard-1.3.1 → truthound_dashboard-1.4.1}/frontend/src/pages/Dashboard.test.tsx +0 -0
  733. {truthound_dashboard-1.3.1 → truthound_dashboard-1.4.1}/frontend/src/pages/History.tsx +0 -0
  734. {truthound_dashboard-1.3.1 → truthound_dashboard-1.4.1}/frontend/src/pages/Rules.tsx +0 -0
  735. {truthound_dashboard-1.3.1 → truthound_dashboard-1.4.1}/frontend/src/pages/__tests__/Catalog.e2e.test.tsx +0 -0
  736. {truthound_dashboard-1.3.1 → truthound_dashboard-1.4.1}/frontend/src/pages/__tests__/CatalogDetail.e2e.test.tsx +0 -0
  737. {truthound_dashboard-1.3.1 → truthound_dashboard-1.4.1}/frontend/src/pages/__tests__/Dashboard.e2e.test.tsx +0 -0
  738. {truthound_dashboard-1.3.1 → truthound_dashboard-1.4.1}/frontend/src/pages/__tests__/Glossary.e2e.test.tsx +0 -0
  739. {truthound_dashboard-1.3.1 → truthound_dashboard-1.4.1}/frontend/src/pages/__tests__/GlossaryDetail.e2e.test.tsx +0 -0
  740. {truthound_dashboard-1.3.1 → truthound_dashboard-1.4.1}/frontend/src/pages/__tests__/History.e2e.test.tsx +0 -0
  741. {truthound_dashboard-1.3.1 → truthound_dashboard-1.4.1}/frontend/src/pages/__tests__/Profile.e2e.test.tsx +0 -0
  742. {truthound_dashboard-1.3.1 → truthound_dashboard-1.4.1}/frontend/src/pages/__tests__/Rules.e2e.test.tsx +0 -0
  743. {truthound_dashboard-1.3.1 → truthound_dashboard-1.4.1}/frontend/src/pages/__tests__/SourceDetail.e2e.test.tsx +0 -0
  744. {truthound_dashboard-1.3.1 → truthound_dashboard-1.4.1}/frontend/src/pages/__tests__/Sources.e2e.test.tsx +0 -0
  745. {truthound_dashboard-1.3.1 → truthound_dashboard-1.4.1}/frontend/src/providers/index.ts +0 -0
  746. {truthound_dashboard-1.3.1 → truthound_dashboard-1.4.1}/frontend/src/providers/intlayer/index.ts +0 -0
  747. {truthound_dashboard-1.3.1 → truthound_dashboard-1.4.1}/frontend/src/stores/catalogStore.test.ts +0 -0
  748. {truthound_dashboard-1.3.1 → truthound_dashboard-1.4.1}/frontend/src/stores/catalogStore.ts +0 -0
  749. {truthound_dashboard-1.3.1 → truthound_dashboard-1.4.1}/frontend/src/stores/glossaryStore.test.ts +0 -0
  750. {truthound_dashboard-1.3.1 → truthound_dashboard-1.4.1}/frontend/src/stores/glossaryStore.ts +0 -0
  751. {truthound_dashboard-1.3.1 → truthound_dashboard-1.4.1}/frontend/src/stores/theme.ts +0 -0
  752. {truthound_dashboard-1.3.1 → truthound_dashboard-1.4.1}/frontend/src/test/mocks/intlayer-config.ts +0 -0
  753. {truthound_dashboard-1.3.1 → truthound_dashboard-1.4.1}/frontend/src/test/mocks/intlayer.ts +0 -0
  754. {truthound_dashboard-1.3.1 → truthound_dashboard-1.4.1}/frontend/src/types/validators.ts +0 -0
  755. {truthound_dashboard-1.3.1 → truthound_dashboard-1.4.1}/frontend/src/vite-env.d.ts +0 -0
  756. {truthound_dashboard-1.3.1 → truthound_dashboard-1.4.1}/frontend/tailwind.config.js +0 -0
  757. {truthound_dashboard-1.3.1 → truthound_dashboard-1.4.1}/frontend/tsconfig.node.json +0 -0
  758. {truthound_dashboard-1.3.1 → truthound_dashboard-1.4.1}/frontend/vite.config.ts +0 -0
  759. {truthound_dashboard-1.3.1 → truthound_dashboard-1.4.1}/package-lock.json +0 -0
  760. {truthound_dashboard-1.3.1 → truthound_dashboard-1.4.1}/scripts/load_test.py +0 -0
  761. {truthound_dashboard-1.3.1 → truthound_dashboard-1.4.1}/src/truthound_dashboard/__init__.py +0 -0
  762. {truthound_dashboard-1.3.1 → truthound_dashboard-1.4.1}/src/truthound_dashboard/__main__.py +0 -0
  763. {truthound_dashboard-1.3.1 → truthound_dashboard-1.4.1}/src/truthound_dashboard/api/__init__.py +0 -0
  764. {truthound_dashboard-1.3.1 → truthound_dashboard-1.4.1}/src/truthound_dashboard/api/catalog.py +0 -0
  765. {truthound_dashboard-1.3.1 → truthound_dashboard-1.4.1}/src/truthound_dashboard/api/collaboration.py +0 -0
  766. {truthound_dashboard-1.3.1 → truthound_dashboard-1.4.1}/src/truthound_dashboard/api/drift.py +0 -0
  767. {truthound_dashboard-1.3.1 → truthound_dashboard-1.4.1}/src/truthound_dashboard/api/error_handlers.py +0 -0
  768. {truthound_dashboard-1.3.1 → truthound_dashboard-1.4.1}/src/truthound_dashboard/api/glossary.py +0 -0
  769. {truthound_dashboard-1.3.1 → truthound_dashboard-1.4.1}/src/truthound_dashboard/api/health.py +0 -0
  770. {truthound_dashboard-1.3.1 → truthound_dashboard-1.4.1}/src/truthound_dashboard/api/history.py +0 -0
  771. {truthound_dashboard-1.3.1 → truthound_dashboard-1.4.1}/src/truthound_dashboard/api/mask.py +0 -0
  772. {truthound_dashboard-1.3.1 → truthound_dashboard-1.4.1}/src/truthound_dashboard/api/notifications.py +0 -0
  773. {truthound_dashboard-1.3.1 → truthound_dashboard-1.4.1}/src/truthound_dashboard/api/rules.py +0 -0
  774. {truthound_dashboard-1.3.1 → truthound_dashboard-1.4.1}/src/truthound_dashboard/api/scan.py +0 -0
  775. {truthound_dashboard-1.3.1 → truthound_dashboard-1.4.1}/src/truthound_dashboard/api/schedules.py +0 -0
  776. {truthound_dashboard-1.3.1 → truthound_dashboard-1.4.1}/src/truthound_dashboard/api/schemas.py +0 -0
  777. {truthound_dashboard-1.3.1 → truthound_dashboard-1.4.1}/src/truthound_dashboard/cli.py +0 -0
  778. {truthound_dashboard-1.3.1 → truthound_dashboard-1.4.1}/src/truthound_dashboard/config.py +0 -0
  779. {truthound_dashboard-1.3.1 → truthound_dashboard-1.4.1}/src/truthound_dashboard/core/base.py +0 -0
  780. {truthound_dashboard-1.3.1 → truthound_dashboard-1.4.1}/src/truthound_dashboard/core/encryption.py +0 -0
  781. {truthound_dashboard-1.3.1 → truthound_dashboard-1.4.1}/src/truthound_dashboard/core/exceptions.py +0 -0
  782. {truthound_dashboard-1.3.1 → truthound_dashboard-1.4.1}/src/truthound_dashboard/core/logging.py +0 -0
  783. {truthound_dashboard-1.3.1 → truthound_dashboard-1.4.1}/src/truthound_dashboard/core/notifications/__init__.py +0 -0
  784. {truthound_dashboard-1.3.1 → truthound_dashboard-1.4.1}/src/truthound_dashboard/core/notifications/base.py +0 -0
  785. {truthound_dashboard-1.3.1 → truthound_dashboard-1.4.1}/src/truthound_dashboard/core/phase5/__init__.py +0 -0
  786. {truthound_dashboard-1.3.1 → truthound_dashboard-1.4.1}/src/truthound_dashboard/core/phase5/activity.py +0 -0
  787. {truthound_dashboard-1.3.1 → truthound_dashboard-1.4.1}/src/truthound_dashboard/core/phase5/catalog.py +0 -0
  788. {truthound_dashboard-1.3.1 → truthound_dashboard-1.4.1}/src/truthound_dashboard/core/phase5/collaboration.py +0 -0
  789. {truthound_dashboard-1.3.1 → truthound_dashboard-1.4.1}/src/truthound_dashboard/core/phase5/glossary.py +0 -0
  790. {truthound_dashboard-1.3.1 → truthound_dashboard-1.4.1}/src/truthound_dashboard/core/sampling.py +0 -0
  791. {truthound_dashboard-1.3.1 → truthound_dashboard-1.4.1}/src/truthound_dashboard/core/truthound_adapter.py +0 -0
  792. {truthound_dashboard-1.3.1 → truthound_dashboard-1.4.1}/src/truthound_dashboard/db/base.py +0 -0
  793. {truthound_dashboard-1.3.1 → truthound_dashboard-1.4.1}/src/truthound_dashboard/db/database.py +0 -0
  794. {truthound_dashboard-1.3.1 → truthound_dashboard-1.4.1}/src/truthound_dashboard/db/repository.py +0 -0
  795. {truthound_dashboard-1.3.1 → truthound_dashboard-1.4.1}/src/truthound_dashboard/schemas/catalog.py +0 -0
  796. {truthound_dashboard-1.3.1 → truthound_dashboard-1.4.1}/src/truthound_dashboard/schemas/collaboration.py +0 -0
  797. {truthound_dashboard-1.3.1 → truthound_dashboard-1.4.1}/src/truthound_dashboard/schemas/drift.py +0 -0
  798. {truthound_dashboard-1.3.1 → truthound_dashboard-1.4.1}/src/truthound_dashboard/schemas/glossary.py +0 -0
  799. {truthound_dashboard-1.3.1 → truthound_dashboard-1.4.1}/src/truthound_dashboard/schemas/history.py +0 -0
  800. {truthound_dashboard-1.3.1 → truthound_dashboard-1.4.1}/src/truthound_dashboard/schemas/mask.py +0 -0
  801. {truthound_dashboard-1.3.1 → truthound_dashboard-1.4.1}/src/truthound_dashboard/schemas/rule.py +0 -0
  802. {truthound_dashboard-1.3.1 → truthound_dashboard-1.4.1}/src/truthound_dashboard/schemas/scan.py +0 -0
  803. {truthound_dashboard-1.3.1 → truthound_dashboard-1.4.1}/src/truthound_dashboard/schemas/schedule.py +0 -0
  804. {truthound_dashboard-1.3.1 → truthound_dashboard-1.4.1}/src/truthound_dashboard/schemas/schema.py +0 -0
  805. {truthound_dashboard-1.3.1 → truthound_dashboard-1.4.1}/src/truthound_dashboard/schemas/validators/aggregate_validators.py +0 -0
  806. {truthound_dashboard-1.3.1 → truthound_dashboard-1.4.1}/src/truthound_dashboard/schemas/validators/anomaly_validators.py +0 -0
  807. {truthound_dashboard-1.3.1 → truthound_dashboard-1.4.1}/src/truthound_dashboard/schemas/validators/completeness_validators.py +0 -0
  808. {truthound_dashboard-1.3.1 → truthound_dashboard-1.4.1}/src/truthound_dashboard/schemas/validators/cross_table_validators.py +0 -0
  809. {truthound_dashboard-1.3.1 → truthound_dashboard-1.4.1}/src/truthound_dashboard/schemas/validators/datetime_validators.py +0 -0
  810. {truthound_dashboard-1.3.1 → truthound_dashboard-1.4.1}/src/truthound_dashboard/schemas/validators/distribution_validators.py +0 -0
  811. {truthound_dashboard-1.3.1 → truthound_dashboard-1.4.1}/src/truthound_dashboard/schemas/validators/drift_validators.py +0 -0
  812. {truthound_dashboard-1.3.1 → truthound_dashboard-1.4.1}/src/truthound_dashboard/schemas/validators/geospatial_validators.py +0 -0
  813. {truthound_dashboard-1.3.1 → truthound_dashboard-1.4.1}/src/truthound_dashboard/schemas/validators/multi_column_validators.py +0 -0
  814. {truthound_dashboard-1.3.1 → truthound_dashboard-1.4.1}/src/truthound_dashboard/schemas/validators/privacy_validators.py +0 -0
  815. {truthound_dashboard-1.3.1 → truthound_dashboard-1.4.1}/src/truthound_dashboard/schemas/validators/query_validators.py +0 -0
  816. {truthound_dashboard-1.3.1 → truthound_dashboard-1.4.1}/src/truthound_dashboard/schemas/validators/registry.py +0 -0
  817. {truthound_dashboard-1.3.1 → truthound_dashboard-1.4.1}/src/truthound_dashboard/schemas/validators/schema_validators.py +0 -0
  818. {truthound_dashboard-1.3.1 → truthound_dashboard-1.4.1}/src/truthound_dashboard/schemas/validators/string_validators.py +0 -0
  819. {truthound_dashboard-1.3.1 → truthound_dashboard-1.4.1}/src/truthound_dashboard/schemas/validators/table_validators.py +0 -0
  820. {truthound_dashboard-1.3.1 → truthound_dashboard-1.4.1}/src/truthound_dashboard/schemas/validators/uniqueness_validators.py +0 -0
  821. {truthound_dashboard-1.3.1 → truthound_dashboard-1.4.1}/src/truthound_dashboard/schemas/validators.py +0 -0
  822. {truthound_dashboard-1.3.1 → truthound_dashboard-1.4.1}/src/truthound_dashboard/static/assets/logo--IpBiMPK.png +0 -0
  823. {truthound_dashboard-1.3.1 → truthound_dashboard-1.4.1}/src/truthound_dashboard/static/favicon.ico +0 -0
  824. {truthound_dashboard-1.3.1 → truthound_dashboard-1.4.1}/src/truthound_dashboard/translate/__init__.py +0 -0
  825. {truthound_dashboard-1.3.1 → truthound_dashboard-1.4.1}/src/truthound_dashboard/translate/config_updater.py +0 -0
  826. {truthound_dashboard-1.3.1 → truthound_dashboard-1.4.1}/src/truthound_dashboard/translate/exceptions.py +0 -0
  827. {truthound_dashboard-1.3.1 → truthound_dashboard-1.4.1}/src/truthound_dashboard/translate/providers/__init__.py +0 -0
  828. {truthound_dashboard-1.3.1 → truthound_dashboard-1.4.1}/src/truthound_dashboard/translate/providers/anthropic.py +0 -0
  829. {truthound_dashboard-1.3.1 → truthound_dashboard-1.4.1}/src/truthound_dashboard/translate/providers/base.py +0 -0
  830. {truthound_dashboard-1.3.1 → truthound_dashboard-1.4.1}/src/truthound_dashboard/translate/providers/mistral.py +0 -0
  831. {truthound_dashboard-1.3.1 → truthound_dashboard-1.4.1}/src/truthound_dashboard/translate/providers/ollama.py +0 -0
  832. {truthound_dashboard-1.3.1 → truthound_dashboard-1.4.1}/src/truthound_dashboard/translate/providers/openai.py +0 -0
  833. {truthound_dashboard-1.3.1 → truthound_dashboard-1.4.1}/src/truthound_dashboard/translate/providers/registry.py +0 -0
  834. {truthound_dashboard-1.3.1 → truthound_dashboard-1.4.1}/src/truthound_dashboard/translate/translator.py +0 -0
  835. {truthound_dashboard-1.3.1 → truthound_dashboard-1.4.1}/tests/__init__.py +0 -0
  836. {truthound_dashboard-1.3.1 → truthound_dashboard-1.4.1}/tests/conftest.py +0 -0
  837. {truthound_dashboard-1.3.1 → truthound_dashboard-1.4.1}/tests/test_api/__init__.py +0 -0
  838. {truthound_dashboard-1.3.1 → truthound_dashboard-1.4.1}/tests/test_api/test_catalog.py +0 -0
  839. {truthound_dashboard-1.3.1 → truthound_dashboard-1.4.1}/tests/test_api/test_collaboration.py +0 -0
  840. {truthound_dashboard-1.3.1 → truthound_dashboard-1.4.1}/tests/test_api/test_glossary.py +0 -0
  841. {truthound_dashboard-1.3.1 → truthound_dashboard-1.4.1}/tests/test_api/test_health.py +0 -0
  842. {truthound_dashboard-1.3.1 → truthound_dashboard-1.4.1}/tests/test_api/test_rules.py +0 -0
  843. {truthound_dashboard-1.3.1 → truthound_dashboard-1.4.1}/tests/test_api/test_sources.py +0 -0
  844. {truthound_dashboard-1.3.1 → truthound_dashboard-1.4.1}/tests/test_core/__init__.py +0 -0
  845. {truthound_dashboard-1.3.1 → truthound_dashboard-1.4.1}/tests/test_core/test_services.py +0 -0
  846. {truthound_dashboard-1.3.1 → truthound_dashboard-1.4.1}/tests/test_db/__init__.py +0 -0
  847. {truthound_dashboard-1.3.1 → truthound_dashboard-1.4.1}/tests/test_db/test_models.py +0 -0
  848. {truthound_dashboard-1.3.1 → truthound_dashboard-1.4.1}/tests/test_phase4.py +0 -0
@@ -0,0 +1,174 @@
1
+ # Byte-compiled / optimized / DLL files
2
+ __pycache__/
3
+ *.py[cod]
4
+ *$py.class
5
+
6
+ # C extensions
7
+ *.so
8
+
9
+ # Distribution / packaging
10
+ .Python
11
+ build/
12
+ develop-eggs/
13
+ dist/
14
+ downloads/
15
+ eggs/
16
+ .eggs/
17
+ /lib/
18
+ /lib64/
19
+ parts/
20
+ sdist/
21
+ var/
22
+ wheels/
23
+ share/python-wheels/
24
+ *.egg-info/
25
+ .installed.cfg
26
+ *.egg
27
+ MANIFEST
28
+
29
+ # PyInstaller
30
+ *.manifest
31
+ *.spec
32
+
33
+ # Installer logs
34
+ pip-log.txt
35
+ pip-delete-this-directory.txt
36
+
37
+ # Unit test / coverage reports
38
+ htmlcov/
39
+ .tox/
40
+ .nox/
41
+ .coverage
42
+ .coverage.*
43
+ .cache
44
+ nosetests.xml
45
+ coverage.xml
46
+ *.cover
47
+ *.py,cover
48
+ .hypothesis/
49
+ .pytest_cache/
50
+
51
+ # Translations
52
+ *.mo
53
+ *.pot
54
+
55
+ # Django stuff:
56
+ *.log
57
+ local_settings.py
58
+ db.sqlite3
59
+ db.sqlite3-journal
60
+
61
+ # Flask stuff:
62
+ instance/
63
+ .webassets-cache
64
+
65
+ # Scrapy stuff:
66
+ .scrapy
67
+
68
+ # Sphinx documentation
69
+ docs/_build/
70
+
71
+ # PyBuilder
72
+ .pybuilder/
73
+ target/
74
+
75
+ # Jupyter Notebook
76
+ .ipynb_checkpoints
77
+
78
+ # IPython
79
+ profile_default/
80
+ ipython_config.py
81
+
82
+ # pyenv
83
+ .python-version
84
+
85
+ # pipenv
86
+ Pipfile.lock
87
+
88
+ # PEP 582
89
+ __pypackages__/
90
+
91
+ # Celery stuff
92
+ celerybeat-schedule
93
+ celerybeat.pid
94
+
95
+ # SageMath parsed files
96
+ *.sage.py
97
+
98
+ # Environments
99
+ .env
100
+ .venv
101
+ env/
102
+ venv/
103
+ ENV/
104
+ env.bak/
105
+ venv.bak/
106
+
107
+ # Spyder project settings
108
+ .spyderproject
109
+ .spyproject
110
+
111
+ # Rope project settings
112
+ .ropeproject
113
+
114
+ # mkdocs documentation
115
+ /site
116
+
117
+ # mypy
118
+ .mypy_cache/
119
+ .dmypy.json
120
+ dmypy.json
121
+
122
+ # Pyre type checker
123
+ .pyre/
124
+
125
+ # pytype static type analyzer
126
+ .pytype/
127
+
128
+ # Cython debug symbols
129
+ cython_debug/
130
+
131
+ # VS Code
132
+ .vscode/
133
+
134
+ # IDE
135
+ .idea/
136
+ *.swp
137
+ *.swo
138
+
139
+ # Node
140
+ node_modules/
141
+ npm-debug.log*
142
+ yarn-debug.log*
143
+ yarn-error.log*
144
+
145
+ # Intlayer - config has absolute paths, cache is temp files
146
+ # Dictionary and types need fresh generation on each build
147
+ frontend/.intlayer/
148
+
149
+ # Frontend build output (handled by build process)
150
+ # src/truthound_dashboard/static/
151
+
152
+ # Local development
153
+ .truthound/
154
+ *.db
155
+
156
+ # OS
157
+ .DS_Store
158
+ Thumbs.db
159
+
160
+ # Test
161
+ .pytest_cache/
162
+ htmlcov/
163
+
164
+ # Claude
165
+ .claude/
166
+ CLAUDE.md
167
+ .truthound_docs/
168
+
169
+ # Build artifacts
170
+ src/truthound_dashboard/static/assets/*.js
171
+ src/truthound_dashboard/static/assets/*.css
172
+
173
+ .github/copilot-instructions.md
174
+ .vercel
@@ -0,0 +1,507 @@
1
+ Metadata-Version: 2.4
2
+ Name: truthound-dashboard
3
+ Version: 1.4.1
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: polars>=0.20.0
28
+ Requires-Dist: pydantic-settings>=2.1.0
29
+ Requires-Dist: pydantic>=2.5.0
30
+ Requires-Dist: pyyaml>=6.0.0
31
+ Requires-Dist: rich>=13.0.0
32
+ Requires-Dist: sqlalchemy[asyncio]>=2.0.0
33
+ Requires-Dist: truthound>=1.0.5
34
+ Requires-Dist: typer>=0.9.0
35
+ Requires-Dist: uvicorn[standard]>=0.27.0
36
+ Provides-Extra: dev
37
+ Requires-Dist: black>=23.0.0; extra == 'dev'
38
+ Requires-Dist: httpx>=0.26.0; extra == 'dev'
39
+ Requires-Dist: mypy>=1.8.0; extra == 'dev'
40
+ Requires-Dist: pytest-asyncio>=0.21.0; extra == 'dev'
41
+ Requires-Dist: pytest-cov>=4.1.0; extra == 'dev'
42
+ Requires-Dist: pytest>=7.4.0; extra == 'dev'
43
+ Requires-Dist: ruff>=0.1.0; extra == 'dev'
44
+ Provides-Extra: redis
45
+ Requires-Dist: redis>=5.0.0; extra == 'redis'
46
+ Provides-Extra: translate
47
+ Description-Content-Type: text/markdown
48
+
49
+
50
+ <img width="2551" height="911" alt="스크린샷 2026-01-08 오전 11 54 18" src="https://github.com/user-attachments/assets/5e6b6d39-ee69-48f3-b0df-577f73bcb03d" />
51
+
52
+ # truthound-dashboard
53
+
54
+ [![PyPI version](https://img.shields.io/pypi/v/truthound-dashboard.svg)](https://pypi.org/project/truthound-dashboard/)
55
+ [![Python 3.11+](https://img.shields.io/badge/python-3.11+-blue.svg)](https://www.python.org/downloads/)
56
+ [![License: Apache 2.0](https://img.shields.io/badge/License-Apache%202.0-orange.svg)](https://opensource.org/licenses/Apache-2.0)
57
+ [![Powered by Intlayer](https://img.shields.io/badge/Powered%20by-Intlayer-yellow.svg)](https://intlayer.org)
58
+ [![Downloads](https://img.shields.io/pepy/dt/truthound-dashboard?color=brightgreen)](https://pepy.tech/project/truthound-dashboard)
59
+
60
+ A web-based data quality monitoring dashboard for [truthound](https://github.com/seadonggyun4/truthound).
61
+
62
+ [Documentation](https://truthound.netlify.app) | [PyPI](https://pypi.org/project/truthound-dashboard/) | [Live Demo](https://truthound-dashborad.vercel.app/)
63
+
64
+ > **Try the Live Demo**: Experience the full dashboard interface with mock data at [truthound-dashborad.vercel.app](https://truthound-dashborad.vercel.app/). No installation required!
65
+ >
66
+ > **Note**: The demo page displays in English only. Language selection is not available in the demo due to Intlayer's runtime requirements. When you install and run truthound-dashboard locally, full multi-language support (English, Korean, and AI-translated languages) works as expected.
67
+
68
+ ## Overview
69
+ <img width="300" height="300" alt="Truthound_icon" src="https://github.com/user-attachments/assets/90d9e806-8895-45ec-97dc-f8300da4d997" />
70
+
71
+ 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.
72
+
73
+ ## Feature Comparison with GX Cloud
74
+
75
+ | Feature | GX Cloud (Paid) | truthound-dashboard |
76
+ |---------|-----------------|---------------------|
77
+ | Data Source Management | Available | Available |
78
+ | Schema Learning | Available | Available |
79
+ | Validation Execution | Available | Available |
80
+ | Validator Registry | Available | Available (150+ validators) |
81
+ | Validation History | Available | Available |
82
+ | Scheduled Validations | Available | Available |
83
+ | Slack Notifications | Available | Available |
84
+ | Email Notifications | Available | Available |
85
+ | Webhook Notifications | Available | Available |
86
+ | Drift Detection | Available | Available (5 methods) |
87
+ | Data Profiling | Available | Available |
88
+ | PII Scan | Available | Available (GDPR/CCPA/LGPD) |
89
+ | Data Masking | Available | Available (redact/hash/fake) |
90
+ | Anomaly Detection | Limited | Available (6 algorithms) |
91
+ | Data Lineage | Available | Available (3 viz options) |
92
+ | Model Monitoring | Available | Available |
93
+ | Reports & Export | Available | Available (6 formats) |
94
+ | Plugins Marketplace | Not Available | Available |
95
+ | Maintenance Tools | Limited | Available |
96
+ | Dark Mode | Available | Available |
97
+ | Multi-language | Limited | 2 languages (en, ko) + AI translation CLI |
98
+ | License | Commercial | Apache 2.0 |
99
+
100
+ ## Requirements
101
+
102
+ - Python 3.11 or higher
103
+ - truthound >= 1.0.5
104
+
105
+ ## Installation
106
+
107
+ ```bash
108
+ pip install truthound-dashboard
109
+ ```
110
+
111
+ This command automatically installs [truthound](https://github.com/seadonggyun4/truthound) as a dependency.
112
+
113
+ ## Usage
114
+
115
+ ```bash
116
+ # Start the dashboard server (default port: 8765)
117
+ truthound serve
118
+
119
+ # Specify a custom port
120
+ truthound serve --port 9000
121
+
122
+ # Enable development mode with hot reload
123
+ truthound serve --reload
124
+
125
+ # Disable automatic browser opening
126
+ truthound serve --no-browser
127
+ ```
128
+
129
+ The dashboard interface is accessible at `http://localhost:8765`.
130
+
131
+ ## Implemented Features
132
+
133
+ ### Data Source Management
134
+ - Supported file formats: CSV, Parquet, JSON
135
+ - Supported databases (13 connectors): PostgreSQL, MySQL, SQLite, BigQuery, Snowflake, Redshift, Databricks, Oracle, SQL Server, Spark
136
+ - Connection validation and management UI
137
+ - Dynamic configuration forms per source type
138
+
139
+ ### Schema Management
140
+ - Automated schema generation using `th.learn`
141
+ - Manual schema editing in YAML format
142
+
143
+ ### Validation
144
+ - On-demand validation execution using `th.check`
145
+ - 150+ validators across 15 categories (schema, completeness, uniqueness, distribution, string, datetime, aggregate, cross-table, multi-column, query, table, geospatial, drift, anomaly, privacy)
146
+ - Per-validator parameter configuration with UI
147
+ - Persistent storage of validation results
148
+ - Issue classification by severity (Critical, High, Medium, Low)
149
+ - Advanced options: column filtering, min_severity, parallel execution, SQL pushdown
150
+ - ML-based caching layer for expensive operations
151
+
152
+ ### Anomaly Detection
153
+ - 6 ML algorithms: IsolationForest, LocalOutlierFactor, DBSCAN, OneClassSVM, EllipticEnvelope, Ensemble
154
+ - Streaming anomaly detection support
155
+ - Explainability with feature contribution analysis
156
+ - Batch detection with progress tracking
157
+ - Algorithm comparison and agreement scoring
158
+
159
+ ### Drift Monitoring
160
+ - 5 detection methods: Kolmogorov-Smirnov, Population Stability Index (PSI), Chi-Square, Jensen-Shannon, Auto
161
+ - 4 sampling strategies: Random, Stratified, Reservoir, Systematic
162
+ - Column-level distribution comparison
163
+ - Drift trend visualization and alerting
164
+ - Root cause analysis and remediation suggestions
165
+
166
+ ### Data Lineage
167
+ - Interactive lineage graph visualization (D3.js/Mermaid/Cytoscape)
168
+ - Column-level lineage tracking
169
+ - Impact analysis (upstream/downstream)
170
+ - OpenLineage standard integration
171
+ - Webhook support for lineage events
172
+ - Performance optimization with lazy loading and virtualization
173
+
174
+ ### Schema Evolution
175
+ - Automatic schema change detection
176
+ - Breaking vs non-breaking change classification
177
+ - Version timeline and comparison
178
+ - Change notification support
179
+
180
+ ### Profile Comparison
181
+ - Profile-to-profile comparison
182
+ - Time-series trend analysis
183
+ - Quality metric visualization (null%, unique%)
184
+ - Historical profile snapshots
185
+
186
+ ### Rule Suggestions
187
+ - Profile-based automatic rule generation
188
+ - Confidence scoring (high/medium/low)
189
+ - Bulk rule application
190
+ - Category-based filtering (completeness, uniqueness, distribution, string, datetime)
191
+
192
+ ### Reports & Export
193
+ - 6 formats: HTML, PDF, CSV, JSON, Excel, Markdown
194
+ - Customizable themes for HTML/PDF reports
195
+ - Statistics dashboard (total reports, size, downloads, avg generation time)
196
+ - Search and filtering (by name, format, status)
197
+ - Report lifecycle management with automatic expiration
198
+ - Download tracking and batch cleanup
199
+ - Integration with validation schedules and notifications
200
+
201
+ ### Plugins & Extensions
202
+ - Plugin marketplace for community extensions
203
+ - 4 plugin types: Validators, Reporters, Connectors, Transformers
204
+ - 4 security levels: Trusted, Verified, Unverified, Sandboxed
205
+ - Custom validator creation with UI (severity, category, parameters)
206
+ - Custom reporter creation with template support
207
+ - Plugin lifecycle management (install, enable, disable, uninstall)
208
+ - Filter by type and status
209
+
210
+ ### Maintenance & System Health
211
+ - Auto maintenance scheduling with enable/disable toggle
212
+ - Retention policies with configurable ranges:
213
+ - Validation history: 1-365 days
214
+ - Profile snapshots: 1-100 per source
215
+ - Notification logs: 1-365 days
216
+ - Manual operations: cleanup, vacuum, cache clear
217
+ - Cache statistics monitoring (total, valid, expired entries, hit rate)
218
+ - Database optimization (VACUUM/ANALYZE)
219
+ - Real-time configuration updates
220
+
221
+ ### Validation History
222
+ - Historical record of validation results
223
+ - Trend visualization
224
+ - Result versioning with 4 strategies (Incremental, Semantic, Timestamp, GitLike)
225
+ - Version comparison and rollback support
226
+
227
+ ### Scheduling
228
+ - Cron-based scheduling using APScheduler
229
+ - Schedule controls: pause, resume, immediate execution
230
+
231
+ ### Notifications
232
+ - Supported channels: Slack, Email, Webhook
233
+ - Configurable notification rules based on validation outcomes
234
+ - Notification delivery logs
235
+
236
+ ### Advanced Notifications
237
+ - 9 provider channels: Slack, Email, Webhook, Discord, Telegram, PagerDuty, OpsGenie, Microsoft Teams, GitHub
238
+ - Rule-based routing with 11+ rule types (severity, issue count, pass rate, time window, tag, data asset, metadata, status, error)
239
+ - Deduplication: 4 window strategies (Sliding, Tumbling, Session, Adaptive), 6 policies
240
+ - Throttling: 5 methods (TokenBucket, LeakyBucket, FixedWindow, SlidingWindow, Adaptive)
241
+ - Multi-level escalation with state machine
242
+ - Incident management and acknowledgment
243
+
244
+ ### Unified Alerts
245
+ - Cross-feature alert aggregation (validation, drift, anomaly, schema changes)
246
+ - Severity-based filtering (Critical, High, Medium, Low)
247
+ - Alert correlation and grouping
248
+ - Action tracking (acknowledged, resolved)
249
+
250
+ ### Cross-Table Validation
251
+ - Referential integrity checks
252
+ - Foreign key validation
253
+ - SQL-based cross-table queries
254
+ - Automated trigger configuration
255
+
256
+ ### Model Monitoring
257
+ - ML model performance tracking
258
+ - Metric monitoring (accuracy, precision, recall, F1, AUC-ROC)
259
+ - Alert rules for model degradation
260
+ - Model registration and versioning
261
+
262
+ ### Automated Triggers
263
+ - Data change detection triggers
264
+ - Composite triggers (AND/OR combinations)
265
+ - Cron-based scheduling
266
+ - Interval-based execution
267
+ - Preview and testing support
268
+
269
+ ### Drift Detection
270
+ - Dataset comparison using `th.compare`
271
+ - 5 detection methods: Kolmogorov-Smirnov (KS), Population Stability Index (PSI), Chi-Square, Jensen-Shannon (JS), Auto
272
+ - 4 sampling strategies: Random, Stratified, Reservoir, Systematic
273
+ - Column-level distribution comparison with visualizations
274
+ - Drift trend monitoring and alerting
275
+ - Root cause analysis and remediation suggestions
276
+ - Large dataset support with chunked processing
277
+
278
+ ### Data Profiling
279
+ - Statistical profiling using `th.profile`
280
+ - Column-level statistics
281
+ - Sample size configuration for large datasets
282
+
283
+ ### PII Scan
284
+ - Personal data detection using `th.scan`
285
+ - Supported PII types: email, phone, SSN, credit card, IP address, and more
286
+ - Regulation compliance: GDPR, CCPA, LGPD
287
+ - Configurable confidence threshold
288
+
289
+ ### Data Masking
290
+ - Sensitive data protection using `th.mask`
291
+ - Three masking strategies: redact (asterisks), hash (SHA256), fake (realistic data)
292
+ - Auto-detection of PII columns
293
+ - Multiple output formats: CSV, Parquet, JSON
294
+
295
+ ### Business Glossary
296
+ - Business term definitions with categories
297
+ - Term relationships (synonyms, related terms)
298
+ - Term lifecycle management (draft, approved, deprecated)
299
+ - Change history tracking
300
+
301
+ ### Data Catalog
302
+ - Data asset registration (tables, files, APIs)
303
+ - Column-level metadata management
304
+ - Column-to-term mapping
305
+ - Quality score tracking
306
+ - Sensitivity classification (public, internal, confidential, restricted)
307
+ - Custom tagging
308
+
309
+ ### Collaboration
310
+ - Comments on terms, assets, and columns
311
+ - Activity feed for tracking changes
312
+
313
+ ### User Interface
314
+ - Light and dark theme support with system preference detection
315
+ - Internationalization: 2 built-in languages (English, Korean)
316
+ - AI-powered translation CLI to expand to 15+ languages (OpenAI, Anthropic, Mistral, Ollama)
317
+ - Type-safe translations using Intlayer framework
318
+ - Comprehensive E2E test coverage (197+ tests) for all features
319
+
320
+ ## Internationalization
321
+
322
+ truthound-dashboard implements internationalization using [Intlayer](https://intlayer.org), a modern i18n framework that provides type-safe translations with component-level content declaration.
323
+
324
+ ### Built-in Languages
325
+
326
+ The dashboard ships with **2 fully translated languages**:
327
+ - **English (en)** - Complete UI translation
328
+ - **Korean (ko)** - Complete UI translation
329
+
330
+ These languages are immediately available without additional configuration or setup.
331
+
332
+ ### Extending Language Support
333
+
334
+ 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.
335
+
336
+ **Note:** Additional languages are not included in the default installation and must be generated using the translation CLI before deployment.
337
+
338
+ #### Supported AI Providers
339
+
340
+ | Provider | Environment Variable | Models |
341
+ |----------|---------------------|--------|
342
+ | OpenAI | `OPENAI_API_KEY` | GPT-4o, GPT-4o-mini, GPT-4, GPT-3.5 |
343
+ | Anthropic | `ANTHROPIC_API_KEY` | Claude Sonnet 4, Claude Opus 4 |
344
+ | Mistral | `MISTRAL_API_KEY` | Mistral Large, Mistral Small |
345
+ | Ollama | Not required | Llama 3.2, Mistral, Qwen (local execution) |
346
+
347
+ #### Configuration
348
+
349
+ API credentials are configured through environment variables. This approach ensures that sensitive credentials are not exposed in command history or application logs.
350
+
351
+ **Temporary Session Configuration**
352
+
353
+ ```bash
354
+ # OpenAI
355
+ export OPENAI_API_KEY=sk-xxxxxxxxxxxx
356
+ truthound translate -l fr -p openai
357
+
358
+ # Anthropic
359
+ export ANTHROPIC_API_KEY=sk-ant-xxxxxxxxxxxx
360
+ truthound translate -l fr -p anthropic
361
+
362
+ # Mistral
363
+ export MISTRAL_API_KEY=xxxxxxxxxxxx
364
+ truthound translate -l fr -p mistral
365
+ ```
366
+
367
+ **Persistent Configuration**
368
+
369
+ ```bash
370
+ # Add to shell configuration file (~/.bashrc or ~/.zshrc)
371
+ echo 'export OPENAI_API_KEY=sk-xxxxxxxxxxxx' >> ~/.zshrc
372
+ source ~/.zshrc
373
+ ```
374
+
375
+ **Inline Configuration**
376
+
377
+ ```bash
378
+ OPENAI_API_KEY=sk-xxx truthound translate -l fr -p openai
379
+ ```
380
+
381
+ #### Usage Examples
382
+
383
+ ```bash
384
+ # Translate to French using OpenAI
385
+ truthound translate -l fr -p openai
386
+
387
+ # Translate to multiple languages
388
+ truthound translate -l ja,zh,de,fr -p anthropic
389
+
390
+ # Use local Ollama (no API key required)
391
+ truthound translate -l fr -p ollama
392
+
393
+ # Auto-detect available provider
394
+ truthound translate -l fr
395
+
396
+ # Preview files without making changes
397
+ truthound translate -l fr --dry-run
398
+
399
+ # List available providers and their status
400
+ truthound translate --list-providers
401
+
402
+ # List supported language codes
403
+ truthound translate --list-languages
404
+ ```
405
+
406
+ #### Security Considerations
407
+
408
+ | Aspect | Risk Level | Description |
409
+ |--------|------------|-------------|
410
+ | Network transmission | None | API keys are used locally and transmitted only to the selected provider |
411
+ | Source code exposure | None | Credentials are injected via environment variables |
412
+ | Build artifact inclusion | None | Only translated content is persisted; credentials are not stored |
413
+ | API communication | Standard | Requests are made directly to provider endpoints using user credentials |
414
+
415
+ #### Supported Languages
416
+
417
+ 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.
418
+
419
+ Execute `truthound translate --list-languages` to view the complete list with language codes.
420
+
421
+ ## Technology Stack
422
+
423
+ **Backend**
424
+ - FastAPI
425
+ - SQLAlchemy 2.0 (async)
426
+ - SQLite with aiosqlite
427
+ - APScheduler
428
+ - Pydantic 2.x
429
+
430
+ **Frontend**
431
+ - React 18
432
+ - TypeScript
433
+ - Vite
434
+ - TailwindCSS
435
+ - shadcn/ui
436
+ - Zustand
437
+ - [Intlayer](https://intlayer.org) (internationalization)
438
+
439
+ ## Development Setup
440
+
441
+ ```bash
442
+ # Clone the repository
443
+ git clone https://github.com/seadonggyun4/truthound-dashboard
444
+ cd truthound-dashboard
445
+
446
+ # Install backend dependencies
447
+ pip install -e ".[dev]"
448
+
449
+ # Start the backend server
450
+ truthound serve --reload
451
+
452
+ # In a separate terminal, install frontend dependencies
453
+ cd frontend
454
+ npm install
455
+
456
+ # Start the frontend development server
457
+ npm run dev
458
+
459
+ # Alternative: run with mock API (backend not required)
460
+ npm run dev:mock
461
+ ```
462
+
463
+ ## Preview with Mock Data
464
+
465
+ To explore the dashboard interface without configuring a backend or data sources, the repository includes a mock mode that simulates API responses using [Mock Service Worker (MSW)](https://mswjs.io/).
466
+
467
+ ```bash
468
+ # Clone the repository
469
+ git clone https://github.com/seadonggyun4/truthound-dashboard
470
+ cd truthound-dashboard/frontend
471
+
472
+ # Install dependencies
473
+ npm install
474
+
475
+ # Start the development server with mock data
476
+ npm run dev:mock
477
+ ```
478
+
479
+ The mock server provides realistic sample data for all dashboard features, enabling evaluation of the user interface and workflow without external dependencies.
480
+
481
+ ## Testing
482
+
483
+ ```bash
484
+ # Run tests
485
+ pytest
486
+
487
+ # Run tests with coverage report
488
+ pytest --cov=truthound_dashboard
489
+ ```
490
+
491
+ ## Documentation
492
+
493
+ Full documentation is available at [https://truthound.netlify.app](https://truthound.netlify.app).
494
+
495
+ - [Getting Started](./docs/getting-started.md)
496
+ - [Features](./docs/features.md)
497
+ - [API Reference](./docs/api.md)
498
+ - [Configuration](./docs/configuration.md)
499
+
500
+ ## Related Projects
501
+
502
+ - [truthound](https://github.com/seadonggyun4/truthound) - Core data validation library
503
+ - [truthound-orchestration](https://github.com/seadonggyun4/truthound-orchestration) - Pipeline orchestration integration
504
+
505
+ ## License
506
+
507
+ This project is licensed under the Apache License 2.0.