truthound-dashboard 1.3.0__tar.gz → 1.4.0__tar.gz

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