truthound-dashboard 1.3.0__py3-none-any.whl → 1.4.0__py3-none-any.whl

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 (169) hide show
  1. truthound_dashboard/api/alerts.py +258 -0
  2. truthound_dashboard/api/anomaly.py +1302 -0
  3. truthound_dashboard/api/cross_alerts.py +352 -0
  4. truthound_dashboard/api/deps.py +143 -0
  5. truthound_dashboard/api/drift_monitor.py +540 -0
  6. truthound_dashboard/api/lineage.py +1151 -0
  7. truthound_dashboard/api/maintenance.py +363 -0
  8. truthound_dashboard/api/middleware.py +373 -1
  9. truthound_dashboard/api/model_monitoring.py +805 -0
  10. truthound_dashboard/api/notifications_advanced.py +2452 -0
  11. truthound_dashboard/api/plugins.py +2096 -0
  12. truthound_dashboard/api/profile.py +211 -14
  13. truthound_dashboard/api/reports.py +853 -0
  14. truthound_dashboard/api/router.py +147 -0
  15. truthound_dashboard/api/rule_suggestions.py +310 -0
  16. truthound_dashboard/api/schema_evolution.py +231 -0
  17. truthound_dashboard/api/sources.py +47 -3
  18. truthound_dashboard/api/triggers.py +190 -0
  19. truthound_dashboard/api/validations.py +13 -0
  20. truthound_dashboard/api/validators.py +333 -4
  21. truthound_dashboard/api/versioning.py +309 -0
  22. truthound_dashboard/api/websocket.py +301 -0
  23. truthound_dashboard/core/__init__.py +27 -0
  24. truthound_dashboard/core/anomaly.py +1395 -0
  25. truthound_dashboard/core/anomaly_explainer.py +633 -0
  26. truthound_dashboard/core/cache.py +206 -0
  27. truthound_dashboard/core/cached_services.py +422 -0
  28. truthound_dashboard/core/charts.py +352 -0
  29. truthound_dashboard/core/connections.py +1069 -42
  30. truthound_dashboard/core/cross_alerts.py +837 -0
  31. truthound_dashboard/core/drift_monitor.py +1477 -0
  32. truthound_dashboard/core/drift_sampling.py +669 -0
  33. truthound_dashboard/core/i18n/__init__.py +42 -0
  34. truthound_dashboard/core/i18n/detector.py +173 -0
  35. truthound_dashboard/core/i18n/messages.py +564 -0
  36. truthound_dashboard/core/lineage.py +971 -0
  37. truthound_dashboard/core/maintenance.py +443 -5
  38. truthound_dashboard/core/model_monitoring.py +1043 -0
  39. truthound_dashboard/core/notifications/channels.py +1020 -1
  40. truthound_dashboard/core/notifications/deduplication/__init__.py +143 -0
  41. truthound_dashboard/core/notifications/deduplication/policies.py +274 -0
  42. truthound_dashboard/core/notifications/deduplication/service.py +400 -0
  43. truthound_dashboard/core/notifications/deduplication/stores.py +2365 -0
  44. truthound_dashboard/core/notifications/deduplication/strategies.py +422 -0
  45. truthound_dashboard/core/notifications/dispatcher.py +43 -0
  46. truthound_dashboard/core/notifications/escalation/__init__.py +149 -0
  47. truthound_dashboard/core/notifications/escalation/backends.py +1384 -0
  48. truthound_dashboard/core/notifications/escalation/engine.py +429 -0
  49. truthound_dashboard/core/notifications/escalation/models.py +336 -0
  50. truthound_dashboard/core/notifications/escalation/scheduler.py +1187 -0
  51. truthound_dashboard/core/notifications/escalation/state_machine.py +330 -0
  52. truthound_dashboard/core/notifications/escalation/stores.py +2896 -0
  53. truthound_dashboard/core/notifications/events.py +49 -0
  54. truthound_dashboard/core/notifications/metrics/__init__.py +115 -0
  55. truthound_dashboard/core/notifications/metrics/base.py +528 -0
  56. truthound_dashboard/core/notifications/metrics/collectors.py +583 -0
  57. truthound_dashboard/core/notifications/routing/__init__.py +169 -0
  58. truthound_dashboard/core/notifications/routing/combinators.py +184 -0
  59. truthound_dashboard/core/notifications/routing/config.py +375 -0
  60. truthound_dashboard/core/notifications/routing/config_parser.py +867 -0
  61. truthound_dashboard/core/notifications/routing/engine.py +382 -0
  62. truthound_dashboard/core/notifications/routing/expression_engine.py +1269 -0
  63. truthound_dashboard/core/notifications/routing/jinja2_engine.py +774 -0
  64. truthound_dashboard/core/notifications/routing/rules.py +625 -0
  65. truthound_dashboard/core/notifications/routing/validator.py +678 -0
  66. truthound_dashboard/core/notifications/service.py +2 -0
  67. truthound_dashboard/core/notifications/stats_aggregator.py +850 -0
  68. truthound_dashboard/core/notifications/throttling/__init__.py +83 -0
  69. truthound_dashboard/core/notifications/throttling/builder.py +311 -0
  70. truthound_dashboard/core/notifications/throttling/stores.py +1859 -0
  71. truthound_dashboard/core/notifications/throttling/throttlers.py +633 -0
  72. truthound_dashboard/core/openlineage.py +1028 -0
  73. truthound_dashboard/core/plugins/__init__.py +39 -0
  74. truthound_dashboard/core/plugins/docs/__init__.py +39 -0
  75. truthound_dashboard/core/plugins/docs/extractor.py +703 -0
  76. truthound_dashboard/core/plugins/docs/renderers.py +804 -0
  77. truthound_dashboard/core/plugins/hooks/__init__.py +63 -0
  78. truthound_dashboard/core/plugins/hooks/decorators.py +367 -0
  79. truthound_dashboard/core/plugins/hooks/manager.py +403 -0
  80. truthound_dashboard/core/plugins/hooks/protocols.py +265 -0
  81. truthound_dashboard/core/plugins/lifecycle/__init__.py +41 -0
  82. truthound_dashboard/core/plugins/lifecycle/hot_reload.py +584 -0
  83. truthound_dashboard/core/plugins/lifecycle/machine.py +419 -0
  84. truthound_dashboard/core/plugins/lifecycle/states.py +266 -0
  85. truthound_dashboard/core/plugins/loader.py +504 -0
  86. truthound_dashboard/core/plugins/registry.py +810 -0
  87. truthound_dashboard/core/plugins/reporter_executor.py +588 -0
  88. truthound_dashboard/core/plugins/sandbox/__init__.py +59 -0
  89. truthound_dashboard/core/plugins/sandbox/code_validator.py +243 -0
  90. truthound_dashboard/core/plugins/sandbox/engines.py +770 -0
  91. truthound_dashboard/core/plugins/sandbox/protocols.py +194 -0
  92. truthound_dashboard/core/plugins/sandbox.py +617 -0
  93. truthound_dashboard/core/plugins/security/__init__.py +68 -0
  94. truthound_dashboard/core/plugins/security/analyzer.py +535 -0
  95. truthound_dashboard/core/plugins/security/policies.py +311 -0
  96. truthound_dashboard/core/plugins/security/protocols.py +296 -0
  97. truthound_dashboard/core/plugins/security/signing.py +842 -0
  98. truthound_dashboard/core/plugins/security.py +446 -0
  99. truthound_dashboard/core/plugins/validator_executor.py +401 -0
  100. truthound_dashboard/core/plugins/versioning/__init__.py +51 -0
  101. truthound_dashboard/core/plugins/versioning/constraints.py +377 -0
  102. truthound_dashboard/core/plugins/versioning/dependencies.py +541 -0
  103. truthound_dashboard/core/plugins/versioning/semver.py +266 -0
  104. truthound_dashboard/core/profile_comparison.py +601 -0
  105. truthound_dashboard/core/report_history.py +570 -0
  106. truthound_dashboard/core/reporters/__init__.py +57 -0
  107. truthound_dashboard/core/reporters/base.py +296 -0
  108. truthound_dashboard/core/reporters/csv_reporter.py +155 -0
  109. truthound_dashboard/core/reporters/html_reporter.py +598 -0
  110. truthound_dashboard/core/reporters/i18n/__init__.py +65 -0
  111. truthound_dashboard/core/reporters/i18n/base.py +494 -0
  112. truthound_dashboard/core/reporters/i18n/catalogs.py +930 -0
  113. truthound_dashboard/core/reporters/json_reporter.py +160 -0
  114. truthound_dashboard/core/reporters/junit_reporter.py +233 -0
  115. truthound_dashboard/core/reporters/markdown_reporter.py +207 -0
  116. truthound_dashboard/core/reporters/pdf_reporter.py +209 -0
  117. truthound_dashboard/core/reporters/registry.py +272 -0
  118. truthound_dashboard/core/rule_generator.py +2088 -0
  119. truthound_dashboard/core/scheduler.py +822 -12
  120. truthound_dashboard/core/schema_evolution.py +858 -0
  121. truthound_dashboard/core/services.py +152 -9
  122. truthound_dashboard/core/statistics.py +718 -0
  123. truthound_dashboard/core/streaming_anomaly.py +883 -0
  124. truthound_dashboard/core/triggers/__init__.py +45 -0
  125. truthound_dashboard/core/triggers/base.py +226 -0
  126. truthound_dashboard/core/triggers/evaluators.py +609 -0
  127. truthound_dashboard/core/triggers/factory.py +363 -0
  128. truthound_dashboard/core/unified_alerts.py +870 -0
  129. truthound_dashboard/core/validation_limits.py +509 -0
  130. truthound_dashboard/core/versioning.py +709 -0
  131. truthound_dashboard/core/websocket/__init__.py +59 -0
  132. truthound_dashboard/core/websocket/manager.py +512 -0
  133. truthound_dashboard/core/websocket/messages.py +130 -0
  134. truthound_dashboard/db/__init__.py +30 -0
  135. truthound_dashboard/db/models.py +3375 -3
  136. truthound_dashboard/main.py +22 -0
  137. truthound_dashboard/schemas/__init__.py +396 -1
  138. truthound_dashboard/schemas/anomaly.py +1258 -0
  139. truthound_dashboard/schemas/base.py +4 -0
  140. truthound_dashboard/schemas/cross_alerts.py +334 -0
  141. truthound_dashboard/schemas/drift_monitor.py +890 -0
  142. truthound_dashboard/schemas/lineage.py +428 -0
  143. truthound_dashboard/schemas/maintenance.py +154 -0
  144. truthound_dashboard/schemas/model_monitoring.py +374 -0
  145. truthound_dashboard/schemas/notifications_advanced.py +1363 -0
  146. truthound_dashboard/schemas/openlineage.py +704 -0
  147. truthound_dashboard/schemas/plugins.py +1293 -0
  148. truthound_dashboard/schemas/profile.py +420 -34
  149. truthound_dashboard/schemas/profile_comparison.py +242 -0
  150. truthound_dashboard/schemas/reports.py +285 -0
  151. truthound_dashboard/schemas/rule_suggestion.py +434 -0
  152. truthound_dashboard/schemas/schema_evolution.py +164 -0
  153. truthound_dashboard/schemas/source.py +117 -2
  154. truthound_dashboard/schemas/triggers.py +511 -0
  155. truthound_dashboard/schemas/unified_alerts.py +223 -0
  156. truthound_dashboard/schemas/validation.py +25 -1
  157. truthound_dashboard/schemas/validators/__init__.py +11 -0
  158. truthound_dashboard/schemas/validators/base.py +151 -0
  159. truthound_dashboard/schemas/versioning.py +152 -0
  160. truthound_dashboard/static/index.html +2 -2
  161. {truthound_dashboard-1.3.0.dist-info → truthound_dashboard-1.4.0.dist-info}/METADATA +142 -18
  162. truthound_dashboard-1.4.0.dist-info/RECORD +239 -0
  163. truthound_dashboard/static/assets/index-BCA8H1hO.js +0 -574
  164. truthound_dashboard/static/assets/index-BNsSQ2fN.css +0 -1
  165. truthound_dashboard/static/assets/unmerged_dictionaries-CsJWCRx9.js +0 -1
  166. truthound_dashboard-1.3.0.dist-info/RECORD +0 -110
  167. {truthound_dashboard-1.3.0.dist-info → truthound_dashboard-1.4.0.dist-info}/WHEEL +0 -0
  168. {truthound_dashboard-1.3.0.dist-info → truthound_dashboard-1.4.0.dist-info}/entry_points.txt +0 -0
  169. {truthound_dashboard-1.3.0.dist-info → truthound_dashboard-1.4.0.dist-info}/licenses/LICENSE +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: truthound-dashboard
3
- Version: 1.3.0
3
+ Version: 1.4.0
4
4
  Summary: Open-source data quality dashboard - GX Cloud alternative
5
5
  Author-email: Truthound Team <team@truthound.dev>
6
6
  License-Expression: Apache-2.0
@@ -23,6 +23,7 @@ Requires-Dist: apscheduler>=3.10.0
23
23
  Requires-Dist: cryptography>=41.0.0
24
24
  Requires-Dist: fastapi>=0.110.0
25
25
  Requires-Dist: httpx>=0.26.0
26
+ Requires-Dist: jinja2>=3.1.0
26
27
  Requires-Dist: polars>=0.20.0
27
28
  Requires-Dist: pydantic-settings>=2.1.0
28
29
  Requires-Dist: pydantic>=2.5.0
@@ -40,6 +41,8 @@ Requires-Dist: pytest-asyncio>=0.21.0; extra == 'dev'
40
41
  Requires-Dist: pytest-cov>=4.1.0; extra == 'dev'
41
42
  Requires-Dist: pytest>=7.4.0; extra == 'dev'
42
43
  Requires-Dist: ruff>=0.1.0; extra == 'dev'
44
+ Provides-Extra: redis
45
+ Requires-Dist: redis>=5.0.0; extra == 'redis'
43
46
  Provides-Extra: translate
44
47
  Description-Content-Type: text/markdown
45
48
 
@@ -76,14 +79,18 @@ truthound-dashboard provides a graphical interface for managing data sources, ex
76
79
  | Slack Notifications | Available | Available |
77
80
  | Email Notifications | Available | Available |
78
81
  | Webhook Notifications | Available | Available |
79
- | Drift Detection | Available | Available (8 methods) |
82
+ | Drift Detection | Available | Available (5 methods) |
80
83
  | Data Profiling | Available | Available |
81
84
  | PII Scan | Available | Available (GDPR/CCPA/LGPD) |
82
85
  | Data Masking | Available | Available (redact/hash/fake) |
83
- | Business Glossary | Available | Available |
84
- | Data Catalog | Available | Available |
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 |
85
92
  | Dark Mode | Available | Available |
86
- | Multi-language (en/ko) | Not Available | Available |
93
+ | Multi-language | Limited | 2 languages (en, ko) + AI translation CLI |
87
94
  | License | Commercial | Apache 2.0 |
88
95
 
89
96
  ## Requirements
@@ -120,9 +127,10 @@ The dashboard interface is accessible at `http://localhost:8765`.
120
127
  ## Implemented Features
121
128
 
122
129
  ### Data Source Management
123
- - Supported file formats: CSV, Parquet
124
- - Supported databases: PostgreSQL, MySQL, Snowflake, BigQuery
125
- - Connection validation
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
126
134
 
127
135
  ### Schema Management
128
136
  - Automated schema generation using `th.learn`
@@ -135,10 +143,82 @@ The dashboard interface is accessible at `http://localhost:8765`.
135
143
  - Persistent storage of validation results
136
144
  - Issue classification by severity (Critical, High, Medium, Low)
137
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
138
216
 
139
217
  ### Validation History
140
218
  - Historical record of validation results
141
219
  - Trend visualization
220
+ - Result versioning with 4 strategies (Incremental, Semantic, Timestamp, GitLike)
221
+ - Version comparison and rollback support
142
222
 
143
223
  ### Scheduling
144
224
  - Cron-based scheduling using APScheduler
@@ -149,11 +229,47 @@ The dashboard interface is accessible at `http://localhost:8765`.
149
229
  - Configurable notification rules based on validation outcomes
150
230
  - Notification delivery logs
151
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
+
152
265
  ### Drift Detection
153
266
  - Dataset comparison using `th.compare`
154
- - 8 detection methods: auto, ks, psi, chi2, js, kl, wasserstein, cvm, anderson
155
- - Multiple testing correction: bonferroni, holm, bh
156
- - Column-level drift analysis with statistical metrics
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
157
273
 
158
274
  ### Data Profiling
159
275
  - Statistical profiling using `th.profile`
@@ -191,21 +307,29 @@ The dashboard interface is accessible at `http://localhost:8765`.
191
307
  - Activity feed for tracking changes
192
308
 
193
309
  ### User Interface
194
- - Light and dark theme support
195
- - Internationalization: English, Korean
196
- - AI-powered translation for additional languages
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
197
315
 
198
316
  ## Internationalization
199
317
 
200
- truthound-dashboard implements internationalization using [Intlayer](https://intlayer.org), a modern i18n framework that provides type-safe translations with component-level content declaration. This architecture enables seamless multi-language support while maintaining code maintainability.
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
201
321
 
202
- ### Default Languages
322
+ The dashboard ships with **2 fully translated languages**:
323
+ - **English (en)** - Complete UI translation
324
+ - **Korean (ko)** - Complete UI translation
203
325
 
204
- The application ships with English and Korean translations. These languages are immediately available without additional configuration.
326
+ These languages are immediately available without additional configuration or setup.
205
327
 
206
328
  ### Extending Language Support
207
329
 
208
- For projects requiring additional language support, the `translate` command enables AI-powered translation of the user interface.
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.
209
333
 
210
334
  #### Supported AI Providers
211
335
 
@@ -0,0 +1,239 @@
1
+ truthound_dashboard/__init__.py,sha256=bzN84Y01SlEh5F8KkV-fGqPR82_tA0leAP6PyCXk8PY,504
2
+ truthound_dashboard/__main__.py,sha256=Zq98OmYZm4NJ7n2yG5Qr07fkSiwMEQQE20gG1fpW7wo,133
3
+ truthound_dashboard/cli.py,sha256=1x7AN2g9H5pZ4sG2PakCpSdBYnviknJv7LRIauAPzgU,19348
4
+ truthound_dashboard/config.py,sha256=fBSxoGitTe-9SeKkkQHtqNTcVxws5fvJ0YhF0EMuqG4,4089
5
+ truthound_dashboard/main.py,sha256=CuKB0Fueca4hfXLD8ONcDg6xnie71GToy0LjDiFZJrw,8847
6
+ truthound_dashboard/api/__init__.py,sha256=rnbuYRDgh0GcqkR-d9Trkc8L0O34K4tMH6flyeQ9U98,361
7
+ truthound_dashboard/api/alerts.py,sha256=uqrJJbQZZsjI7J3KYGANJDjhyAZP3v6nUhDR-UsU02o,7788
8
+ truthound_dashboard/api/anomaly.py,sha256=Isf3aoyoiLeZWjc-opPaMI0yG6WCehlfZita-jRsrjU,41482
9
+ truthound_dashboard/api/catalog.py,sha256=qQlsM4ubzjvI6rXwSY5214C-W93Ai-Xu1YjGVs1OoxE,10928
10
+ truthound_dashboard/api/collaboration.py,sha256=DxfpdUl_e8NfvDzv6-uwR32NN3Us7lLkzcif8RhvKyg,4720
11
+ truthound_dashboard/api/cross_alerts.py,sha256=e4HbJQbPKi6syaXqNGa4a9s0ATqtIUy36q59gq_aimk,9869
12
+ truthound_dashboard/api/deps.py,sha256=8rkHfe4zWEyv6CJCmXVn41t2zJNdS0KUvPeNoJEZ_80,8544
13
+ truthound_dashboard/api/drift.py,sha256=BYr_Iw2beKY0DNakoWTiLSEeXOnBUhmvBVvAsuewPWA,5725
14
+ truthound_dashboard/api/drift_monitor.py,sha256=BxaemeJFa4v1Q-fhmkKza9FcrX3gtuLYudZH6lVBABA,17235
15
+ truthound_dashboard/api/error_handlers.py,sha256=agovu0-CgMevgSvHh2aQnPjFpu1Wul_e67Vh9FAX_vM,8682
16
+ truthound_dashboard/api/glossary.py,sha256=Zdks7iHC9OLovgMJ28TELaET74OTQmUjP2TEwRLC8K4,10705
17
+ truthound_dashboard/api/health.py,sha256=84UPWmnS-9Fqs39SyRD2gu4QPE3ZJkaqkp5qCHkizsw,1927
18
+ truthound_dashboard/api/history.py,sha256=b6fy1pZfuwBqk3Yfeqnu8kaQcdNgWFMT7-0_29jLGOI,1792
19
+ truthound_dashboard/api/lineage.py,sha256=A8aq9zH7pDyucEstbwttyYrrbl--EWfNrUeOgqZVNtc,34982
20
+ truthound_dashboard/api/maintenance.py,sha256=amZEIGndy9bQRLaB_cPsFhfZFdaj5HzfpCnGxQU_UvM,10925
21
+ truthound_dashboard/api/mask.py,sha256=vIxTRI0LGYu49krwUS0iT4Y3maFJ6jo1QUerOdRr7LQ,4269
22
+ truthound_dashboard/api/middleware.py,sha256=JukJWCv1aCgDmkbiv8d9vlBZ1Ii_ETI_bjnCa-scnqE,32331
23
+ truthound_dashboard/api/model_monitoring.py,sha256=rIoFyg78Hnac0OXQ2fAN56WsNeFBfBKdZVaSNXPjHUs,26604
24
+ truthound_dashboard/api/notifications.py,sha256=U1_VvgzAI3x5aKRg3zces1UwpbN9g-Tt6WFaOJziNfc,16800
25
+ truthound_dashboard/api/notifications_advanced.py,sha256=sXsjrL2TJ1rAdFeo9jJb9bS9yU0KJPM1Kr-xr3uGFvc,86681
26
+ truthound_dashboard/api/plugins.py,sha256=VqzKtwHXac8D7hwwiR732fbs9r5kZVKE2E5Uy_xCBeI,64457
27
+ truthound_dashboard/api/profile.py,sha256=v422ArP9fSemE1TJZ0RaUeHUARHZp1dOYT_gqMuAbI8,8814
28
+ truthound_dashboard/api/reports.py,sha256=JgIyVPMHydIw4gO8rmAEPB6KKIqpdM84krs5udLNy-8,26526
29
+ truthound_dashboard/api/router.py,sha256=78K1oCCj2i7yO36u6yLaFv7CahrEKOuPbppPgeR1BUM,6395
30
+ truthound_dashboard/api/rule_suggestions.py,sha256=BzvMRSbuDdBAyXOZ59WJTzG3pfqEeK-emByM_LMCF78,9376
31
+ truthound_dashboard/api/rules.py,sha256=6xcE5g7w9e_mt4M_XS7egIa16zcynYmXctmyayAKICs,7453
32
+ truthound_dashboard/api/scan.py,sha256=ew2NYqq_lpl0mMA6CE9ajqViUSgjLiR1oGtRQsyvFTw,4827
33
+ truthound_dashboard/api/schedules.py,sha256=NMLU0szgZ2lGvVGuSJuEACZvc2qoeN65H-d2ANprj6E,8716
34
+ truthound_dashboard/api/schema_evolution.py,sha256=CR0l28KcU6jq9rlxRak-huDFmdNoTtJkxjsMZtnjzv4,6292
35
+ truthound_dashboard/api/schemas.py,sha256=vo9_X9nW2mn1NQKVu5-UZWV6T9STz5y4XIiJzSeyl1Y,4389
36
+ truthound_dashboard/api/sources.py,sha256=MNE2_ip-gdqbuwxKBe0AyQWGufimaS-pm2ljnr9u9xo,7171
37
+ truthound_dashboard/api/triggers.py,sha256=WA1mVOC7MyZEqR2ef6k-gRciwBFpMOK7L4BL0rT188o,5347
38
+ truthound_dashboard/api/validations.py,sha256=SKh4JmCwnIstrGWRyF0vk_atkoESd1t-oM5a5Wr-nU0,5375
39
+ truthound_dashboard/api/validators.py,sha256=gtiNGXhdIDpx0yUuZ0eED0INATNLio-_J4vv8J6A-PM,13246
40
+ truthound_dashboard/api/versioning.py,sha256=OpONUqKtbR13taFD0kQ4rZevcWLpe1-mdTL_27dUCiI,9951
41
+ truthound_dashboard/api/websocket.py,sha256=juc16AH9ZgG39IG8doYMBN5l_3ighlJ1L2RQIXNjMg0,8813
42
+ truthound_dashboard/core/__init__.py,sha256=Pw3Ldnu1Okaztp7G0yZq5sbJaouiG_DOhMA1dhEAUbs,7693
43
+ truthound_dashboard/core/anomaly.py,sha256=RRHN6D1xB-Gi8TluftLlZ_YwEtVFy2Vz5mONcBAjraA,46743
44
+ truthound_dashboard/core/anomaly_explainer.py,sha256=VDU7zGH4I59g1jZEgZ8opNMMmW5Cy_GLEHmE4NmJ9oU,22637
45
+ truthound_dashboard/core/base.py,sha256=Jp2NFNCacIt2DStGOSvyUYnx1wV-FqDkX9gLroCbo5I,5293
46
+ truthound_dashboard/core/cache.py,sha256=6LBvu-gdDoGylE2H7_-i-JvlXoQuKPwbXmcdGdAGfmk,21007
47
+ truthound_dashboard/core/cached_services.py,sha256=VwZ9qbg5ljyIbF3Ql7fpV6T3waWzYxATPmtC1dQQ7qk,11729
48
+ truthound_dashboard/core/charts.py,sha256=JzhVVMowR4znoXLqKglLBYiwEdUbKGDQ8HFV5PKbv-Q,10226
49
+ truthound_dashboard/core/connections.py,sha256=3Fg3IKy64pyzJPrljMl12UjAPVh7DiUci6Krnm0dvB4,47311
50
+ truthound_dashboard/core/cross_alerts.py,sha256=JB6aHIsfG4QczkdjIJ9CuITbH5J07-9lOfx789hsHW4,28666
51
+ truthound_dashboard/core/drift_monitor.py,sha256=dTXq9UqFxMcE2vTzVcwTufTtB4iU2AYUZVhLL1W3dao,54592
52
+ truthound_dashboard/core/drift_sampling.py,sha256=gLnFxmZjh7lwm_EATWcg0YE9iLq4MttyZcegufqUjxM,21835
53
+ truthound_dashboard/core/encryption.py,sha256=QMSbCPLtl9Vz2Cuxi8mZhEM_PlHzAxflGGEMRAXiByg,11130
54
+ truthound_dashboard/core/exceptions.py,sha256=VibhsFV9rtmT9VZ7gs63sZlsEGPTLP0CjxizglFUoHg,19336
55
+ truthound_dashboard/core/lineage.py,sha256=cpMI3N_Wm092Kgi3H2ADd1t86PlNMn3ZgdeIyUcx0_g,31085
56
+ truthound_dashboard/core/logging.py,sha256=Vom2C8ras6-3n7DYurKMyOqqv1L4ELq7iMTBOz_Rfyo,13392
57
+ truthound_dashboard/core/maintenance.py,sha256=bMXVJwu__KoEQJa_ti3nDxkwm0K3mYeQ1saDbq4EfyQ,33809
58
+ truthound_dashboard/core/model_monitoring.py,sha256=B5GCKsdSVzVOCIibp4aj8OYNe_TQaXcwkWR3mh73Ghw,33279
59
+ truthound_dashboard/core/openlineage.py,sha256=YFbG6NCQaLtJbydfuDZhrcFBJGafjcyB51fXHCh05yw,33136
60
+ truthound_dashboard/core/profile_comparison.py,sha256=H3ruQA0qcDBuELRyjn-U_E0Lb6p5K4sEMFKtajb_vtc,21919
61
+ truthound_dashboard/core/report_history.py,sha256=BBIQPEA68Gel8lFoh45UIA-lZUGSf3s0i17Fy_CFU3c,17534
62
+ truthound_dashboard/core/rule_generator.py,sha256=YAKU27k3U3D9j1dB1cshQNKZ6iFzgb2nsms8ugbBrvQ,80445
63
+ truthound_dashboard/core/sampling.py,sha256=K1GMFiHSDCvj1_xXVNG5Zl9rs0RfYry9Ew6u1FOHkJo,18445
64
+ truthound_dashboard/core/scheduler.py,sha256=4VZpvVnWBC9xoSd2_K-Y2GV_E-5wTzne64SVryKXVzI,40104
65
+ truthound_dashboard/core/schema_evolution.py,sha256=WhT4IrZTKcN3JWvKM3pDAWyyYaOcGxu50cd4fCrHn3w,27883
66
+ truthound_dashboard/core/services.py,sha256=QIVoV5VCGXKPj7j2UCrqTg82QgVs-IeOFnR1LrByAFA,62907
67
+ truthound_dashboard/core/statistics.py,sha256=wKTbyJJ-dDjRHrLFku6d1O-xYs7iGh_CksSiwiXFiIc,20918
68
+ truthound_dashboard/core/streaming_anomaly.py,sha256=u8G3Tb23DXVmDqjjXpRXq7w1G2g6hgb8hVOY_owPs6c,27349
69
+ truthound_dashboard/core/truthound_adapter.py,sha256=2eMuxxs1_VDLTCeajEiL6gCEXNXp3IxqZ7dJesa5aAM,36229
70
+ truthound_dashboard/core/unified_alerts.py,sha256=D0wH1KOeISvUbBLETA6mfyV3tHAkusXspUGWCKqM81w,30243
71
+ truthound_dashboard/core/validation_limits.py,sha256=ZtLp838kyV0vu3UnyBjS_jWM4_aLG5OpZorXhG-s-5o,17199
72
+ truthound_dashboard/core/versioning.py,sha256=igy-FfqeBCIc2V4SCZCWeONNOhLRTZZOwciNlkBroo4,22777
73
+ truthound_dashboard/core/i18n/__init__.py,sha256=tHatypmhKKc0Y4PQ2BWDnLLX4lWu_S1XdXkn0WX-3zw,1079
74
+ truthound_dashboard/core/i18n/detector.py,sha256=tcybGMRWuAaFwJhQ2IBoYtp3Knj8dnXttCfWywt_too,4856
75
+ truthound_dashboard/core/i18n/messages.py,sha256=dwEURuNvRwxpzbUc81aw57prEs3LXsyjRbN_OcE1gjk,24239
76
+ truthound_dashboard/core/notifications/__init__.py,sha256=zWE_fEKM-9KRxHtc68YCy9cKJLBQl1KxDrsfm6vazHM,1579
77
+ truthound_dashboard/core/notifications/base.py,sha256=9XoNRoECeFGq5bkJkorZefQ-pmwmgJxpZcWZg_PlaDc,12128
78
+ truthound_dashboard/core/notifications/channels.py,sha256=Yu3Tn8QxADxLy1DBvtrD-jwlcW-nrCb1tTX-P5MiFLw,53821
79
+ truthound_dashboard/core/notifications/dispatcher.py,sha256=U3j-3k9qsWh-ttgQaPEKXWRwWV4U5x9qWJbTr3sg4FI,15602
80
+ truthound_dashboard/core/notifications/events.py,sha256=7MiZX6V1k5F4_ub19lK3rd9G5NAWKFMUYuYxhEgTVt8,6501
81
+ truthound_dashboard/core/notifications/service.py,sha256=6QY7VOjeCgXkIIQZPmP4Yad7cw79Z9L8NSA4CnLTFkk,21229
82
+ truthound_dashboard/core/notifications/stats_aggregator.py,sha256=9DcxKgZ8xpXjyjQ1xi0JW4Q7PCRIc7vGxkm78vnJX7I,28310
83
+ truthound_dashboard/core/notifications/deduplication/__init__.py,sha256=9l7WzLANlHmInBjlpdD0K0A_TzlpCRpXEAPXN3H6w44,4194
84
+ truthound_dashboard/core/notifications/deduplication/policies.py,sha256=-dOS7sAnC_8XRWu0JgrQZuWyHL9hhVqEKNmXwtQ8RF0,8341
85
+ truthound_dashboard/core/notifications/deduplication/service.py,sha256=_3OQFsSal9QPPhfZvabwp3pr7QX6rA8s_ZQgBXQLUoE,12440
86
+ truthound_dashboard/core/notifications/deduplication/stores.py,sha256=CYRoNFjopTLy4sY1PJKZB1wwbtGC51XUflsYoor8c-4,78245
87
+ truthound_dashboard/core/notifications/deduplication/strategies.py,sha256=qjRFPtSYtMjnNUYL98YlR-g0sSePaVpjadwYKlg8nqA,13732
88
+ truthound_dashboard/core/notifications/escalation/__init__.py,sha256=AIarS19BFGa57JR26f1NXXICReWA1BOlrSS3vqDw83g,3922
89
+ truthound_dashboard/core/notifications/escalation/backends.py,sha256=oEW980bUN24V-nFzVaxucaw_jnD11g921IGBXRs7Hv0,46037
90
+ truthound_dashboard/core/notifications/escalation/engine.py,sha256=Tq2T2QBHjelRZTsk2f1NDsFMd9cRIuV6v5-5iB74U6I,13310
91
+ truthound_dashboard/core/notifications/escalation/models.py,sha256=vb1MYW0qOlZ2kr4n0R96pCRZP4fKIdYJcOSOjwUih-Y,11258
92
+ truthound_dashboard/core/notifications/escalation/scheduler.py,sha256=FCCC4BLxeml-fwmxYNG6R5r8vkX26pw3jfxco0hXjWU,40975
93
+ truthound_dashboard/core/notifications/escalation/state_machine.py,sha256=yD50FX7JVoV5cayJXYhQsy8wImyeeNQgUmjAE4bYolk,9475
94
+ truthound_dashboard/core/notifications/escalation/stores.py,sha256=FBOXhbMkQgFOwYls9QjJNundv8BQYQtuxTPOQe6HujM,99375
95
+ truthound_dashboard/core/notifications/metrics/__init__.py,sha256=pSXSeboGmhwLXTFL5WA9O9qg32zcf7B8yi_Y6I-X-4s,3382
96
+ truthound_dashboard/core/notifications/metrics/base.py,sha256=lENdy50D0C9VUvXlQHCvWItDJUOCMDi-N8TqqgRzRRE,15964
97
+ truthound_dashboard/core/notifications/metrics/collectors.py,sha256=fC2-hcFWr_u6-LxIWkTBnp2etrUMSaXcESdVv8Nu-oE,18209
98
+ truthound_dashboard/core/notifications/routing/__init__.py,sha256=9pMf_o_JkXQRKQhx0f95WI9FM53BNIJtmq6LEoUkmdo,4259
99
+ truthound_dashboard/core/notifications/routing/combinators.py,sha256=WaECXlj_cytnhzUq6ktGTEPG3Ebt2orAI2XoWFmLRAM,4970
100
+ truthound_dashboard/core/notifications/routing/config.py,sha256=sPvyP0utmtXeV44iPrrWsHmx9fo-6CGbQ4aj1paG8N0,11088
101
+ truthound_dashboard/core/notifications/routing/config_parser.py,sha256=FXTeGYVDDGW1qfed-LeBdCxfT7LFt7dlObQ0Vg_ogQU,27439
102
+ truthound_dashboard/core/notifications/routing/engine.py,sha256=1HMLJGx-k6s957V00uYMKx6l5Bi1mx1PshfKU83E13k,11652
103
+ truthound_dashboard/core/notifications/routing/expression_engine.py,sha256=MTCqVXKSgfRip_A8e-L-JU4CF1SnNxik67FFb-MOELQ,41219
104
+ truthound_dashboard/core/notifications/routing/jinja2_engine.py,sha256=ZYRvzJ9OyxpJVgXuA6VcIwX3TP4Cy5-EjQCaup7s_FQ,24260
105
+ truthound_dashboard/core/notifications/routing/rules.py,sha256=ThLykcfdJjz1v1bDz8nWXxO7tyWbYBslv7T3rXq-RsM,18228
106
+ truthound_dashboard/core/notifications/routing/validator.py,sha256=CPAKdUE2TR62xw4yQe45HANXYNCLR-uPwOd5EnAc2Is,23096
107
+ truthound_dashboard/core/notifications/throttling/__init__.py,sha256=ge_I1qCG8wLnBRzHhE66zEA7QaLp_8ascG4q9hYTQWQ,2001
108
+ truthound_dashboard/core/notifications/throttling/builder.py,sha256=qr_47Zv_Kn2kPW-BOwSVNMRB6z8jnnXd8CpSQox6Qb4,8357
109
+ truthound_dashboard/core/notifications/throttling/stores.py,sha256=iQiZ_pRdedti-6DXBhaWreNvo4GigEhxVCnzGIcI-20,61556
110
+ truthound_dashboard/core/notifications/throttling/throttlers.py,sha256=sbXmocdxBRTEGS3zreoRqtnAKN1awJnkKAmxsG1J4wM,19779
111
+ truthound_dashboard/core/phase5/__init__.py,sha256=-TNyj28lQC1YjoUtBBJj3ztksN65820Y-BWZRGIEOWA,447
112
+ truthound_dashboard/core/phase5/activity.py,sha256=cHheGj0-1zzWk_L0XdbJvTE8J24JVa3OnjP5Ulqieck,4281
113
+ truthound_dashboard/core/phase5/catalog.py,sha256=hLVaIHxe9BxNp2Tdf7Ru-IIH-xDqUOOitN17zQmLuis,24241
114
+ truthound_dashboard/core/phase5/collaboration.py,sha256=5c2UXVZDGGTkAZ3N3onagNof-hza31tE1ak8t5uM4o0,8331
115
+ truthound_dashboard/core/phase5/glossary.py,sha256=6v3hYXpCQTZ5xaFwBM0IrXMiOeW4giNldHIjdY88ROA,24751
116
+ truthound_dashboard/core/plugins/__init__.py,sha256=lVHwP95jKBrYks7uy3c7JaI1zr2tXfwx4VdWvA6si4Y,1007
117
+ truthound_dashboard/core/plugins/loader.py,sha256=-hM8jR8Dp015_0DBYGs5f65ZbQDNvVZH5AeMxDrZprU,15834
118
+ truthound_dashboard/core/plugins/registry.py,sha256=7DjHTbXItIla52_cj5_6NFQkoY2wwxbAX5y7IXVWkwk,25191
119
+ truthound_dashboard/core/plugins/reporter_executor.py,sha256=oybeBivTLcH8PX2sq775otDY3VadLbMPbtYGD8KTTiI,17187
120
+ truthound_dashboard/core/plugins/sandbox.py,sha256=gDYE5gAQzmdJ2ghfE8G4HPJtfNuUgBroKvg5-stHEqQ,17503
121
+ truthound_dashboard/core/plugins/security.py,sha256=58I0_UIe0UisZ2L28vH0N2PV4ljZKp6t--Y0gLrdAns,13378
122
+ truthound_dashboard/core/plugins/validator_executor.py,sha256=7E3LEve5PU35PQAGalvwd4e7FGITeK_vjSM8P3klQbY,12342
123
+ truthound_dashboard/core/plugins/docs/__init__.py,sha256=Zctl7Nz3YE1sEHflZHojldiJqIb7VVWp5LGcajJm-eg,739
124
+ truthound_dashboard/core/plugins/docs/extractor.py,sha256=Bt4x3tBIwapQDFkHeIqx-f_6efLfAvgvcOhly_oZQwY,24228
125
+ truthound_dashboard/core/plugins/docs/renderers.py,sha256=NYBHT12iIoug6C7uNoS2IWjyADa-QGFKedwoPRi8gGo,26618
126
+ truthound_dashboard/core/plugins/hooks/__init__.py,sha256=3_U92_JS00TdvLICWdzkotMPq22If8vtS7QhFXxrscA,1402
127
+ truthound_dashboard/core/plugins/hooks/decorators.py,sha256=8pW68xB9Qlq9DrkF1Sp8wlKFyerwPMWa4l0LhUbmAv0,11406
128
+ truthound_dashboard/core/plugins/hooks/manager.py,sha256=-jgTGGyqsQiSL6PVfQEJBaoSIiq8N5jaP_xKmlC4rmk,11945
129
+ truthound_dashboard/core/plugins/hooks/protocols.py,sha256=8SgUCLfQbniKzT8T6NNa0vVd2LXMePDCejeRhM_aIs0,7529
130
+ truthound_dashboard/core/plugins/lifecycle/__init__.py,sha256=cgg-rZj-ZOgUgLwWAtzJ5gF539WR_xd3lRbWNt2rq2w,758
131
+ truthound_dashboard/core/plugins/lifecycle/hot_reload.py,sha256=jY5gLBKt_OXF9KppuwNAcok1iVI_BYUkoBWUerpCQf4,18576
132
+ truthound_dashboard/core/plugins/lifecycle/machine.py,sha256=_m5kYdzFNat2Kkfzi66bvIv7kPim7s16KI59EOBtSxc,12959
133
+ truthound_dashboard/core/plugins/lifecycle/states.py,sha256=I1p8xV2GRyveEypwJGQ3pCjBWzCuGnX-DzBdzmyqx2w,6917
134
+ truthound_dashboard/core/plugins/sandbox/__init__.py,sha256=U6v3fnosgHZdmUci73gxP3erR78G1uVmlSd5Pu48Jl8,1272
135
+ truthound_dashboard/core/plugins/sandbox/code_validator.py,sha256=PRpScZbUmWkbbLi2pbQkkrvobQv3XTx2e2ZcuY_5Qn0,7664
136
+ truthound_dashboard/core/plugins/sandbox/engines.py,sha256=Gt14Fv1JFE9k1pOytGQEhMq49gFfYfzeaIBUsNOF0qM,24174
137
+ truthound_dashboard/core/plugins/sandbox/protocols.py,sha256=TVEnpzII81-lySsQaJmHRJ8IbY00YAbh-gemke1UBx8,7220
138
+ truthound_dashboard/core/plugins/security/__init__.py,sha256=bwqvZViNhZP7WD2htc0Zr0DG8s1EscwWuteIKF0vLVA,1440
139
+ truthound_dashboard/core/plugins/security/analyzer.py,sha256=pwj9SW_8-L-kEzJ3LLHOZrs6X0JCGVjUv7JV8mn7avk,18159
140
+ truthound_dashboard/core/plugins/security/policies.py,sha256=pjbkPJ2mvDSzi7cosY-RxzsycHTcxwDulC5eOr28sYE,11114
141
+ truthound_dashboard/core/plugins/security/protocols.py,sha256=vEtSnQLJtXdcrjLhznnf75mcE0OztHXpp9qHd1UqYRs,10362
142
+ truthound_dashboard/core/plugins/security/signing.py,sha256=6fBZ6XM348EUEclpJYZthRfIWoJ2Ho9clUkz0fFzNuE,25975
143
+ truthound_dashboard/core/plugins/versioning/__init__.py,sha256=Iw-1iVNrq9I3kfqzUI3RW2uqxyvPdJX2o9xJvpit6Vc,1063
144
+ truthound_dashboard/core/plugins/versioning/constraints.py,sha256=eGX_-KbJJ9CWc7u2UlWrBQ1VTvsW-KBBRSLBxBMJuPc,10839
145
+ truthound_dashboard/core/plugins/versioning/dependencies.py,sha256=gacGIe2xHNnps6JYhHWugUfvClhMBmpFkEVrwYV00Os,16839
146
+ truthound_dashboard/core/plugins/versioning/semver.py,sha256=8zBWYxXTpuTRsUiu6VrEkNiK3_01fQBX73JZn4LjIAg,8019
147
+ truthound_dashboard/core/reporters/__init__.py,sha256=sabF7o5vbo1iQLclWbchK9ajQGVNB61LOESU4CK6ZHw,1470
148
+ truthound_dashboard/core/reporters/base.py,sha256=9BYdWO6gUNX7bMmg9gNvuod_q-iRlRCwsaVA6vKjYqw,8652
149
+ truthound_dashboard/core/reporters/csv_reporter.py,sha256=vn6lVO3yzXveE3SYYyMN9jC4vRZKh679s6x3AOj0fIs,4921
150
+ truthound_dashboard/core/reporters/html_reporter.py,sha256=r7CScjtSQrvVJDZFbMwH7bFI1EZLF9xAAF1h5blmNbQ,18321
151
+ truthound_dashboard/core/reporters/json_reporter.py,sha256=oo_qXvili7M-EWu2rrdFXRf92fyO9Xj3cU2q6YuT8-w,4924
152
+ truthound_dashboard/core/reporters/junit_reporter.py,sha256=DmTL9Hj3W3G5pVTSyQ4sxM8OY-6yFcs9TnZ1g6GahCM,8945
153
+ truthound_dashboard/core/reporters/markdown_reporter.py,sha256=8Z39eX4BVts9lbpqqJmZ1NW1rkRhugpt2POD13UDHbk,6190
154
+ truthound_dashboard/core/reporters/pdf_reporter.py,sha256=aUwn2VTNUCmqBAPYpYffDMFw-JaROABbmEHevxybK3E,5785
155
+ truthound_dashboard/core/reporters/registry.py,sha256=tiFFZoufrxnWdX-PsQ42njUKvljoqes5Kk-G2jS8cOk,8134
156
+ truthound_dashboard/core/reporters/i18n/__init__.py,sha256=FxckZQMiQ6-lN3JzOndeJzp2yaswpewaerg8a9W47Go,1553
157
+ truthound_dashboard/core/reporters/i18n/base.py,sha256=89V_vM1xiKiZu1BRRGfi96bmuQFF_wQkiptlnqb3rMc,16308
158
+ truthound_dashboard/core/reporters/i18n/catalogs.py,sha256=ny7V60Oot1MKh9gkkZ_YpA1qaoPB42abDFDBIYutRcM,35321
159
+ truthound_dashboard/core/triggers/__init__.py,sha256=nxAO37X_S7CLw7CQFMwjEsaRmKbGvZvILvIggKMF5qI,1077
160
+ truthound_dashboard/core/triggers/base.py,sha256=r6BHa2cHWdkPVk0HRHFJyN8woOh-M8P9NIH5kwhw_d0,6486
161
+ truthound_dashboard/core/triggers/evaluators.py,sha256=xLzwXF2pM4OQWz8_8z00k-IfSAHiCABtQVjVckkd-7g,21722
162
+ truthound_dashboard/core/triggers/factory.py,sha256=JeUPEhZQQYXEaVlABwdMSR9R4GJlGOaNwM3NTQ_c640,11847
163
+ truthound_dashboard/core/websocket/__init__.py,sha256=tZx9jk3i__ZUb9K16tc--zf5OVvgA6Sh_Zhlh9PjX-s,1505
164
+ truthound_dashboard/core/websocket/manager.py,sha256=y_pLWwE93ee6N2gIqKaiGvyfnVw62nL8fTyROjYUFRg,14847
165
+ truthound_dashboard/core/websocket/messages.py,sha256=_AwY_rm1gSb1AmyMgBeVCYm5MRKnxkZbTfivevQGi4s,3929
166
+ truthound_dashboard/db/__init__.py,sha256=AzuuU-pWTnYqH_WUCS7coniWK81j1r7go9cGTPcvWl4,2957
167
+ truthound_dashboard/db/base.py,sha256=nj6DbYxAl5JoY0hC5rtM7pshOKpe-OH-AFsQqPGQzsM,2832
168
+ truthound_dashboard/db/database.py,sha256=yQ9FsQSi29HvvW0t6BrkyX5YcHijRJEjGTTGfcCCw10,5078
169
+ truthound_dashboard/db/models.py,sha256=Wv93Xk5Dxhq5nF4WDHWrMPp6xbpY_ZaOmHmsfQdeBbc,175626
170
+ truthound_dashboard/db/repository.py,sha256=48AJd65rwTSt1XqTN4vUeJ8nk416buE254JqipDCEEE,6890
171
+ truthound_dashboard/schemas/__init__.py,sha256=e3SXeKquiVFFYW8yc7-lOa70nXQg8qyMqwbFxOI4eb0,16500
172
+ truthound_dashboard/schemas/anomaly.py,sha256=6UEbL-O6f9qoZjvebzQ8s0UQ-T5_RE45AsdWXLIDm-4,45825
173
+ truthound_dashboard/schemas/base.py,sha256=Q54unYOGWv_k3fhT8hHzVA6nwLhfDAF-ws71-IZscqg,3061
174
+ truthound_dashboard/schemas/catalog.py,sha256=Gc0ky7kuWyo7naJqyyJe-S9JDF5Ge_c9oeVpUEarQqw,10556
175
+ truthound_dashboard/schemas/collaboration.py,sha256=xUsfK7PuNyCjD8vx4CqfktuYqkYY8oyJMe-JPJgo4uc,4873
176
+ truthound_dashboard/schemas/cross_alerts.py,sha256=1tatU5MKwp72F4uHTDelHb1lIcAEkh030-IWzn9clX8,10528
177
+ truthound_dashboard/schemas/drift.py,sha256=lvrTkYzxB9YxOYHNm40KThEM0cEjKw9UZk0i8REAqG0,8353
178
+ truthound_dashboard/schemas/drift_monitor.py,sha256=t6roREKJuxyZItRWUy1jEj19en1LPI_B79vMj4BwKkU,27901
179
+ truthound_dashboard/schemas/glossary.py,sha256=pY35k4zIf_4FYsdElD5fZJdJsPPQCn0Kk-EdwF8OCmI,10240
180
+ truthound_dashboard/schemas/history.py,sha256=OVzBmbw7uz0C4IWt43P8QxNl9_OO_-WZRdA7L44_9yo,2771
181
+ truthound_dashboard/schemas/lineage.py,sha256=ADrloeXqzWmgPH_x6L6wBaStjlhy2BY4AY2Vqp8CGQs,12633
182
+ truthound_dashboard/schemas/maintenance.py,sha256=FjD04Psq7QoNXPN23MKHJdqm7wgPlL3tnt-6QiVIKoY,4899
183
+ truthound_dashboard/schemas/mask.py,sha256=qOWMUEv2KNqACG4LcVN5n6Xq_hPqXmdM34JachB_SC0,6412
184
+ truthound_dashboard/schemas/model_monitoring.py,sha256=J0gbFnqzgUMPSPSCVgZJ1v_jx1Sc7pdU7e7AuQ5SYUg,14272
185
+ truthound_dashboard/schemas/notifications_advanced.py,sha256=yhQj-18_VsEhyLBfFGMsaGXkIl-pKfSuh2cUtxunkUo,45649
186
+ truthound_dashboard/schemas/openlineage.py,sha256=uLH5oIVKGfWiXRhTq8AggPlSgtB_gmPrJneUgXpXLqo,21675
187
+ truthound_dashboard/schemas/plugins.py,sha256=teCOO_N477MqpWvoHDLaUue9caRiKMudrCV_kiKzXjY,40318
188
+ truthound_dashboard/schemas/profile.py,sha256=q4r6p7CJ9bCC-fN3q4n6sKYbkZMffmGvFhijCAC75_k,18525
189
+ truthound_dashboard/schemas/profile_comparison.py,sha256=tDZhVs7fsUgSCDpec_V5v3Kn3LWOAxODvajzgtLtA2s,9173
190
+ truthound_dashboard/schemas/reports.py,sha256=2tuBJWAJ2jbLRvRE-4-vS4KSwKSrqVm1QUoPz1sO9nM,10916
191
+ truthound_dashboard/schemas/rule.py,sha256=eIx9CdQ-gC6i-BpVsX714y-l0-TWY6VOVr0nSTkn_bk,5207
192
+ truthound_dashboard/schemas/rule_suggestion.py,sha256=Ml_uX3MdQIagWCON9fpJ9BiRixgEO27Bqoct82jluEM,15149
193
+ truthound_dashboard/schemas/scan.py,sha256=v4kvUaoHSvrnPAOE-6KY_IABo5Kuk99jljujT36ggoM,9032
194
+ truthound_dashboard/schemas/schedule.py,sha256=JkXPPqkhkIldBp_JwMD73Vlvq2h4Gq1BighnUVQdjuc,2796
195
+ truthound_dashboard/schemas/schema.py,sha256=u6CI3wvK-h075zrjYVO-SsZ2Cdodjd1HdDSIPJ6abno,4980
196
+ truthound_dashboard/schemas/schema_evolution.py,sha256=al110n2SgM0xxpohWSdQMuEq6dRbIZRb0EvQV-nUJiE,5837
197
+ truthound_dashboard/schemas/source.py,sha256=3Wx17KlUzV5YBOIagt6ekYVeWAwbfC-gwkUr5asltl8,7809
198
+ truthound_dashboard/schemas/triggers.py,sha256=dIJghugFTccrKp1deCgoEP6UVQEEqIGeXXElBwK1Jls,16123
199
+ truthound_dashboard/schemas/unified_alerts.py,sha256=x9efcfy71hxPho6rpGwOmoJXgW3sdJ8ZrqA4YAwti78,7576
200
+ truthound_dashboard/schemas/validation.py,sha256=xyKZlF2ftIfaHwM1Gx8JFdaDdWf5dthw5_89rZeSkn4,9625
201
+ truthound_dashboard/schemas/validators.py,sha256=viqMl-6f8Bnp1488__PHeQUrK5yEFwUO6Z1EXtMoJ1k,1502
202
+ truthound_dashboard/schemas/versioning.py,sha256=gZob-ToosgYTHibf93FqNoIgum_gJMTYtdK-PbFwO_g,5617
203
+ truthound_dashboard/schemas/validators/__init__.py,sha256=rHePThM54k9t-y8lA5zp-2W1TWGNwhoZjdSITjnbFAE,1762
204
+ truthound_dashboard/schemas/validators/aggregate_validators.py,sha256=mJDiHHL8QlUOjtfVCgizTYVAXeoz3apyxndiWV7ArNM,8247
205
+ truthound_dashboard/schemas/validators/anomaly_validators.py,sha256=xYKi3BiH9FTAqHk7ETvPkbT21aAkqkrlC6kdD0S9Cvs,25557
206
+ truthound_dashboard/schemas/validators/base.py,sha256=EME6vAC3XsVmBrlUQjbB__5V6bP3XEc6D3lOOlprbkg,15531
207
+ truthound_dashboard/schemas/validators/completeness_validators.py,sha256=SfvYvErk88syGGMJqy3iSGVvSwqWhgIQZEU4VRzN3oQ,9650
208
+ truthound_dashboard/schemas/validators/cross_table_validators.py,sha256=TrBc6kPhvCjcqEMwFYz1MYBYYV5ULeCHoS8ogp3WIbI,14720
209
+ truthound_dashboard/schemas/validators/datetime_validators.py,sha256=KqUgXgxlUJOFC5Xz2QzuDzyZXn7jsZ-S2Fm978b8-n0,8278
210
+ truthound_dashboard/schemas/validators/distribution_validators.py,sha256=0foHX8aqFmtP9IoecSZa9uKF_so1Zaef3kC5rynhx0k,14442
211
+ truthound_dashboard/schemas/validators/drift_validators.py,sha256=IUp75AK-D7yq3KIL-zMCYNzCKXrBxqBe4KOLkZaR46Y,21602
212
+ truthound_dashboard/schemas/validators/geospatial_validators.py,sha256=EVyG0DjBi2ImJXY5C1va5YUieLhLsRmpAgn0Hp3brFU,16706
213
+ truthound_dashboard/schemas/validators/multi_column_validators.py,sha256=-fVAtahptvIqG686o1YR_lg7OSZHfCv5CGlwwgyPwJk,25586
214
+ truthound_dashboard/schemas/validators/privacy_validators.py,sha256=KGAeQum91ayP3WIPBCVhajspUctqWS8HyfotDsL26x8,20121
215
+ truthound_dashboard/schemas/validators/query_validators.py,sha256=bVoD7JneRSKyJENs4NDMQI8TgVmj_uomuvt4l2MlEK8,18018
216
+ truthound_dashboard/schemas/validators/registry.py,sha256=_3praUHNT1V_mZcufqro48dfEg9oR8MrEjy2Z0X6jKw,9304
217
+ truthound_dashboard/schemas/validators/schema_validators.py,sha256=o7f-6pvjX95D29gDkHpQh4PvvGd2p0wsvknqY_16gkc,15290
218
+ truthound_dashboard/schemas/validators/string_validators.py,sha256=28Jm-6ioe4N2QQzC7Nqu4VJje8ZCUWb-m4bX-3Ysvjk,13064
219
+ truthound_dashboard/schemas/validators/table_validators.py,sha256=hIt5LcGZ05QZMKPNI5J5SEWfUJfejeO7e1Q7DP3nX8k,13967
220
+ truthound_dashboard/schemas/validators/uniqueness_validators.py,sha256=Y23ts3FAAuhluXqz8bdFW8VMN5HZIOM7Nz9Hub0ehRw,12110
221
+ truthound_dashboard/static/favicon.ico,sha256=T9BJXnpyq6t6lpFHd6ivEimWF2uGFzwxDeTDyz2UVmQ,15406
222
+ truthound_dashboard/static/index.html,sha256=zF4jSC_mYBpqp2NSiPQ-58ljscoJcsjEUMJiZHfScII,568
223
+ truthound_dashboard/static/assets/logo--IpBiMPK.png,sha256=c7ne4oaZ1BpQR5yP2TVYoAE1s1vS7lRPxgWP1pzUMYE,213715
224
+ truthound_dashboard/translate/__init__.py,sha256=Mv_xtMk4SaBGUsMgJqhwARnkJkZdq4OhJi5HdpdsBnw,1458
225
+ truthound_dashboard/translate/config_updater.py,sha256=AtJ7ero4cHKwUYQRDbGaPAlLmcyBv0IeBewdiTo0X8c,12038
226
+ truthound_dashboard/translate/exceptions.py,sha256=kPxCN2n_wYl3m6jVg_DRO8pagr55YpPU2e3Dt0YVQhc,3244
227
+ truthound_dashboard/translate/translator.py,sha256=2S35k_cJC1TXy-1XpAIDJZPI5_hKimeX3mNZ3osazik,14228
228
+ truthound_dashboard/translate/providers/__init__.py,sha256=zhG3eycCO2LCl9AVtRqvtqkIrjsTUqaftsN6YhZCpVw,1187
229
+ truthound_dashboard/translate/providers/anthropic.py,sha256=rBF2ueKqVunGrCYSyIDZGTzra1mK7-FOh7vACqg7nis,4522
230
+ truthound_dashboard/translate/providers/base.py,sha256=gYMjv5x1ICpZ-jFzv28tsJc7uTvkm8EVgDlTznbvAVQ,6490
231
+ truthound_dashboard/translate/providers/mistral.py,sha256=j0oh_mGksdMuIfbuZKq0yon6G6oabbO7fTgQzsKEZ7k,4692
232
+ truthound_dashboard/translate/providers/ollama.py,sha256=XlAHE14VvdSPKFbrJIbB3KUHzrgQm0Zj08snL71otUQ,7286
233
+ truthound_dashboard/translate/providers/openai.py,sha256=AeaOfRjNgCIgBdcX1gcYqqf41fXeEIyN3AiLAOy3SZc,6760
234
+ truthound_dashboard/translate/providers/registry.py,sha256=iwfcWYJ2uKfwWjsalhV4jSoyZC7bSeujK6sTMuylMMY,6474
235
+ truthound_dashboard-1.4.0.dist-info/METADATA,sha256=fh_f_UPYvhBAQ6eRQ5r5xNf3X1CHGtPEftAbZZ_tUWY,18083
236
+ truthound_dashboard-1.4.0.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
237
+ truthound_dashboard-1.4.0.dist-info/entry_points.txt,sha256=Xq8qadJ-Sqk4_0Ss_rhCqCv7uxPZZdwO3WUnbK0r6Hw,135
238
+ truthound_dashboard-1.4.0.dist-info/licenses/LICENSE,sha256=qrBWTDMS8ZvwVJl3Yo2n8_AxOos3s8S9pcOzLW5Nivg,10763
239
+ truthound_dashboard-1.4.0.dist-info/RECORD,,