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.
- {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/PKG-INFO +21 -1
- {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/README.md +20 -0
- {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/docs/api.md +354 -0
- {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/docs/features.md +93 -0
- {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/docs/index.md +4 -0
- truthound_dashboard-1.2.0/docs/internationalization.md +621 -0
- {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/frontend/package.json +9 -2
- {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/frontend/src/App.tsx +11 -0
- {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/frontend/src/api/client.ts +429 -0
- {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/frontend/src/components/Layout.tsx +7 -1
- truthound_dashboard-1.2.0/frontend/src/components/catalog/AssetFormDialog.tsx +207 -0
- truthound_dashboard-1.2.0/frontend/src/components/catalog/ColumnMappingDialog.tsx +105 -0
- truthound_dashboard-1.2.0/frontend/src/components/collaboration/ActivityFeed.tsx +170 -0
- truthound_dashboard-1.2.0/frontend/src/components/collaboration/Comments.tsx +355 -0
- truthound_dashboard-1.2.0/frontend/src/components/glossary/TermFormDialog.tsx +208 -0
- truthound_dashboard-1.2.0/frontend/src/content/catalog.content.ts +118 -0
- truthound_dashboard-1.2.0/frontend/src/content/collaboration.content.ts +69 -0
- {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/frontend/src/content/common.content.ts +5 -8
- truthound_dashboard-1.2.0/frontend/src/content/glossary.content.ts +105 -0
- truthound_dashboard-1.2.0/frontend/src/content/nav.content.ts +27 -0
- {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/frontend/src/mocks/data/store.ts +75 -0
- truthound_dashboard-1.2.0/frontend/src/mocks/factories/catalog.test.ts +193 -0
- truthound_dashboard-1.2.0/frontend/src/mocks/factories/catalog.ts +293 -0
- truthound_dashboard-1.2.0/frontend/src/mocks/factories/collaboration.test.ts +176 -0
- truthound_dashboard-1.2.0/frontend/src/mocks/factories/collaboration.ts +237 -0
- truthound_dashboard-1.2.0/frontend/src/mocks/factories/glossary.test.ts +143 -0
- truthound_dashboard-1.2.0/frontend/src/mocks/factories/glossary.ts +318 -0
- {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/frontend/src/mocks/factories/index.ts +3 -0
- truthound_dashboard-1.2.0/frontend/src/mocks/handlers/catalog.ts +433 -0
- truthound_dashboard-1.2.0/frontend/src/mocks/handlers/collaboration.ts +180 -0
- truthound_dashboard-1.2.0/frontend/src/mocks/handlers/glossary.ts +384 -0
- {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/frontend/src/mocks/handlers/index.ts +6 -0
- truthound_dashboard-1.2.0/frontend/src/pages/Activity.tsx +131 -0
- truthound_dashboard-1.2.0/frontend/src/pages/Catalog.tsx +277 -0
- truthound_dashboard-1.2.0/frontend/src/pages/CatalogDetail.tsx +399 -0
- truthound_dashboard-1.2.0/frontend/src/pages/Glossary.tsx +266 -0
- truthound_dashboard-1.2.0/frontend/src/pages/GlossaryDetail.tsx +352 -0
- truthound_dashboard-1.2.0/frontend/src/stores/catalogStore.test.ts +276 -0
- truthound_dashboard-1.2.0/frontend/src/stores/catalogStore.ts +180 -0
- truthound_dashboard-1.2.0/frontend/src/stores/glossaryStore.test.ts +279 -0
- truthound_dashboard-1.2.0/frontend/src/stores/glossaryStore.ts +187 -0
- truthound_dashboard-1.2.0/frontend/src/test/setup.ts +49 -0
- truthound_dashboard-1.2.0/frontend/src/test/test-utils.tsx +26 -0
- truthound_dashboard-1.2.0/frontend/vitest.config.ts +30 -0
- {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/pyproject.toml +1 -1
- truthound_dashboard-1.2.0/src/truthound_dashboard/api/catalog.py +343 -0
- truthound_dashboard-1.2.0/src/truthound_dashboard/api/collaboration.py +148 -0
- truthound_dashboard-1.2.0/src/truthound_dashboard/api/glossary.py +329 -0
- {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/src/truthound_dashboard/api/router.py +29 -0
- {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/src/truthound_dashboard/core/__init__.py +12 -0
- truthound_dashboard-1.2.0/src/truthound_dashboard/core/phase5/__init__.py +17 -0
- truthound_dashboard-1.2.0/src/truthound_dashboard/core/phase5/activity.py +144 -0
- truthound_dashboard-1.2.0/src/truthound_dashboard/core/phase5/catalog.py +868 -0
- truthound_dashboard-1.2.0/src/truthound_dashboard/core/phase5/collaboration.py +305 -0
- truthound_dashboard-1.2.0/src/truthound_dashboard/core/phase5/glossary.py +828 -0
- {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/src/truthound_dashboard/db/__init__.py +37 -0
- {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/src/truthound_dashboard/db/models.py +693 -0
- {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/src/truthound_dashboard/schemas/__init__.py +114 -0
- truthound_dashboard-1.2.0/src/truthound_dashboard/schemas/catalog.py +352 -0
- truthound_dashboard-1.2.0/src/truthound_dashboard/schemas/collaboration.py +169 -0
- truthound_dashboard-1.2.0/src/truthound_dashboard/schemas/glossary.py +349 -0
- truthound_dashboard-1.2.0/tests/test_api/test_catalog.py +459 -0
- truthound_dashboard-1.2.0/tests/test_api/test_collaboration.py +307 -0
- truthound_dashboard-1.2.0/tests/test_api/test_glossary.py +365 -0
- truthound_dashboard-1.1.0/frontend/src/content/nav.content.ts +0 -34
- {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/.github/workflows/release.yml +0 -0
- {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/.github/workflows/trigger-docs.yml +0 -0
- {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/.gitignore +0 -0
- {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/LICENSE +0 -0
- {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/docs/configuration.md +0 -0
- {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/docs/getting-started.md +0 -0
- {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/e2e/package.json +0 -0
- {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/e2e/playwright.config.ts +0 -0
- {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/e2e/tests/dashboard.spec.ts +0 -0
- {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/e2e/tests/language.spec.ts +0 -0
- {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/e2e/tests/notifications.spec.ts +0 -0
- {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/e2e/tests/theme.spec.ts +0 -0
- {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/frontend/.env.development +0 -0
- {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/frontend/.env.mock +0 -0
- {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/frontend/.env.production +0 -0
- {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/frontend/.eslintrc.cjs +0 -0
- {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/frontend/index.html +0 -0
- {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/frontend/intlayer.config.ts +0 -0
- {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/frontend/netlify.toml +0 -0
- {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/frontend/package-lock.json +0 -0
- {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/frontend/postcss.config.js +0 -0
- {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/frontend/public/favicon.ico +0 -0
- {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/frontend/public/mockServiceWorker.js +0 -0
- {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/frontend/src/assets/logo.png +0 -0
- {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/frontend/src/components/AnimatedNumber.tsx +0 -0
- {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/frontend/src/components/ConfirmDialog.tsx +0 -0
- {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/frontend/src/components/DemoBanner.tsx +0 -0
- {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/frontend/src/components/GlassCard.tsx +0 -0
- {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/frontend/src/components/LoadingFallback.tsx +0 -0
- {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/frontend/src/components/ThemeToggle.tsx +0 -0
- {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/frontend/src/components/theme-provider.tsx +0 -0
- {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/frontend/src/components/ui/alert-dialog.tsx +0 -0
- {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/frontend/src/components/ui/badge.tsx +0 -0
- {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/frontend/src/components/ui/button.tsx +0 -0
- {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/frontend/src/components/ui/card.tsx +0 -0
- {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/frontend/src/components/ui/dialog.tsx +0 -0
- {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/frontend/src/components/ui/dropdown-menu.tsx +0 -0
- {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/frontend/src/components/ui/input.tsx +0 -0
- {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/frontend/src/components/ui/label.tsx +0 -0
- {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/frontend/src/components/ui/select.tsx +0 -0
- {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/frontend/src/components/ui/switch.tsx +0 -0
- {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/frontend/src/components/ui/table.tsx +0 -0
- {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/frontend/src/components/ui/tabs.tsx +0 -0
- {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/frontend/src/components/ui/toast.tsx +0 -0
- {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/frontend/src/components/ui/toaster.tsx +0 -0
- {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/frontend/src/content/dashboard.content.ts +0 -0
- {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/frontend/src/content/demo.content.ts +0 -0
- {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/frontend/src/content/drift.content.ts +0 -0
- {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/frontend/src/content/errors.content.ts +0 -0
- {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/frontend/src/content/index.ts +0 -0
- {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/frontend/src/content/notifications.content.ts +0 -0
- {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/frontend/src/content/schedules.content.ts +0 -0
- {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/frontend/src/content/settings.content.ts +0 -0
- {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/frontend/src/content/sources.content.ts +0 -0
- {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/frontend/src/content/validation.content.ts +0 -0
- {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/frontend/src/hooks/use-api.ts +0 -0
- {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/frontend/src/hooks/use-toast.ts +0 -0
- {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/frontend/src/index.css +0 -0
- {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/frontend/src/lib/intlayer-utils.ts +0 -0
- {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/frontend/src/lib/utils.ts +0 -0
- {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/frontend/src/main.tsx +0 -0
- {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/frontend/src/mocks/browser.ts +0 -0
- {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/frontend/src/mocks/factories/base.ts +0 -0
- {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/frontend/src/mocks/factories/drift.ts +0 -0
- {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/frontend/src/mocks/factories/history.ts +0 -0
- {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/frontend/src/mocks/factories/notifications.ts +0 -0
- {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/frontend/src/mocks/factories/profile.ts +0 -0
- {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/frontend/src/mocks/factories/schedules.ts +0 -0
- {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/frontend/src/mocks/factories/schemas.ts +0 -0
- {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/frontend/src/mocks/factories/sources.ts +0 -0
- {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/frontend/src/mocks/factories/validations.ts +0 -0
- {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/frontend/src/mocks/handlers/drift.ts +0 -0
- {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/frontend/src/mocks/handlers/health.ts +0 -0
- {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/frontend/src/mocks/handlers/history.ts +0 -0
- {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/frontend/src/mocks/handlers/notifications.ts +0 -0
- {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/frontend/src/mocks/handlers/profile.ts +0 -0
- {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/frontend/src/mocks/handlers/schedules.ts +0 -0
- {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/frontend/src/mocks/handlers/schemas.ts +0 -0
- {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/frontend/src/mocks/handlers/sources.ts +0 -0
- {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/frontend/src/mocks/handlers/validations.ts +0 -0
- {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/frontend/src/mocks/index.ts +0 -0
- {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/frontend/src/pages/Dashboard.tsx +0 -0
- {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/frontend/src/pages/Drift.tsx +0 -0
- {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/frontend/src/pages/History.tsx +0 -0
- {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/frontend/src/pages/Notifications.tsx +0 -0
- {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/frontend/src/pages/Profile.tsx +0 -0
- {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/frontend/src/pages/Rules.tsx +0 -0
- {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/frontend/src/pages/Schedules.tsx +0 -0
- {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/frontend/src/pages/SourceDetail.tsx +0 -0
- {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/frontend/src/pages/Sources.tsx +0 -0
- {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/frontend/src/pages/Validations.tsx +0 -0
- {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/frontend/src/providers/index.ts +0 -0
- {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/frontend/src/providers/intlayer/IntlayerProvider.tsx +0 -0
- {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/frontend/src/providers/intlayer/config.ts +0 -0
- {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/frontend/src/providers/intlayer/index.ts +0 -0
- {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/frontend/src/stores/theme.ts +0 -0
- {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/frontend/src/vite-env.d.ts +0 -0
- {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/frontend/tailwind.config.js +0 -0
- {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/frontend/tsconfig.json +0 -0
- {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/frontend/tsconfig.node.json +0 -0
- {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/frontend/vite.config.ts +0 -0
- {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/scripts/load_test.py +0 -0
- {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/src/truthound_dashboard/__init__.py +0 -0
- {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/src/truthound_dashboard/__main__.py +0 -0
- {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/src/truthound_dashboard/api/__init__.py +0 -0
- {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/src/truthound_dashboard/api/deps.py +0 -0
- {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/src/truthound_dashboard/api/drift.py +0 -0
- {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/src/truthound_dashboard/api/error_handlers.py +0 -0
- {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/src/truthound_dashboard/api/health.py +0 -0
- {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/src/truthound_dashboard/api/history.py +0 -0
- {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/src/truthound_dashboard/api/middleware.py +0 -0
- {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/src/truthound_dashboard/api/notifications.py +0 -0
- {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/src/truthound_dashboard/api/profile.py +0 -0
- {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/src/truthound_dashboard/api/rules.py +0 -0
- {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/src/truthound_dashboard/api/schedules.py +0 -0
- {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/src/truthound_dashboard/api/schemas.py +0 -0
- {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/src/truthound_dashboard/api/sources.py +0 -0
- {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/src/truthound_dashboard/api/validations.py +0 -0
- {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/src/truthound_dashboard/cli.py +0 -0
- {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/src/truthound_dashboard/config.py +0 -0
- {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/src/truthound_dashboard/core/base.py +0 -0
- {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/src/truthound_dashboard/core/cache.py +0 -0
- {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/src/truthound_dashboard/core/connections.py +0 -0
- {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/src/truthound_dashboard/core/encryption.py +0 -0
- {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/src/truthound_dashboard/core/exceptions.py +0 -0
- {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/src/truthound_dashboard/core/logging.py +0 -0
- {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/src/truthound_dashboard/core/maintenance.py +0 -0
- {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/src/truthound_dashboard/core/notifications/__init__.py +0 -0
- {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/src/truthound_dashboard/core/notifications/base.py +0 -0
- {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/src/truthound_dashboard/core/notifications/channels.py +0 -0
- {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/src/truthound_dashboard/core/notifications/dispatcher.py +0 -0
- {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/src/truthound_dashboard/core/notifications/events.py +0 -0
- {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/src/truthound_dashboard/core/notifications/service.py +0 -0
- {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/src/truthound_dashboard/core/sampling.py +0 -0
- {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/src/truthound_dashboard/core/scheduler.py +0 -0
- {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/src/truthound_dashboard/core/services.py +0 -0
- {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/src/truthound_dashboard/core/truthound_adapter.py +0 -0
- {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/src/truthound_dashboard/db/base.py +0 -0
- {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/src/truthound_dashboard/db/database.py +0 -0
- {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/src/truthound_dashboard/db/repository.py +0 -0
- {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/src/truthound_dashboard/main.py +0 -0
- {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/src/truthound_dashboard/schemas/base.py +0 -0
- {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/src/truthound_dashboard/schemas/drift.py +0 -0
- {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/src/truthound_dashboard/schemas/history.py +0 -0
- {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/src/truthound_dashboard/schemas/profile.py +0 -0
- {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/src/truthound_dashboard/schemas/rule.py +0 -0
- {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/src/truthound_dashboard/schemas/schedule.py +0 -0
- {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/src/truthound_dashboard/schemas/schema.py +0 -0
- {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/src/truthound_dashboard/schemas/source.py +0 -0
- {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/src/truthound_dashboard/schemas/validation.py +0 -0
- {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/src/truthound_dashboard/static/assets/index-BqJMyAHX.js +0 -0
- {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/src/truthound_dashboard/static/assets/index-DMDxHCTs.js +0 -0
- {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/src/truthound_dashboard/static/assets/index-Dm2D11TK.css +0 -0
- {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/src/truthound_dashboard/static/index.html +0 -0
- {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/src/truthound_dashboard/static/mockServiceWorker.js +0 -0
- {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/src/truthound_dashboard/translate/__init__.py +0 -0
- {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/src/truthound_dashboard/translate/config_updater.py +0 -0
- {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/src/truthound_dashboard/translate/exceptions.py +0 -0
- {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/src/truthound_dashboard/translate/providers/__init__.py +0 -0
- {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/src/truthound_dashboard/translate/providers/anthropic.py +0 -0
- {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/src/truthound_dashboard/translate/providers/base.py +0 -0
- {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/src/truthound_dashboard/translate/providers/mistral.py +0 -0
- {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/src/truthound_dashboard/translate/providers/ollama.py +0 -0
- {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/src/truthound_dashboard/translate/providers/openai.py +0 -0
- {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/src/truthound_dashboard/translate/providers/registry.py +0 -0
- {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/src/truthound_dashboard/translate/translator.py +0 -0
- {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/tests/__init__.py +0 -0
- {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/tests/conftest.py +0 -0
- {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/tests/test_api/__init__.py +0 -0
- {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/tests/test_api/test_health.py +0 -0
- {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/tests/test_api/test_rules.py +0 -0
- {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/tests/test_api/test_sources.py +0 -0
- {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/tests/test_core/__init__.py +0 -0
- {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/tests/test_core/test_services.py +0 -0
- {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/tests/test_db/__init__.py +0 -0
- {truthound_dashboard-1.1.0 → truthound_dashboard-1.2.0}/tests/test_db/test_models.py +0 -0
- {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.
|
|
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
|
|