truthound-dashboard 1.1.0__tar.gz → 1.2.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 (242) hide show
  1. {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/PKG-INFO +21 -1
  2. {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/README.md +20 -0
  3. {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/docs/api.md +354 -0
  4. {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/docs/features.md +93 -0
  5. {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/docs/index.md +4 -0
  6. truthound_dashboard-1.2.0/docs/internationalization.md +621 -0
  7. {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/frontend/package.json +9 -2
  8. {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/frontend/src/App.tsx +11 -0
  9. {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/frontend/src/api/client.ts +429 -0
  10. {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/frontend/src/components/Layout.tsx +7 -1
  11. truthound_dashboard-1.2.0/frontend/src/components/catalog/AssetFormDialog.tsx +207 -0
  12. truthound_dashboard-1.2.0/frontend/src/components/catalog/ColumnMappingDialog.tsx +105 -0
  13. truthound_dashboard-1.2.0/frontend/src/components/collaboration/ActivityFeed.tsx +170 -0
  14. truthound_dashboard-1.2.0/frontend/src/components/collaboration/Comments.tsx +355 -0
  15. truthound_dashboard-1.2.0/frontend/src/components/glossary/TermFormDialog.tsx +208 -0
  16. truthound_dashboard-1.2.0/frontend/src/content/catalog.content.ts +118 -0
  17. truthound_dashboard-1.2.0/frontend/src/content/collaboration.content.ts +69 -0
  18. {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/frontend/src/content/common.content.ts +5 -8
  19. truthound_dashboard-1.2.0/frontend/src/content/glossary.content.ts +105 -0
  20. truthound_dashboard-1.2.0/frontend/src/content/nav.content.ts +27 -0
  21. {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/frontend/src/mocks/data/store.ts +75 -0
  22. truthound_dashboard-1.2.0/frontend/src/mocks/factories/catalog.test.ts +193 -0
  23. truthound_dashboard-1.2.0/frontend/src/mocks/factories/catalog.ts +293 -0
  24. truthound_dashboard-1.2.0/frontend/src/mocks/factories/collaboration.test.ts +176 -0
  25. truthound_dashboard-1.2.0/frontend/src/mocks/factories/collaboration.ts +237 -0
  26. truthound_dashboard-1.2.0/frontend/src/mocks/factories/glossary.test.ts +143 -0
  27. truthound_dashboard-1.2.0/frontend/src/mocks/factories/glossary.ts +318 -0
  28. {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/frontend/src/mocks/factories/index.ts +3 -0
  29. truthound_dashboard-1.2.0/frontend/src/mocks/handlers/catalog.ts +433 -0
  30. truthound_dashboard-1.2.0/frontend/src/mocks/handlers/collaboration.ts +180 -0
  31. truthound_dashboard-1.2.0/frontend/src/mocks/handlers/glossary.ts +384 -0
  32. {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/frontend/src/mocks/handlers/index.ts +6 -0
  33. truthound_dashboard-1.2.0/frontend/src/pages/Activity.tsx +131 -0
  34. truthound_dashboard-1.2.0/frontend/src/pages/Catalog.tsx +277 -0
  35. truthound_dashboard-1.2.0/frontend/src/pages/CatalogDetail.tsx +399 -0
  36. truthound_dashboard-1.2.0/frontend/src/pages/Glossary.tsx +266 -0
  37. truthound_dashboard-1.2.0/frontend/src/pages/GlossaryDetail.tsx +352 -0
  38. truthound_dashboard-1.2.0/frontend/src/stores/catalogStore.test.ts +276 -0
  39. truthound_dashboard-1.2.0/frontend/src/stores/catalogStore.ts +180 -0
  40. truthound_dashboard-1.2.0/frontend/src/stores/glossaryStore.test.ts +279 -0
  41. truthound_dashboard-1.2.0/frontend/src/stores/glossaryStore.ts +187 -0
  42. truthound_dashboard-1.2.0/frontend/src/test/setup.ts +49 -0
  43. truthound_dashboard-1.2.0/frontend/src/test/test-utils.tsx +26 -0
  44. truthound_dashboard-1.2.0/frontend/vitest.config.ts +30 -0
  45. {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/pyproject.toml +1 -1
  46. truthound_dashboard-1.2.0/src/truthound_dashboard/api/catalog.py +343 -0
  47. truthound_dashboard-1.2.0/src/truthound_dashboard/api/collaboration.py +148 -0
  48. truthound_dashboard-1.2.0/src/truthound_dashboard/api/glossary.py +329 -0
  49. {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/src/truthound_dashboard/api/router.py +29 -0
  50. {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/src/truthound_dashboard/core/__init__.py +12 -0
  51. truthound_dashboard-1.2.0/src/truthound_dashboard/core/phase5/__init__.py +17 -0
  52. truthound_dashboard-1.2.0/src/truthound_dashboard/core/phase5/activity.py +144 -0
  53. truthound_dashboard-1.2.0/src/truthound_dashboard/core/phase5/catalog.py +868 -0
  54. truthound_dashboard-1.2.0/src/truthound_dashboard/core/phase5/collaboration.py +305 -0
  55. truthound_dashboard-1.2.0/src/truthound_dashboard/core/phase5/glossary.py +828 -0
  56. {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/src/truthound_dashboard/db/__init__.py +37 -0
  57. {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/src/truthound_dashboard/db/models.py +693 -0
  58. {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/src/truthound_dashboard/schemas/__init__.py +114 -0
  59. truthound_dashboard-1.2.0/src/truthound_dashboard/schemas/catalog.py +352 -0
  60. truthound_dashboard-1.2.0/src/truthound_dashboard/schemas/collaboration.py +169 -0
  61. truthound_dashboard-1.2.0/src/truthound_dashboard/schemas/glossary.py +349 -0
  62. truthound_dashboard-1.2.0/tests/test_api/test_catalog.py +459 -0
  63. truthound_dashboard-1.2.0/tests/test_api/test_collaboration.py +307 -0
  64. truthound_dashboard-1.2.0/tests/test_api/test_glossary.py +365 -0
  65. truthound_dashboard-1.1.0/frontend/src/content/nav.content.ts +0 -34
  66. {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/.github/workflows/release.yml +0 -0
  67. {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/.github/workflows/trigger-docs.yml +0 -0
  68. {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/.gitignore +0 -0
  69. {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/LICENSE +0 -0
  70. {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/docs/configuration.md +0 -0
  71. {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/docs/getting-started.md +0 -0
  72. {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/e2e/package.json +0 -0
  73. {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/e2e/playwright.config.ts +0 -0
  74. {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/e2e/tests/dashboard.spec.ts +0 -0
  75. {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/e2e/tests/language.spec.ts +0 -0
  76. {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/e2e/tests/notifications.spec.ts +0 -0
  77. {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/e2e/tests/theme.spec.ts +0 -0
  78. {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/frontend/.env.development +0 -0
  79. {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/frontend/.env.mock +0 -0
  80. {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/frontend/.env.production +0 -0
  81. {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/frontend/.eslintrc.cjs +0 -0
  82. {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/frontend/index.html +0 -0
  83. {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/frontend/intlayer.config.ts +0 -0
  84. {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/frontend/netlify.toml +0 -0
  85. {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/frontend/package-lock.json +0 -0
  86. {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/frontend/postcss.config.js +0 -0
  87. {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/frontend/public/favicon.ico +0 -0
  88. {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/frontend/public/mockServiceWorker.js +0 -0
  89. {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/frontend/src/assets/logo.png +0 -0
  90. {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/frontend/src/components/AnimatedNumber.tsx +0 -0
  91. {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/frontend/src/components/ConfirmDialog.tsx +0 -0
  92. {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/frontend/src/components/DemoBanner.tsx +0 -0
  93. {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/frontend/src/components/GlassCard.tsx +0 -0
  94. {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/frontend/src/components/LoadingFallback.tsx +0 -0
  95. {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/frontend/src/components/ThemeToggle.tsx +0 -0
  96. {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/frontend/src/components/theme-provider.tsx +0 -0
  97. {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/frontend/src/components/ui/alert-dialog.tsx +0 -0
  98. {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/frontend/src/components/ui/badge.tsx +0 -0
  99. {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/frontend/src/components/ui/button.tsx +0 -0
  100. {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/frontend/src/components/ui/card.tsx +0 -0
  101. {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/frontend/src/components/ui/dialog.tsx +0 -0
  102. {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/frontend/src/components/ui/dropdown-menu.tsx +0 -0
  103. {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/frontend/src/components/ui/input.tsx +0 -0
  104. {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/frontend/src/components/ui/label.tsx +0 -0
  105. {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/frontend/src/components/ui/select.tsx +0 -0
  106. {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/frontend/src/components/ui/switch.tsx +0 -0
  107. {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/frontend/src/components/ui/table.tsx +0 -0
  108. {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/frontend/src/components/ui/tabs.tsx +0 -0
  109. {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/frontend/src/components/ui/toast.tsx +0 -0
  110. {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/frontend/src/components/ui/toaster.tsx +0 -0
  111. {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/frontend/src/content/dashboard.content.ts +0 -0
  112. {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/frontend/src/content/demo.content.ts +0 -0
  113. {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/frontend/src/content/drift.content.ts +0 -0
  114. {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/frontend/src/content/errors.content.ts +0 -0
  115. {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/frontend/src/content/index.ts +0 -0
  116. {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/frontend/src/content/notifications.content.ts +0 -0
  117. {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/frontend/src/content/schedules.content.ts +0 -0
  118. {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/frontend/src/content/settings.content.ts +0 -0
  119. {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/frontend/src/content/sources.content.ts +0 -0
  120. {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/frontend/src/content/validation.content.ts +0 -0
  121. {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/frontend/src/hooks/use-api.ts +0 -0
  122. {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/frontend/src/hooks/use-toast.ts +0 -0
  123. {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/frontend/src/index.css +0 -0
  124. {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/frontend/src/lib/intlayer-utils.ts +0 -0
  125. {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/frontend/src/lib/utils.ts +0 -0
  126. {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/frontend/src/main.tsx +0 -0
  127. {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/frontend/src/mocks/browser.ts +0 -0
  128. {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/frontend/src/mocks/factories/base.ts +0 -0
  129. {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/frontend/src/mocks/factories/drift.ts +0 -0
  130. {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/frontend/src/mocks/factories/history.ts +0 -0
  131. {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/frontend/src/mocks/factories/notifications.ts +0 -0
  132. {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/frontend/src/mocks/factories/profile.ts +0 -0
  133. {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/frontend/src/mocks/factories/schedules.ts +0 -0
  134. {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/frontend/src/mocks/factories/schemas.ts +0 -0
  135. {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/frontend/src/mocks/factories/sources.ts +0 -0
  136. {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/frontend/src/mocks/factories/validations.ts +0 -0
  137. {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/frontend/src/mocks/handlers/drift.ts +0 -0
  138. {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/frontend/src/mocks/handlers/health.ts +0 -0
  139. {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/frontend/src/mocks/handlers/history.ts +0 -0
  140. {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/frontend/src/mocks/handlers/notifications.ts +0 -0
  141. {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/frontend/src/mocks/handlers/profile.ts +0 -0
  142. {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/frontend/src/mocks/handlers/schedules.ts +0 -0
  143. {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/frontend/src/mocks/handlers/schemas.ts +0 -0
  144. {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/frontend/src/mocks/handlers/sources.ts +0 -0
  145. {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/frontend/src/mocks/handlers/validations.ts +0 -0
  146. {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/frontend/src/mocks/index.ts +0 -0
  147. {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/frontend/src/pages/Dashboard.tsx +0 -0
  148. {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/frontend/src/pages/Drift.tsx +0 -0
  149. {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/frontend/src/pages/History.tsx +0 -0
  150. {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/frontend/src/pages/Notifications.tsx +0 -0
  151. {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/frontend/src/pages/Profile.tsx +0 -0
  152. {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/frontend/src/pages/Rules.tsx +0 -0
  153. {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/frontend/src/pages/Schedules.tsx +0 -0
  154. {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/frontend/src/pages/SourceDetail.tsx +0 -0
  155. {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/frontend/src/pages/Sources.tsx +0 -0
  156. {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/frontend/src/pages/Validations.tsx +0 -0
  157. {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/frontend/src/providers/index.ts +0 -0
  158. {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/frontend/src/providers/intlayer/IntlayerProvider.tsx +0 -0
  159. {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/frontend/src/providers/intlayer/config.ts +0 -0
  160. {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/frontend/src/providers/intlayer/index.ts +0 -0
  161. {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/frontend/src/stores/theme.ts +0 -0
  162. {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/frontend/src/vite-env.d.ts +0 -0
  163. {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/frontend/tailwind.config.js +0 -0
  164. {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/frontend/tsconfig.json +0 -0
  165. {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/frontend/tsconfig.node.json +0 -0
  166. {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/frontend/vite.config.ts +0 -0
  167. {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/scripts/load_test.py +0 -0
  168. {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/src/truthound_dashboard/__init__.py +0 -0
  169. {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/src/truthound_dashboard/__main__.py +0 -0
  170. {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/src/truthound_dashboard/api/__init__.py +0 -0
  171. {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/src/truthound_dashboard/api/deps.py +0 -0
  172. {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/src/truthound_dashboard/api/drift.py +0 -0
  173. {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/src/truthound_dashboard/api/error_handlers.py +0 -0
  174. {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/src/truthound_dashboard/api/health.py +0 -0
  175. {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/src/truthound_dashboard/api/history.py +0 -0
  176. {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/src/truthound_dashboard/api/middleware.py +0 -0
  177. {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/src/truthound_dashboard/api/notifications.py +0 -0
  178. {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/src/truthound_dashboard/api/profile.py +0 -0
  179. {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/src/truthound_dashboard/api/rules.py +0 -0
  180. {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/src/truthound_dashboard/api/schedules.py +0 -0
  181. {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/src/truthound_dashboard/api/schemas.py +0 -0
  182. {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/src/truthound_dashboard/api/sources.py +0 -0
  183. {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/src/truthound_dashboard/api/validations.py +0 -0
  184. {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/src/truthound_dashboard/cli.py +0 -0
  185. {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/src/truthound_dashboard/config.py +0 -0
  186. {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/src/truthound_dashboard/core/base.py +0 -0
  187. {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/src/truthound_dashboard/core/cache.py +0 -0
  188. {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/src/truthound_dashboard/core/connections.py +0 -0
  189. {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/src/truthound_dashboard/core/encryption.py +0 -0
  190. {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/src/truthound_dashboard/core/exceptions.py +0 -0
  191. {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/src/truthound_dashboard/core/logging.py +0 -0
  192. {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/src/truthound_dashboard/core/maintenance.py +0 -0
  193. {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/src/truthound_dashboard/core/notifications/__init__.py +0 -0
  194. {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/src/truthound_dashboard/core/notifications/base.py +0 -0
  195. {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/src/truthound_dashboard/core/notifications/channels.py +0 -0
  196. {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/src/truthound_dashboard/core/notifications/dispatcher.py +0 -0
  197. {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/src/truthound_dashboard/core/notifications/events.py +0 -0
  198. {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/src/truthound_dashboard/core/notifications/service.py +0 -0
  199. {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/src/truthound_dashboard/core/sampling.py +0 -0
  200. {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/src/truthound_dashboard/core/scheduler.py +0 -0
  201. {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/src/truthound_dashboard/core/services.py +0 -0
  202. {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/src/truthound_dashboard/core/truthound_adapter.py +0 -0
  203. {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/src/truthound_dashboard/db/base.py +0 -0
  204. {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/src/truthound_dashboard/db/database.py +0 -0
  205. {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/src/truthound_dashboard/db/repository.py +0 -0
  206. {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/src/truthound_dashboard/main.py +0 -0
  207. {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/src/truthound_dashboard/schemas/base.py +0 -0
  208. {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/src/truthound_dashboard/schemas/drift.py +0 -0
  209. {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/src/truthound_dashboard/schemas/history.py +0 -0
  210. {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/src/truthound_dashboard/schemas/profile.py +0 -0
  211. {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/src/truthound_dashboard/schemas/rule.py +0 -0
  212. {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/src/truthound_dashboard/schemas/schedule.py +0 -0
  213. {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/src/truthound_dashboard/schemas/schema.py +0 -0
  214. {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/src/truthound_dashboard/schemas/source.py +0 -0
  215. {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/src/truthound_dashboard/schemas/validation.py +0 -0
  216. {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/src/truthound_dashboard/static/assets/index-BqJMyAHX.js +0 -0
  217. {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/src/truthound_dashboard/static/assets/index-DMDxHCTs.js +0 -0
  218. {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/src/truthound_dashboard/static/assets/index-Dm2D11TK.css +0 -0
  219. {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/src/truthound_dashboard/static/index.html +0 -0
  220. {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/src/truthound_dashboard/static/mockServiceWorker.js +0 -0
  221. {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/src/truthound_dashboard/translate/__init__.py +0 -0
  222. {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/src/truthound_dashboard/translate/config_updater.py +0 -0
  223. {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/src/truthound_dashboard/translate/exceptions.py +0 -0
  224. {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/src/truthound_dashboard/translate/providers/__init__.py +0 -0
  225. {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/src/truthound_dashboard/translate/providers/anthropic.py +0 -0
  226. {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/src/truthound_dashboard/translate/providers/base.py +0 -0
  227. {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/src/truthound_dashboard/translate/providers/mistral.py +0 -0
  228. {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/src/truthound_dashboard/translate/providers/ollama.py +0 -0
  229. {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/src/truthound_dashboard/translate/providers/openai.py +0 -0
  230. {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/src/truthound_dashboard/translate/providers/registry.py +0 -0
  231. {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/src/truthound_dashboard/translate/translator.py +0 -0
  232. {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/tests/__init__.py +0 -0
  233. {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/tests/conftest.py +0 -0
  234. {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/tests/test_api/__init__.py +0 -0
  235. {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/tests/test_api/test_health.py +0 -0
  236. {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/tests/test_api/test_rules.py +0 -0
  237. {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/tests/test_api/test_sources.py +0 -0
  238. {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/tests/test_core/__init__.py +0 -0
  239. {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/tests/test_core/test_services.py +0 -0
  240. {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/tests/test_db/__init__.py +0 -0
  241. {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/tests/test_db/test_models.py +0 -0
  242. {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/tests/test_phase4.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: truthound-dashboard
3
- Version: 1.1.0
3
+ Version: 1.2.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
@@ -75,6 +75,8 @@ truthound-dashboard provides a graphical interface for managing data sources, ex
75
75
  | Webhook Notifications | Available | Available |
76
76
  | Drift Detection | Available | Available |
77
77
  | Data Profiling | Available | Available |
78
+ | Business Glossary | Available | Available |
79
+ | Data Catalog | Available | Available |
78
80
  | Dark Mode | Available | Available |
79
81
  | Multi-language (en/ko) | Not Available | Available |
80
82
  | License | Commercial | Apache 2.0 |
@@ -147,6 +149,24 @@ The dashboard interface is accessible at `http://localhost:8765`.
147
149
  - Statistical profiling using `th.profile`
148
150
  - Column-level statistics
149
151
 
152
+ ### Business Glossary
153
+ - Business term definitions with categories
154
+ - Term relationships (synonyms, related terms)
155
+ - Term lifecycle management (draft, approved, deprecated)
156
+ - Change history tracking
157
+
158
+ ### Data Catalog
159
+ - Data asset registration (tables, files, APIs)
160
+ - Column-level metadata management
161
+ - Column-to-term mapping
162
+ - Quality score tracking
163
+ - Sensitivity classification (public, internal, confidential, restricted)
164
+ - Custom tagging
165
+
166
+ ### Collaboration
167
+ - Comments on terms, assets, and columns
168
+ - Activity feed for tracking changes
169
+
150
170
  ### User Interface
151
171
  - Light and dark theme support
152
172
  - Internationalization: English, Korean
@@ -30,6 +30,8 @@ truthound-dashboard provides a graphical interface for managing data sources, ex
30
30
  | Webhook Notifications | Available | Available |
31
31
  | Drift Detection | Available | Available |
32
32
  | Data Profiling | Available | Available |
33
+ | Business Glossary | Available | Available |
34
+ | Data Catalog | Available | Available |
33
35
  | Dark Mode | Available | Available |
34
36
  | Multi-language (en/ko) | Not Available | Available |
35
37
  | License | Commercial | Apache 2.0 |
@@ -102,6 +104,24 @@ The dashboard interface is accessible at `http://localhost:8765`.
102
104
  - Statistical profiling using `th.profile`
103
105
  - Column-level statistics
104
106
 
107
+ ### Business Glossary
108
+ - Business term definitions with categories
109
+ - Term relationships (synonyms, related terms)
110
+ - Term lifecycle management (draft, approved, deprecated)
111
+ - Change history tracking
112
+
113
+ ### Data Catalog
114
+ - Data asset registration (tables, files, APIs)
115
+ - Column-level metadata management
116
+ - Column-to-term mapping
117
+ - Quality score tracking
118
+ - Sensitivity classification (public, internal, confidential, restricted)
119
+ - Custom tagging
120
+
121
+ ### Collaboration
122
+ - Comments on terms, assets, and columns
123
+ - Activity feed for tracking changes
124
+
105
125
  ### User Interface
106
126
  - Light and dark theme support
107
127
  - Internationalization: English, Korean
@@ -710,6 +710,360 @@ Retrieve notification delivery logs.
710
710
 
711
711
  ---
712
712
 
713
+ ## Business Glossary
714
+
715
+ ### GET /glossary/terms
716
+
717
+ Retrieve glossary terms.
718
+
719
+ **Query Parameters:**
720
+ - `search` (optional): Search term names and definitions
721
+ - `category_id` (optional): Filter by category
722
+ - `status` (optional): Filter by status (`draft`, `approved`, `deprecated`)
723
+ - `page` (default: 1)
724
+ - `per_page` (default: 20)
725
+
726
+ **Response:**
727
+ ```json
728
+ {
729
+ "success": true,
730
+ "data": [
731
+ {
732
+ "id": "term123",
733
+ "name": "Customer",
734
+ "definition": "An individual or organization that purchases products",
735
+ "category_id": "cat123",
736
+ "category_name": "Business",
737
+ "status": "approved",
738
+ "owner": "data-team",
739
+ "created_at": "2024-01-15T10:30:00Z"
740
+ }
741
+ ]
742
+ }
743
+ ```
744
+
745
+ ### POST /glossary/terms
746
+
747
+ Create a new term.
748
+
749
+ **Request:**
750
+ ```json
751
+ {
752
+ "name": "Customer",
753
+ "definition": "An individual or organization that purchases products",
754
+ "category_id": "cat123",
755
+ "status": "draft",
756
+ "owner": "data-team"
757
+ }
758
+ ```
759
+
760
+ ### GET /glossary/terms/{id}
761
+
762
+ Retrieve term details including relationships.
763
+
764
+ ### PUT /glossary/terms/{id}
765
+
766
+ Update a term. Changes are automatically tracked in history.
767
+
768
+ ### DELETE /glossary/terms/{id}
769
+
770
+ Delete a term.
771
+
772
+ ### GET /glossary/terms/{id}/history
773
+
774
+ Retrieve term change history.
775
+
776
+ **Response:**
777
+ ```json
778
+ {
779
+ "success": true,
780
+ "data": [
781
+ {
782
+ "id": "hist123",
783
+ "term_id": "term123",
784
+ "field_name": "definition",
785
+ "old_value": "Previous definition",
786
+ "new_value": "Updated definition",
787
+ "changed_by": "user@example.com",
788
+ "changed_at": "2024-01-15T10:30:00Z"
789
+ }
790
+ ]
791
+ }
792
+ ```
793
+
794
+ ### GET /glossary/terms/{id}/relationships
795
+
796
+ Retrieve term relationships.
797
+
798
+ ### GET /glossary/categories
799
+
800
+ Retrieve all categories.
801
+
802
+ ### POST /glossary/categories
803
+
804
+ Create a new category.
805
+
806
+ **Request:**
807
+ ```json
808
+ {
809
+ "name": "Business",
810
+ "description": "Business-related terms",
811
+ "parent_id": null
812
+ }
813
+ ```
814
+
815
+ ### PUT /glossary/categories/{id}
816
+
817
+ Update a category.
818
+
819
+ ### DELETE /glossary/categories/{id}
820
+
821
+ Delete a category.
822
+
823
+ ### POST /glossary/relationships
824
+
825
+ Create a relationship between terms.
826
+
827
+ **Request:**
828
+ ```json
829
+ {
830
+ "source_term_id": "term123",
831
+ "target_term_id": "term456",
832
+ "relationship_type": "synonym"
833
+ }
834
+ ```
835
+
836
+ **Relationship Types:**
837
+ - `synonym` - Terms with the same meaning
838
+ - `related` - Related terms
839
+
840
+ ### DELETE /glossary/relationships/{id}
841
+
842
+ Delete a relationship.
843
+
844
+ ---
845
+
846
+ ## Data Catalog
847
+
848
+ ### GET /catalog/assets
849
+
850
+ Retrieve data assets.
851
+
852
+ **Query Parameters:**
853
+ - `search` (optional): Search asset names and descriptions
854
+ - `asset_type` (optional): Filter by type (`table`, `file`, `api`)
855
+ - `source_id` (optional): Filter by data source
856
+ - `page` (default: 1)
857
+ - `per_page` (default: 20)
858
+
859
+ **Response:**
860
+ ```json
861
+ {
862
+ "success": true,
863
+ "data": [
864
+ {
865
+ "id": "asset123",
866
+ "name": "customers",
867
+ "asset_type": "table",
868
+ "description": "Customer master data",
869
+ "source_id": "src123",
870
+ "source_name": "Production DB",
871
+ "owner": "data-team",
872
+ "quality_score": 85,
873
+ "column_count": 12,
874
+ "tag_count": 3,
875
+ "created_at": "2024-01-15T10:30:00Z"
876
+ }
877
+ ]
878
+ }
879
+ ```
880
+
881
+ ### POST /catalog/assets
882
+
883
+ Create a new asset.
884
+
885
+ **Request:**
886
+ ```json
887
+ {
888
+ "name": "customers",
889
+ "asset_type": "table",
890
+ "description": "Customer master data",
891
+ "source_id": "src123",
892
+ "owner": "data-team",
893
+ "quality_score": 85
894
+ }
895
+ ```
896
+
897
+ ### GET /catalog/assets/{id}
898
+
899
+ Retrieve asset details including columns and tags.
900
+
901
+ ### PUT /catalog/assets/{id}
902
+
903
+ Update an asset.
904
+
905
+ ### DELETE /catalog/assets/{id}
906
+
907
+ Delete an asset.
908
+
909
+ ### GET /catalog/assets/{id}/columns
910
+
911
+ Retrieve asset columns.
912
+
913
+ ### POST /catalog/assets/{id}/columns
914
+
915
+ Add a column to an asset.
916
+
917
+ **Request:**
918
+ ```json
919
+ {
920
+ "name": "customer_id",
921
+ "data_type": "integer",
922
+ "description": "Unique customer identifier",
923
+ "is_nullable": false,
924
+ "is_primary_key": true,
925
+ "sensitivity_level": "internal"
926
+ }
927
+ ```
928
+
929
+ **Sensitivity Levels:**
930
+ - `public` - No restrictions
931
+ - `internal` - Internal use only
932
+ - `confidential` - Restricted access
933
+ - `restricted` - Highly sensitive
934
+
935
+ ### PUT /catalog/columns/{id}
936
+
937
+ Update a column.
938
+
939
+ ### DELETE /catalog/columns/{id}
940
+
941
+ Delete a column.
942
+
943
+ ### PUT /catalog/columns/{id}/term
944
+
945
+ Map a column to a glossary term.
946
+
947
+ **Request:**
948
+ ```json
949
+ {
950
+ "term_id": "term123"
951
+ }
952
+ ```
953
+
954
+ ### DELETE /catalog/columns/{id}/term
955
+
956
+ Remove column-term mapping.
957
+
958
+ ### GET /catalog/assets/{id}/tags
959
+
960
+ Retrieve asset tags.
961
+
962
+ ### POST /catalog/assets/{id}/tags
963
+
964
+ Add a tag to an asset.
965
+
966
+ **Request:**
967
+ ```json
968
+ {
969
+ "tag_name": "domain",
970
+ "tag_value": "sales"
971
+ }
972
+ ```
973
+
974
+ ### DELETE /catalog/tags/{id}
975
+
976
+ Delete a tag.
977
+
978
+ ---
979
+
980
+ ## Collaboration
981
+
982
+ ### GET /comments
983
+
984
+ Retrieve comments for a resource.
985
+
986
+ **Query Parameters:**
987
+ - `resource_type` (required): `term`, `asset`, or `column`
988
+ - `resource_id` (required): ID of the resource
989
+
990
+ **Response:**
991
+ ```json
992
+ {
993
+ "success": true,
994
+ "data": [
995
+ {
996
+ "id": "cmt123",
997
+ "resource_type": "term",
998
+ "resource_id": "term123",
999
+ "content": "This definition needs clarification",
1000
+ "author": "user@example.com",
1001
+ "parent_id": null,
1002
+ "replies": [],
1003
+ "created_at": "2024-01-15T10:30:00Z"
1004
+ }
1005
+ ]
1006
+ }
1007
+ ```
1008
+
1009
+ ### POST /comments
1010
+
1011
+ Create a comment.
1012
+
1013
+ **Request:**
1014
+ ```json
1015
+ {
1016
+ "resource_type": "term",
1017
+ "resource_id": "term123",
1018
+ "content": "This definition needs clarification",
1019
+ "author": "user@example.com",
1020
+ "parent_id": null
1021
+ }
1022
+ ```
1023
+
1024
+ ### PUT /comments/{id}
1025
+
1026
+ Update a comment.
1027
+
1028
+ ### DELETE /comments/{id}
1029
+
1030
+ Delete a comment.
1031
+
1032
+ ### GET /activities
1033
+
1034
+ Retrieve activity feed.
1035
+
1036
+ **Query Parameters:**
1037
+ - `resource_type` (optional): Filter by resource type
1038
+ - `resource_id` (optional): Filter by resource ID
1039
+ - `limit` (default: 50)
1040
+
1041
+ **Response:**
1042
+ ```json
1043
+ {
1044
+ "success": true,
1045
+ "data": [
1046
+ {
1047
+ "id": "act123",
1048
+ "resource_type": "term",
1049
+ "resource_id": "term123",
1050
+ "action": "updated",
1051
+ "actor": "user@example.com",
1052
+ "description": "Updated term definition",
1053
+ "created_at": "2024-01-15T10:30:00Z"
1054
+ }
1055
+ ]
1056
+ }
1057
+ ```
1058
+
1059
+ **Action Types:**
1060
+ - `created` - Resource created
1061
+ - `updated` - Resource updated
1062
+ - `deleted` - Resource deleted
1063
+ - `commented` - Comment added
1064
+
1065
+ ---
1066
+
713
1067
  ## Error Codes
714
1068
 
715
1069
  | Code | Description |
@@ -335,6 +335,99 @@ Configure rules to trigger notifications based on conditions.
335
335
 
336
336
  ---
337
337
 
338
+ ## Business Glossary
339
+
340
+ Manage business terminology with definitions, categories, and relationships.
341
+
342
+ ### Term Management
343
+
344
+ - **CRUD Operations**: Create, read, update, and delete business terms
345
+ - **Categories**: Organize terms into hierarchical categories
346
+ - **Status Tracking**: Track term lifecycle (draft, approved, deprecated)
347
+ - **Change History**: Automatic tracking of all term modifications
348
+
349
+ ### Term Relationships
350
+
351
+ Define connections between terms:
352
+
353
+ | Relationship Type | Description |
354
+ |-------------------|-------------|
355
+ | **Synonym** | Terms with the same meaning |
356
+ | **Related** | Terms that are conceptually related |
357
+
358
+ ### Search and Filter
359
+
360
+ - Full-text search across term names and definitions
361
+ - Filter by category
362
+ - Filter by status
363
+
364
+ ---
365
+
366
+ ## Data Catalog
367
+
368
+ Register and manage data assets with metadata.
369
+
370
+ ### Asset Types
371
+
372
+ | Type | Description |
373
+ |------|-------------|
374
+ | **Table** | Database tables |
375
+ | **File** | Data files (CSV, Parquet, etc.) |
376
+ | **API** | API endpoints |
377
+
378
+ ### Asset Management
379
+
380
+ - **Registration**: Register data assets with descriptions
381
+ - **Source Linking**: Link assets to data sources
382
+ - **Quality Score**: Track data quality (0-100 scale)
383
+ - **Ownership**: Assign asset owners
384
+
385
+ ### Column Metadata
386
+
387
+ Manage column-level information:
388
+
389
+ - Column name and data type
390
+ - Description
391
+ - Nullable and primary key flags
392
+ - Term mapping (link columns to glossary terms)
393
+ - Sensitivity classification
394
+
395
+ ### Sensitivity Levels
396
+
397
+ | Level | Description |
398
+ |-------|-------------|
399
+ | **Public** | No restrictions |
400
+ | **Internal** | Internal use only |
401
+ | **Confidential** | Restricted access |
402
+ | **Restricted** | Highly sensitive data |
403
+
404
+ ### Tagging
405
+
406
+ Apply custom tags to assets for flexible categorization.
407
+
408
+ ---
409
+
410
+ ## Collaboration
411
+
412
+ Enable team collaboration on data assets.
413
+
414
+ ### Comments
415
+
416
+ - Add comments to terms, assets, and columns
417
+ - Threaded replies for discussions
418
+ - Edit and delete own comments
419
+
420
+ ### Activity Feed
421
+
422
+ Track all changes across the system:
423
+
424
+ - Term creation, updates, and deletion
425
+ - Asset modifications
426
+ - Comment activity
427
+ - Column-term mappings
428
+
429
+ ---
430
+
338
431
  ## UI Features
339
432
 
340
433
  ### Dark Mode
@@ -55,10 +55,14 @@ Compare two datasets to detect schema and distribution changes.
55
55
  ### Dark Mode & i18n
56
56
  Support for dark/light themes and multiple languages (English, Korean).
57
57
 
58
+ ### AI-Powered Translation
59
+ Translate the UI to any language using OpenAI, Anthropic, Ollama, or Mistral with a single command.
60
+
58
61
  ## Documentation
59
62
 
60
63
  - [Getting Started](./getting-started.md) - Installation and quick start guide
61
64
  - [Features](./features.md) - Detailed feature documentation
65
+ - [Internationalization](./internationalization.md) - i18n and AI translation guide
62
66
  - [API Reference](./api.md) - REST API documentation
63
67
  - [Configuration](./configuration.md) - Configuration options
64
68