@jazzmind/busibox-app 3.0.18 → 3.0.20
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.
- package/dist/components/UserDropdown.d.ts +0 -16
- package/dist/components/UserDropdown.d.ts.map +1 -1
- package/dist/components/UserDropdown.js +2 -2
- package/dist/components/UserDropdown.js.map +1 -1
- package/dist/components/auth/PasskeyRequiredWrapper.d.ts +0 -8
- package/dist/components/auth/PasskeyRequiredWrapper.d.ts.map +1 -1
- package/dist/components/auth/PasskeyRequiredWrapper.js +2 -2
- package/dist/components/auth/PasskeyRequiredWrapper.js.map +1 -1
- package/dist/components/auth/ProtectedRoute.d.ts +0 -9
- package/dist/components/auth/ProtectedRoute.d.ts.map +1 -1
- package/dist/components/auth/ProtectedRoute.js +2 -2
- package/dist/components/auth/ProtectedRoute.js.map +1 -1
- package/dist/components/auth/SessionProvider.d.ts +0 -40
- package/dist/components/auth/SessionProvider.d.ts.map +1 -1
- package/dist/components/auth/SessionProvider.js +2 -2
- package/dist/components/auth/SessionProvider.js.map +1 -1
- package/dist/components/chat/AgentBadge.d.ts +0 -5
- package/dist/components/chat/AgentBadge.d.ts.map +1 -1
- package/dist/components/chat/AgentBadge.js +2 -2
- package/dist/components/chat/AgentBadge.js.map +1 -1
- package/dist/components/chat/AgentSelectionPanel.d.ts +0 -6
- package/dist/components/chat/AgentSelectionPanel.d.ts.map +1 -1
- package/dist/components/chat/AgentSelectionPanel.js +2 -2
- package/dist/components/chat/AgentSelectionPanel.js.map +1 -1
- package/dist/components/chat/AgentSelector.d.ts +0 -6
- package/dist/components/chat/AgentSelector.d.ts.map +1 -1
- package/dist/components/chat/AgentSelector.js +2 -2
- package/dist/components/chat/AgentSelector.js.map +1 -1
- package/dist/components/chat/AgentToolSelector.d.ts +0 -7
- package/dist/components/chat/AgentToolSelector.d.ts.map +1 -1
- package/dist/components/chat/AgentToolSelector.js +2 -2
- package/dist/components/chat/AgentToolSelector.js.map +1 -1
- package/dist/components/chat/AttachmentPreview.d.ts.map +1 -1
- package/dist/components/chat/AttachmentPreview.js +0 -5
- package/dist/components/chat/AttachmentPreview.js.map +1 -1
- package/dist/components/chat/AttachmentUploader.d.ts +0 -5
- package/dist/components/chat/AttachmentUploader.d.ts.map +1 -1
- package/dist/components/chat/AttachmentUploader.js +2 -2
- package/dist/components/chat/AttachmentUploader.js.map +1 -1
- package/dist/components/chat/ChatContainer.d.ts +0 -6
- package/dist/components/chat/ChatContainer.d.ts.map +1 -1
- package/dist/components/chat/ChatContainer.js +2 -2
- package/dist/components/chat/ChatContainer.js.map +1 -1
- package/dist/components/chat/ConversationSidebar.d.ts +0 -5
- package/dist/components/chat/ConversationSidebar.d.ts.map +1 -1
- package/dist/components/chat/ConversationSidebar.js +2 -2
- package/dist/components/chat/ConversationSidebar.js.map +1 -1
- package/dist/components/chat/DeleteConversationModal.d.ts +0 -3
- package/dist/components/chat/DeleteConversationModal.d.ts.map +1 -1
- package/dist/components/chat/DeleteConversationModal.js +2 -2
- package/dist/components/chat/DeleteConversationModal.js.map +1 -1
- package/dist/components/chat/FullChatInterface.d.ts +0 -23
- package/dist/components/chat/FullChatInterface.d.ts.map +1 -1
- package/dist/components/chat/FullChatInterface.js +2 -2
- package/dist/components/chat/FullChatInterface.js.map +1 -1
- package/dist/components/chat/InsightEditModal.d.ts +0 -5
- package/dist/components/chat/InsightEditModal.d.ts.map +1 -1
- package/dist/components/chat/InsightEditModal.js +2 -2
- package/dist/components/chat/InsightEditModal.js.map +1 -1
- package/dist/components/chat/LibrarySelector.d.ts +0 -6
- package/dist/components/chat/LibrarySelector.d.ts.map +1 -1
- package/dist/components/chat/LibrarySelector.js +2 -2
- package/dist/components/chat/LibrarySelector.js.map +1 -1
- package/dist/components/chat/MessageInput.d.ts +0 -5
- package/dist/components/chat/MessageInput.d.ts.map +1 -1
- package/dist/components/chat/MessageInput.js +2 -2
- package/dist/components/chat/MessageInput.js.map +1 -1
- package/dist/components/chat/MessageList.d.ts +0 -5
- package/dist/components/chat/MessageList.d.ts.map +1 -1
- package/dist/components/chat/MessageList.js +2 -2
- package/dist/components/chat/MessageList.js.map +1 -1
- package/dist/components/chat/RawContentToggle.d.ts.map +1 -1
- package/dist/components/chat/RawContentToggle.js +0 -6
- package/dist/components/chat/RawContentToggle.js.map +1 -1
- package/dist/components/chat/SearchToggles.d.ts +0 -5
- package/dist/components/chat/SearchToggles.d.ts.map +1 -1
- package/dist/components/chat/SearchToggles.js +2 -2
- package/dist/components/chat/SearchToggles.js.map +1 -1
- package/dist/components/chat/SimpleChatInterface.d.ts +0 -25
- package/dist/components/chat/SimpleChatInterface.d.ts.map +1 -1
- package/dist/components/chat/SimpleChatInterface.js +2 -2
- package/dist/components/chat/SimpleChatInterface.js.map +1 -1
- package/dist/components/chat/ThinkingSection.d.ts +0 -7
- package/dist/components/chat/ThinkingSection.d.ts.map +1 -1
- package/dist/components/chat/ThinkingSection.js +2 -2
- package/dist/components/chat/ThinkingSection.js.map +1 -1
- package/dist/components/chat/ThinkingToggle.d.ts +0 -6
- package/dist/components/chat/ThinkingToggle.d.ts.map +1 -1
- package/dist/components/chat/ThinkingToggle.js +2 -2
- package/dist/components/chat/ThinkingToggle.js.map +1 -1
- package/dist/components/chat/ToolSelector.d.ts +0 -6
- package/dist/components/chat/ToolSelector.d.ts.map +1 -1
- package/dist/components/chat/ToolSelector.js +2 -2
- package/dist/components/chat/ToolSelector.js.map +1 -1
- package/dist/components/shared/AppIcon.d.ts.map +1 -1
- package/dist/components/shared/AppIcon.js +2 -2
- package/dist/components/shared/AppIcon.js.map +1 -1
- package/dist/components/shared/Modal.d.ts.map +1 -1
- package/dist/components/shared/Modal.js +2 -2
- package/dist/components/shared/Modal.js.map +1 -1
- package/dist/components/workflow/WorkflowList.d.ts.map +1 -1
- package/dist/components/workflow/WorkflowList.js +2 -2
- package/dist/components/workflow/WorkflowList.js.map +1 -1
- package/dist/contexts/AuthContext.d.ts.map +1 -1
- package/dist/contexts/AuthContext.js +2 -2
- package/dist/contexts/AuthContext.js.map +1 -1
- package/dist/contexts/CustomizationContext.d.ts.map +1 -1
- package/dist/contexts/CustomizationContext.js +2 -2
- package/dist/contexts/CustomizationContext.js.map +1 -1
- package/dist/contexts/ThemeContext.d.ts.map +1 -1
- package/dist/contexts/ThemeContext.js +2 -2
- package/dist/contexts/ThemeContext.js.map +1 -1
- package/dist/layout/AdminHeader.d.ts +0 -5
- package/dist/layout/AdminHeader.d.ts.map +1 -1
- package/dist/layout/AdminHeader.js +2 -2
- package/dist/layout/AdminHeader.js.map +1 -1
- package/dist/layout/Footer.d.ts +0 -5
- package/dist/layout/Footer.d.ts.map +1 -1
- package/dist/layout/Footer.js +2 -2
- package/dist/layout/Footer.js.map +1 -1
- package/dist/layout/Header.d.ts.map +1 -1
- package/dist/layout/Header.js +2 -2
- package/dist/layout/Header.js.map +1 -1
- package/dist/layout/ThemeToggle.d.ts +0 -5
- package/dist/layout/ThemeToggle.d.ts.map +1 -1
- package/dist/layout/ThemeToggle.js +2 -2
- package/dist/layout/ThemeToggle.js.map +1 -1
- package/dist/lib/authz/sso-generator.d.ts.map +1 -1
- package/dist/lib/authz/sso-generator.js +7 -4
- package/dist/lib/authz/sso-generator.js.map +1 -1
- package/dist/lib/data/index.d.ts +2 -0
- package/dist/lib/data/index.d.ts.map +1 -1
- package/dist/lib/data/index.js +2 -0
- package/dist/lib/data/index.js.map +1 -1
- package/dist/lib/data/sharing.d.ts +154 -0
- package/dist/lib/data/sharing.d.ts.map +1 -0
- package/dist/lib/data/sharing.js +293 -0
- package/dist/lib/data/sharing.js.map +1 -0
- package/dist/lib/deploy/app-config.d.ts.map +1 -1
- package/dist/lib/deploy/app-config.js +5 -1
- package/dist/lib/deploy/app-config.js.map +1 -1
- package/dist/lib/deploy/app-permissions.d.ts +2 -0
- package/dist/lib/deploy/app-permissions.d.ts.map +1 -1
- package/dist/lib/deploy/app-permissions.js +2 -0
- package/dist/lib/deploy/app-permissions.js.map +1 -1
- package/package.json +1 -1
- package/dist/lib/agent/agent-api-helpers.d.ts +0 -16
- package/dist/lib/agent/agent-api-helpers.d.ts.map +0 -1
- package/dist/lib/agent/agent-api-helpers.js +0 -50
- package/dist/lib/agent/agent-api-helpers.js.map +0 -1
- package/dist/lib/agent/api-helpers.d.ts +0 -16
- package/dist/lib/agent/api-helpers.d.ts.map +0 -1
- package/dist/lib/agent/api-helpers.js +0 -50
- package/dist/lib/agent/api-helpers.js.map +0 -1
- package/dist/lib/agent/chat-cleanup.d.ts +0 -34
- package/dist/lib/agent/chat-cleanup.d.ts.map +0 -1
- package/dist/lib/agent/chat-cleanup.js +0 -133
- package/dist/lib/agent/chat-cleanup.js.map +0 -1
- package/dist/lib/agent/client.d.ts +0 -55
- package/dist/lib/agent/client.d.ts.map +0 -1
- package/dist/lib/agent/client.js +0 -103
- package/dist/lib/agent/client.js.map +0 -1
- package/dist/lib/agent/openai.d.ts +0 -94
- package/dist/lib/agent/openai.d.ts.map +0 -1
- package/dist/lib/agent/openai.js +0 -290
- package/dist/lib/agent/openai.js.map +0 -1
- package/dist/lib/ai/dual-model-router.d.ts +0 -130
- package/dist/lib/ai/dual-model-router.d.ts.map +0 -1
- package/dist/lib/ai/dual-model-router.js +0 -413
- package/dist/lib/ai/dual-model-router.js.map +0 -1
- package/dist/lib/ai/openai.d.ts +0 -94
- package/dist/lib/ai/openai.d.ts.map +0 -1
- package/dist/lib/ai/openai.js +0 -290
- package/dist/lib/ai/openai.js.map +0 -1
- package/dist/lib/ai/tools.d.ts +0 -64
- package/dist/lib/ai/tools.d.ts.map +0 -1
- package/dist/lib/ai/tools.js +0 -159
- package/dist/lib/ai/tools.js.map +0 -1
- package/dist/lib/audit/client.d.ts +0 -138
- package/dist/lib/audit/client.d.ts.map +0 -1
- package/dist/lib/audit/client.js +0 -486
- package/dist/lib/audit/client.js.map +0 -1
- package/dist/lib/audit/index.d.ts +0 -6
- package/dist/lib/audit/index.d.ts.map +0 -1
- package/dist/lib/audit/index.js +0 -6
- package/dist/lib/audit/index.js.map +0 -1
- package/dist/lib/auth/auth-helper.d.ts +0 -167
- package/dist/lib/auth/auth-helper.d.ts.map +0 -1
- package/dist/lib/auth/auth-helper.js +0 -345
- package/dist/lib/auth/auth-helper.js.map +0 -1
- package/dist/lib/auth/auth-state-manager.d.ts +0 -201
- package/dist/lib/auth/auth-state-manager.d.ts.map +0 -1
- package/dist/lib/auth/auth-state-manager.js +0 -597
- package/dist/lib/auth/auth-state-manager.js.map +0 -1
- package/dist/lib/auth/client.d.ts +0 -276
- package/dist/lib/auth/client.d.ts.map +0 -1
- package/dist/lib/auth/client.js +0 -325
- package/dist/lib/auth/client.js.map +0 -1
- package/dist/lib/auth/index.d.ts +0 -10
- package/dist/lib/auth/index.d.ts.map +0 -1
- package/dist/lib/auth/index.js +0 -10
- package/dist/lib/auth/index.js.map +0 -1
- package/dist/lib/auth/sso-route-handler.d.ts +0 -114
- package/dist/lib/auth/sso-route-handler.d.ts.map +0 -1
- package/dist/lib/auth/sso-route-handler.js +0 -199
- package/dist/lib/auth/sso-route-handler.js.map +0 -1
- package/dist/lib/auth/sso.d.ts +0 -162
- package/dist/lib/auth/sso.d.ts.map +0 -1
- package/dist/lib/auth/sso.js +0 -282
- package/dist/lib/auth/sso.js.map +0 -1
- package/dist/lib/authz/email.d.ts +0 -65
- package/dist/lib/authz/email.d.ts.map +0 -1
- package/dist/lib/authz/email.js +0 -112
- package/dist/lib/authz/email.js.map +0 -1
- package/dist/lib/authz/permissions.d.ts +0 -109
- package/dist/lib/authz/permissions.d.ts.map +0 -1
- package/dist/lib/authz/permissions.js +0 -238
- package/dist/lib/authz/permissions.js.map +0 -1
- package/dist/lib/authz/service-audit.d.ts +0 -41
- package/dist/lib/authz/service-audit.d.ts.map +0 -1
- package/dist/lib/authz/service-audit.js +0 -60
- package/dist/lib/authz/service-audit.js.map +0 -1
- package/dist/lib/chat-server/agent-api-client.d.ts +0 -151
- package/dist/lib/chat-server/agent-api-client.d.ts.map +0 -1
- package/dist/lib/chat-server/agent-api-client.js +0 -162
- package/dist/lib/chat-server/agent-api-client.js.map +0 -1
- package/dist/lib/chat-server/attachments.d.ts +0 -118
- package/dist/lib/chat-server/attachments.d.ts.map +0 -1
- package/dist/lib/chat-server/attachments.js +0 -317
- package/dist/lib/chat-server/attachments.js.map +0 -1
- package/dist/lib/chat-server/cleanup.d.ts +0 -34
- package/dist/lib/chat-server/cleanup.d.ts.map +0 -1
- package/dist/lib/chat-server/cleanup.js +0 -133
- package/dist/lib/chat-server/cleanup.js.map +0 -1
- package/dist/lib/chat-server/conversations.d.ts +0 -159
- package/dist/lib/chat-server/conversations.d.ts.map +0 -1
- package/dist/lib/chat-server/conversations.js +0 -278
- package/dist/lib/chat-server/conversations.js.map +0 -1
- package/dist/lib/chat-server/insights.d.ts +0 -84
- package/dist/lib/chat-server/insights.d.ts.map +0 -1
- package/dist/lib/chat-server/insights.js +0 -193
- package/dist/lib/chat-server/insights.js.map +0 -1
- package/dist/lib/chat-server/messages.d.ts +0 -154
- package/dist/lib/chat-server/messages.d.ts.map +0 -1
- package/dist/lib/chat-server/messages.js +0 -282
- package/dist/lib/chat-server/messages.js.map +0 -1
- package/dist/lib/chat-server/middleware.d.ts +0 -119
- package/dist/lib/chat-server/middleware.d.ts.map +0 -1
- package/dist/lib/chat-server/middleware.js +0 -234
- package/dist/lib/chat-server/middleware.js.map +0 -1
- package/dist/lib/chat-server/models.d.ts +0 -60
- package/dist/lib/chat-server/models.d.ts.map +0 -1
- package/dist/lib/chat-server/models.js +0 -205
- package/dist/lib/chat-server/models.js.map +0 -1
- package/dist/lib/chat-server/search.d.ts +0 -89
- package/dist/lib/chat-server/search.d.ts.map +0 -1
- package/dist/lib/chat-server/search.js +0 -203
- package/dist/lib/chat-server/search.js.map +0 -1
- package/dist/lib/chat-server/sharing.d.ts +0 -70
- package/dist/lib/chat-server/sharing.d.ts.map +0 -1
- package/dist/lib/chat-server/sharing.js +0 -146
- package/dist/lib/chat-server/sharing.js.map +0 -1
- package/dist/lib/data/embeddings-app-client.d.ts +0 -37
- package/dist/lib/data/embeddings-app-client.d.ts.map +0 -1
- package/dist/lib/data/embeddings-app-client.js +0 -72
- package/dist/lib/data/embeddings-app-client.js.map +0 -1
- package/dist/lib/deploy/manifest-validator.d.ts +0 -25
- package/dist/lib/deploy/manifest-validator.d.ts.map +0 -1
- package/dist/lib/deploy/manifest-validator.js +0 -142
- package/dist/lib/deploy/manifest-validator.js.map +0 -1
- package/dist/lib/embeddings/data-client.d.ts +0 -37
- package/dist/lib/embeddings/data-client.d.ts.map +0 -1
- package/dist/lib/embeddings/data-client.js +0 -72
- package/dist/lib/embeddings/data-client.js.map +0 -1
- package/dist/lib/hooks/useMediaQuery.d.ts +0 -6
- package/dist/lib/hooks/useMediaQuery.d.ts.map +0 -1
- package/dist/lib/hooks/useMediaQuery.js +0 -18
- package/dist/lib/hooks/useMediaQuery.js.map +0 -1
- package/dist/lib/insights/client.d.ts +0 -131
- package/dist/lib/insights/client.d.ts.map +0 -1
- package/dist/lib/insights/client.js +0 -306
- package/dist/lib/insights/client.js.map +0 -1
- package/dist/lib/insights/index.d.ts +0 -5
- package/dist/lib/insights/index.d.ts.map +0 -1
- package/dist/lib/insights/index.js +0 -5
- package/dist/lib/insights/index.js.map +0 -1
- package/dist/lib/next/authz-client.d.ts +0 -120
- package/dist/lib/next/authz-client.d.ts.map +0 -1
- package/dist/lib/next/authz-client.js +0 -203
- package/dist/lib/next/authz-client.js.map +0 -1
- package/dist/lib/next/passkey.d.ts +0 -78
- package/dist/lib/next/passkey.d.ts.map +0 -1
- package/dist/lib/next/passkey.js +0 -380
- package/dist/lib/next/passkey.js.map +0 -1
- package/dist/lib/next/sso.d.ts +0 -51
- package/dist/lib/next/sso.d.ts.map +0 -1
- package/dist/lib/next/sso.js +0 -167
- package/dist/lib/next/sso.js.map +0 -1
- package/dist/lib/rbac/client.d.ts +0 -320
- package/dist/lib/rbac/client.d.ts.map +0 -1
- package/dist/lib/rbac/client.js +0 -532
- package/dist/lib/rbac/client.js.map +0 -1
- package/dist/lib/rbac/index.d.ts +0 -6
- package/dist/lib/rbac/index.d.ts.map +0 -1
- package/dist/lib/rbac/index.js +0 -6
- package/dist/lib/rbac/index.js.map +0 -1
- package/dist/lib/search/providers.d.ts +0 -105
- package/dist/lib/search/providers.d.ts.map +0 -1
- package/dist/lib/search/providers.js +0 -140
- package/dist/lib/search/providers.js.map +0 -1
- package/dist/lib/services/api-client.d.ts +0 -46
- package/dist/lib/services/api-client.d.ts.map +0 -1
- package/dist/lib/services/api-client.js +0 -80
- package/dist/lib/services/api-client.js.map +0 -1
- package/dist/lib/services/app-library.d.ts +0 -36
- package/dist/lib/services/app-library.d.ts.map +0 -1
- package/dist/lib/services/app-library.js +0 -123
- package/dist/lib/services/app-library.js.map +0 -1
- package/dist/lib/services/app-utils.d.ts +0 -22
- package/dist/lib/services/app-utils.d.ts.map +0 -1
- package/dist/lib/services/app-utils.js +0 -36
- package/dist/lib/services/app-utils.js.map +0 -1
- package/dist/lib/services/audit.d.ts +0 -41
- package/dist/lib/services/audit.d.ts.map +0 -1
- package/dist/lib/services/audit.js +0 -60
- package/dist/lib/services/audit.js.map +0 -1
- package/dist/lib/services/database-cloner.d.ts +0 -28
- package/dist/lib/services/database-cloner.d.ts.map +0 -1
- package/dist/lib/services/database-cloner.js +0 -197
- package/dist/lib/services/database-cloner.js.map +0 -1
- package/dist/lib/services/default-apps.d.ts +0 -31
- package/dist/lib/services/default-apps.d.ts.map +0 -1
- package/dist/lib/services/default-apps.js +0 -121
- package/dist/lib/services/default-apps.js.map +0 -1
- package/dist/lib/services/deploy-api-client.d.ts +0 -184
- package/dist/lib/services/deploy-api-client.d.ts.map +0 -1
- package/dist/lib/services/deploy-api-client.js +0 -208
- package/dist/lib/services/deploy-api-client.js.map +0 -1
- package/dist/lib/services/deployment-service-client.d.ts +0 -122
- package/dist/lib/services/deployment-service-client.d.ts.map +0 -1
- package/dist/lib/services/deployment-service-client.js +0 -245
- package/dist/lib/services/deployment-service-client.js.map +0 -1
- package/dist/lib/services/docs.d.ts +0 -80
- package/dist/lib/services/docs.d.ts.map +0 -1
- package/dist/lib/services/docs.js +0 -160
- package/dist/lib/services/docs.js.map +0 -1
- package/dist/lib/services/email-validation.d.ts +0 -33
- package/dist/lib/services/email-validation.d.ts.map +0 -1
- package/dist/lib/services/email-validation.js +0 -70
- package/dist/lib/services/email-validation.js.map +0 -1
- package/dist/lib/services/email.d.ts +0 -65
- package/dist/lib/services/email.d.ts.map +0 -1
- package/dist/lib/services/email.js +0 -112
- package/dist/lib/services/email.js.map +0 -1
- package/dist/lib/services/github-manifest-fetcher.d.ts +0 -74
- package/dist/lib/services/github-manifest-fetcher.d.ts.map +0 -1
- package/dist/lib/services/github-manifest-fetcher.js +0 -168
- package/dist/lib/services/github-manifest-fetcher.js.map +0 -1
- package/dist/lib/services/libraries.d.ts +0 -124
- package/dist/lib/services/libraries.d.ts.map +0 -1
- package/dist/lib/services/libraries.js +0 -507
- package/dist/lib/services/libraries.js.map +0 -1
- package/dist/lib/services/litellm.d.ts +0 -33
- package/dist/lib/services/litellm.d.ts.map +0 -1
- package/dist/lib/services/litellm.js +0 -222
- package/dist/lib/services/litellm.js.map +0 -1
- package/dist/lib/services/manifest-schema.d.ts +0 -66
- package/dist/lib/services/manifest-schema.d.ts.map +0 -1
- package/dist/lib/services/manifest-schema.js +0 -86
- package/dist/lib/services/manifest-schema.js.map +0 -1
- package/dist/lib/services/manifest-validator.d.ts +0 -25
- package/dist/lib/services/manifest-validator.d.ts.map +0 -1
- package/dist/lib/services/manifest-validator.js +0 -142
- package/dist/lib/services/manifest-validator.js.map +0 -1
- package/dist/lib/services/manifest.d.ts +0 -45
- package/dist/lib/services/manifest.d.ts.map +0 -1
- package/dist/lib/services/manifest.js +0 -137
- package/dist/lib/services/manifest.js.map +0 -1
- package/dist/lib/services/permissions.d.ts +0 -109
- package/dist/lib/services/permissions.d.ts.map +0 -1
- package/dist/lib/services/permissions.js +0 -238
- package/dist/lib/services/permissions.js.map +0 -1
- package/dist/lib/services/service-client.d.ts +0 -99
- package/dist/lib/services/service-client.d.ts.map +0 -1
- package/dist/lib/services/service-client.js +0 -146
- package/dist/lib/services/service-client.js.map +0 -1
- package/dist/lib/services/tags.d.ts +0 -37
- package/dist/lib/services/tags.d.ts.map +0 -1
- package/dist/lib/services/tags.js +0 -189
- package/dist/lib/services/tags.js.map +0 -1
- package/dist/lib/services/url-validation.d.ts +0 -22
- package/dist/lib/services/url-validation.d.ts.map +0 -1
- package/dist/lib/services/url-validation.js +0 -86
- package/dist/lib/services/url-validation.js.map +0 -1
- package/dist/lib/services/user-management.d.ts +0 -81
- package/dist/lib/services/user-management.d.ts.map +0 -1
- package/dist/lib/services/user-management.js +0 -154
- package/dist/lib/services/user-management.js.map +0 -1
- package/dist/lib/storage/index.d.ts +0 -11
- package/dist/lib/storage/index.d.ts.map +0 -1
- package/dist/lib/storage/index.js +0 -12
- package/dist/lib/storage/index.js.map +0 -1
- package/dist/lib/storage/types.d.ts +0 -61
- package/dist/lib/storage/types.d.ts.map +0 -1
- package/dist/lib/storage/types.js +0 -8
- package/dist/lib/storage/types.js.map +0 -1
- package/dist/lib/stores/app-config-store.d.ts +0 -90
- package/dist/lib/stores/app-config-store.d.ts.map +0 -1
- package/dist/lib/stores/app-config-store.js +0 -491
- package/dist/lib/stores/app-config-store.js.map +0 -1
- package/dist/lib/stores/bridge-config-store.d.ts +0 -44
- package/dist/lib/stores/bridge-config-store.d.ts.map +0 -1
- package/dist/lib/stores/bridge-config-store.js +0 -207
- package/dist/lib/stores/bridge-config-store.js.map +0 -1
- package/dist/lib/stores/chat-config-store.d.ts +0 -28
- package/dist/lib/stores/chat-config-store.d.ts.map +0 -1
- package/dist/lib/stores/chat-config-store.js +0 -152
- package/dist/lib/stores/chat-config-store.js.map +0 -1
- package/dist/lib/stores/data-settings-store.d.ts +0 -44
- package/dist/lib/stores/data-settings-store.d.ts.map +0 -1
- package/dist/lib/stores/data-settings-store.js +0 -202
- package/dist/lib/stores/data-settings-store.js.map +0 -1
- package/dist/lib/stores/email-config-store.d.ts +0 -45
- package/dist/lib/stores/email-config-store.d.ts.map +0 -1
- package/dist/lib/stores/email-config-store.js +0 -185
- package/dist/lib/stores/email-config-store.js.map +0 -1
- package/dist/lib/stores/portal-config-store.d.ts +0 -38
- package/dist/lib/stores/portal-config-store.d.ts.map +0 -1
- package/dist/lib/stores/portal-config-store.js +0 -238
- package/dist/lib/stores/portal-config-store.js.map +0 -1
- package/dist/lib/stores/video-store.d.ts +0 -91
- package/dist/lib/stores/video-store.d.ts.map +0 -1
- package/dist/lib/stores/video-store.js +0 -451
- package/dist/lib/stores/video-store.js.map +0 -1
- package/dist/lib/videos/access-control.d.ts +0 -35
- package/dist/lib/videos/access-control.d.ts.map +0 -1
- package/dist/lib/videos/access-control.js +0 -63
- package/dist/lib/videos/access-control.js.map +0 -1
- package/dist/lib/videos/agent-api-client.d.ts +0 -46
- package/dist/lib/videos/agent-api-client.d.ts.map +0 -1
- package/dist/lib/videos/agent-api-client.js +0 -75
- package/dist/lib/videos/agent-api-client.js.map +0 -1
- package/dist/lib/videos/creation.d.ts +0 -24
- package/dist/lib/videos/creation.d.ts.map +0 -1
- package/dist/lib/videos/creation.js +0 -112
- package/dist/lib/videos/creation.js.map +0 -1
- package/dist/lib/videos/expiration.d.ts +0 -13
- package/dist/lib/videos/expiration.d.ts.map +0 -1
- package/dist/lib/videos/expiration.js +0 -95
- package/dist/lib/videos/expiration.js.map +0 -1
- package/dist/lib/videos/image-resize.d.ts +0 -42
- package/dist/lib/videos/image-resize.d.ts.map +0 -1
- package/dist/lib/videos/image-resize.js +0 -106
- package/dist/lib/videos/image-resize.js.map +0 -1
- package/dist/lib/videos/processing.d.ts +0 -35
- package/dist/lib/videos/processing.d.ts.map +0 -1
- package/dist/lib/videos/processing.js +0 -154
- package/dist/lib/videos/processing.js.map +0 -1
- package/dist/lib/videos/status.d.ts +0 -2
- package/dist/lib/videos/status.d.ts.map +0 -1
- package/dist/lib/videos/status.js +0 -141
- package/dist/lib/videos/status.js.map +0 -1
- package/dist/lib/videos/upload.d.ts +0 -41
- package/dist/lib/videos/upload.d.ts.map +0 -1
- package/dist/lib/videos/upload.js +0 -118
- package/dist/lib/videos/upload.js.map +0 -1
- package/dist/lib/videos/url-normalization.d.ts +0 -29
- package/dist/lib/videos/url-normalization.d.ts.map +0 -1
- package/dist/lib/videos/url-normalization.js +0 -61
- package/dist/lib/videos/url-normalization.js.map +0 -1
- package/dist/sso/index.d.ts +0 -3
- package/dist/sso/index.d.ts.map +0 -1
- package/dist/sso/index.js +0 -3
- package/dist/sso/index.js.map +0 -1
- package/dist/sso/token.d.ts +0 -17
- package/dist/sso/token.d.ts.map +0 -1
- package/dist/sso/token.js +0 -57
- package/dist/sso/token.js.map +0 -1
- package/dist/types/sso.d.ts +0 -37
- package/dist/types/sso.d.ts.map +0 -1
- package/dist/types/sso.js +0 -2
- package/dist/types/sso.js.map +0 -1
|
@@ -1,306 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Insights API Client for busibox-app
|
|
3
|
-
*
|
|
4
|
-
* Thin wrapper around agent-api HTTP endpoints for chat insights.
|
|
5
|
-
* Insights are agent memories stored in Milvus.
|
|
6
|
-
*/
|
|
7
|
-
import 'server-only';
|
|
8
|
-
// Agent API configuration (insights migrated from search-api to agent-api)
|
|
9
|
-
const AGENT_API_URL = process.env.AGENT_API_URL || process.env.NEXT_PUBLIC_AGENT_API_URL || 'http://localhost:4111';
|
|
10
|
-
// Legacy: Search API fallback
|
|
11
|
-
const SEARCH_API_URL = process.env.SEARCH_API_URL || process.env.NEXT_PUBLIC_SEARCH_API_URL || 'http://localhost:8001';
|
|
12
|
-
// Use agent-api for insights
|
|
13
|
-
const INSIGHTS_API_URL = AGENT_API_URL;
|
|
14
|
-
/**
|
|
15
|
-
* Initialize the chat_insights collection in Milvus
|
|
16
|
-
*
|
|
17
|
-
* Creates the collection with schema if it doesn't exist.
|
|
18
|
-
* This is idempotent - safe to call multiple times.
|
|
19
|
-
*/
|
|
20
|
-
export async function initializeChatInsightsCollection(tokenManager) {
|
|
21
|
-
let headers = {
|
|
22
|
-
'Content-Type': 'application/json',
|
|
23
|
-
};
|
|
24
|
-
if (tokenManager) {
|
|
25
|
-
try {
|
|
26
|
-
const token = await tokenManager.getAuthzToken('agent-api', ['insights:write']);
|
|
27
|
-
headers['Authorization'] = `Bearer ${token}`;
|
|
28
|
-
}
|
|
29
|
-
catch (error) {
|
|
30
|
-
console.warn('[initializeChatInsightsCollection] Failed to get auth token:', error);
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
const response = await fetch(`${INSIGHTS_API_URL}/insights/init`, {
|
|
34
|
-
method: 'POST',
|
|
35
|
-
headers,
|
|
36
|
-
});
|
|
37
|
-
if (!response.ok) {
|
|
38
|
-
const error = await response.json().catch(() => ({ detail: response.statusText }));
|
|
39
|
-
throw new Error(`Failed to initialize collection: ${error.detail || response.statusText}`);
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
/**
|
|
43
|
-
* Insert insights into Milvus
|
|
44
|
-
*
|
|
45
|
-
* @param insights - Array of insights to insert
|
|
46
|
-
* @param tokenManager - Token manager for authentication
|
|
47
|
-
*/
|
|
48
|
-
export async function insertInsights(insights, tokenManager) {
|
|
49
|
-
if (insights.length === 0) {
|
|
50
|
-
return;
|
|
51
|
-
}
|
|
52
|
-
let headers = {
|
|
53
|
-
'Content-Type': 'application/json',
|
|
54
|
-
};
|
|
55
|
-
if (tokenManager) {
|
|
56
|
-
try {
|
|
57
|
-
const token = await tokenManager.getAuthzToken('agent-api', ['insights:write']);
|
|
58
|
-
headers['Authorization'] = `Bearer ${token}`;
|
|
59
|
-
}
|
|
60
|
-
catch (error) {
|
|
61
|
-
console.warn('[insertInsights] Failed to get auth token:', error);
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
const response = await fetch(`${INSIGHTS_API_URL}/insights`, {
|
|
65
|
-
method: 'POST',
|
|
66
|
-
headers,
|
|
67
|
-
body: JSON.stringify({ insights }),
|
|
68
|
-
});
|
|
69
|
-
if (!response.ok) {
|
|
70
|
-
const error = await response.json().catch(() => ({ detail: response.statusText }));
|
|
71
|
-
throw new Error(`Failed to insert insights: ${error.detail || response.statusText}`);
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
/**
|
|
75
|
-
* Search for relevant insights based on query
|
|
76
|
-
*
|
|
77
|
-
* @param query - Search query text
|
|
78
|
-
* @param userId - User ID to filter results
|
|
79
|
-
* @param options - Search configuration
|
|
80
|
-
* @param tokenManager - Token manager for authentication
|
|
81
|
-
* @returns Array of relevant insights with scores
|
|
82
|
-
*/
|
|
83
|
-
export async function searchInsights(query, userId, options = {}, tokenManager) {
|
|
84
|
-
const { limit = 3, scoreThreshold = 0.7 } = options;
|
|
85
|
-
let headers = {
|
|
86
|
-
'Content-Type': 'application/json',
|
|
87
|
-
};
|
|
88
|
-
if (tokenManager) {
|
|
89
|
-
try {
|
|
90
|
-
const token = await tokenManager.getAuthzToken('agent-api', ['insights:read']);
|
|
91
|
-
headers['Authorization'] = `Bearer ${token}`;
|
|
92
|
-
}
|
|
93
|
-
catch (error) {
|
|
94
|
-
console.warn('[searchInsights] Failed to get auth token:', error);
|
|
95
|
-
}
|
|
96
|
-
}
|
|
97
|
-
const response = await fetch(`${INSIGHTS_API_URL}/insights/search`, {
|
|
98
|
-
method: 'POST',
|
|
99
|
-
headers,
|
|
100
|
-
body: JSON.stringify({
|
|
101
|
-
query,
|
|
102
|
-
userId,
|
|
103
|
-
limit,
|
|
104
|
-
scoreThreshold,
|
|
105
|
-
}),
|
|
106
|
-
});
|
|
107
|
-
if (!response.ok) {
|
|
108
|
-
const error = await response.json().catch(() => ({ detail: response.statusText }));
|
|
109
|
-
throw new Error(`Failed to search insights: ${error.detail || response.statusText}`);
|
|
110
|
-
}
|
|
111
|
-
const data = await response.json();
|
|
112
|
-
return data.results;
|
|
113
|
-
}
|
|
114
|
-
/**
|
|
115
|
-
* List all insights for a user with pagination and optional filtering
|
|
116
|
-
*
|
|
117
|
-
* @param options - List configuration (category, offset, limit)
|
|
118
|
-
* @param tokenManager - Token manager for authentication
|
|
119
|
-
* @returns Paginated list of insights with category counts
|
|
120
|
-
*/
|
|
121
|
-
export async function listInsights(options = {}, tokenManager) {
|
|
122
|
-
const { category, offset = 0, limit = 50 } = options;
|
|
123
|
-
let headers = {
|
|
124
|
-
'Content-Type': 'application/json',
|
|
125
|
-
};
|
|
126
|
-
if (tokenManager) {
|
|
127
|
-
try {
|
|
128
|
-
const token = await tokenManager.getAuthzToken('agent-api', ['insights:read']);
|
|
129
|
-
headers['Authorization'] = `Bearer ${token}`;
|
|
130
|
-
}
|
|
131
|
-
catch (error) {
|
|
132
|
-
console.warn('[listInsights] Failed to get auth token:', error);
|
|
133
|
-
}
|
|
134
|
-
}
|
|
135
|
-
const params = new URLSearchParams();
|
|
136
|
-
if (category)
|
|
137
|
-
params.set('category', category);
|
|
138
|
-
params.set('offset', String(offset));
|
|
139
|
-
params.set('limit', String(limit));
|
|
140
|
-
const response = await fetch(`${INSIGHTS_API_URL}/insights/list?${params.toString()}`, {
|
|
141
|
-
method: 'GET',
|
|
142
|
-
headers,
|
|
143
|
-
});
|
|
144
|
-
if (!response.ok) {
|
|
145
|
-
const error = await response.json().catch(() => ({ detail: response.statusText }));
|
|
146
|
-
throw new Error(`Failed to list insights: ${error.detail || response.statusText}`);
|
|
147
|
-
}
|
|
148
|
-
return response.json();
|
|
149
|
-
}
|
|
150
|
-
/**
|
|
151
|
-
* Delete insights for a conversation
|
|
152
|
-
*
|
|
153
|
-
* @param conversationId - Conversation ID
|
|
154
|
-
* @param userId - User ID (for authorization)
|
|
155
|
-
* @param tokenManager - Token manager for authentication
|
|
156
|
-
*/
|
|
157
|
-
export async function deleteConversationInsights(conversationId, userId, tokenManager) {
|
|
158
|
-
let headers = {};
|
|
159
|
-
if (tokenManager) {
|
|
160
|
-
try {
|
|
161
|
-
const token = await tokenManager.getAuthzToken('agent-api', ['insights:write']);
|
|
162
|
-
headers['Authorization'] = `Bearer ${token}`;
|
|
163
|
-
}
|
|
164
|
-
catch (error) {
|
|
165
|
-
console.warn('[deleteConversationInsights] Failed to get auth token:', error);
|
|
166
|
-
}
|
|
167
|
-
}
|
|
168
|
-
const response = await fetch(`${INSIGHTS_API_URL}/insights/conversation/${conversationId}`, {
|
|
169
|
-
method: 'DELETE',
|
|
170
|
-
headers,
|
|
171
|
-
});
|
|
172
|
-
if (!response.ok) {
|
|
173
|
-
const error = await response.json().catch(() => ({ detail: response.statusText }));
|
|
174
|
-
throw new Error(`Failed to delete conversation insights: ${error.detail || response.statusText}`);
|
|
175
|
-
}
|
|
176
|
-
}
|
|
177
|
-
/**
|
|
178
|
-
* Get insight count for a user
|
|
179
|
-
*
|
|
180
|
-
* @param userId - User ID
|
|
181
|
-
* @param tokenManager - Token manager for authentication
|
|
182
|
-
* @returns Number of insights
|
|
183
|
-
*/
|
|
184
|
-
export async function getUserInsightCount(userId, tokenManager) {
|
|
185
|
-
let headers = {};
|
|
186
|
-
if (tokenManager) {
|
|
187
|
-
try {
|
|
188
|
-
const token = await tokenManager.getAuthzToken('agent-api', ['insights:read']);
|
|
189
|
-
headers['Authorization'] = `Bearer ${token}`;
|
|
190
|
-
}
|
|
191
|
-
catch (error) {
|
|
192
|
-
console.warn('[getUserInsightCount] Failed to get auth token:', error);
|
|
193
|
-
}
|
|
194
|
-
}
|
|
195
|
-
const response = await fetch(`${INSIGHTS_API_URL}/insights/stats/${userId}`, {
|
|
196
|
-
method: 'GET',
|
|
197
|
-
headers,
|
|
198
|
-
});
|
|
199
|
-
if (!response.ok) {
|
|
200
|
-
const error = await response.json().catch(() => ({ detail: response.statusText }));
|
|
201
|
-
throw new Error(`Failed to get user insight count: ${error.detail || response.statusText}`);
|
|
202
|
-
}
|
|
203
|
-
const data = await response.json();
|
|
204
|
-
return data.total || data.count;
|
|
205
|
-
}
|
|
206
|
-
/**
|
|
207
|
-
* Delete all insights for a user (for account deletion/cleanup)
|
|
208
|
-
*
|
|
209
|
-
* @param userId - User ID
|
|
210
|
-
* @param tokenManager - Token manager for authentication
|
|
211
|
-
*/
|
|
212
|
-
export async function deleteUserInsights(userId, tokenManager) {
|
|
213
|
-
let headers = {};
|
|
214
|
-
if (tokenManager) {
|
|
215
|
-
try {
|
|
216
|
-
const token = await tokenManager.getAuthzToken('agent-api', ['insights:write']);
|
|
217
|
-
headers['Authorization'] = `Bearer ${token}`;
|
|
218
|
-
}
|
|
219
|
-
catch (error) {
|
|
220
|
-
console.warn('[deleteUserInsights] Failed to get auth token:', error);
|
|
221
|
-
}
|
|
222
|
-
}
|
|
223
|
-
const response = await fetch(`${INSIGHTS_API_URL}/insights/user/${userId}`, {
|
|
224
|
-
method: 'DELETE',
|
|
225
|
-
headers,
|
|
226
|
-
});
|
|
227
|
-
if (!response.ok) {
|
|
228
|
-
const error = await response.json().catch(() => ({ detail: response.statusText }));
|
|
229
|
-
throw new Error(`Failed to delete user insights: ${error.detail || response.statusText}`);
|
|
230
|
-
}
|
|
231
|
-
}
|
|
232
|
-
/**
|
|
233
|
-
* Flush collection to ensure data persistence
|
|
234
|
-
*
|
|
235
|
-
* Call this after batch inserts for data durability.
|
|
236
|
-
*/
|
|
237
|
-
export async function flushInsightsCollection(tokenManager) {
|
|
238
|
-
let headers = {
|
|
239
|
-
'Content-Type': 'application/json',
|
|
240
|
-
};
|
|
241
|
-
if (tokenManager) {
|
|
242
|
-
try {
|
|
243
|
-
const token = await tokenManager.getAuthzToken('agent-api', ['insights:write']);
|
|
244
|
-
headers['Authorization'] = `Bearer ${token}`;
|
|
245
|
-
}
|
|
246
|
-
catch (error) {
|
|
247
|
-
console.warn('[flushInsightsCollection] Failed to get auth token:', error);
|
|
248
|
-
}
|
|
249
|
-
}
|
|
250
|
-
const response = await fetch(`${INSIGHTS_API_URL}/insights/flush`, {
|
|
251
|
-
method: 'POST',
|
|
252
|
-
headers,
|
|
253
|
-
});
|
|
254
|
-
if (!response.ok) {
|
|
255
|
-
const error = await response.json().catch(() => ({ detail: response.statusText }));
|
|
256
|
-
throw new Error(`Failed to flush collection: ${error.detail || response.statusText}`);
|
|
257
|
-
}
|
|
258
|
-
}
|
|
259
|
-
/**
|
|
260
|
-
* Get collection statistics including category counts
|
|
261
|
-
*
|
|
262
|
-
* @param tokenManager - Token manager for authentication (uses /me endpoint)
|
|
263
|
-
*/
|
|
264
|
-
export async function getCollectionStats(tokenManager) {
|
|
265
|
-
let headers = {};
|
|
266
|
-
if (tokenManager) {
|
|
267
|
-
try {
|
|
268
|
-
const token = await tokenManager.getAuthzToken('agent-api', ['insights:read']);
|
|
269
|
-
headers['Authorization'] = `Bearer ${token}`;
|
|
270
|
-
}
|
|
271
|
-
catch (error) {
|
|
272
|
-
console.warn('[getCollectionStats] Failed to get auth token:', error);
|
|
273
|
-
}
|
|
274
|
-
}
|
|
275
|
-
const response = await fetch(`${INSIGHTS_API_URL}/insights/stats/me`, {
|
|
276
|
-
method: 'GET',
|
|
277
|
-
headers,
|
|
278
|
-
});
|
|
279
|
-
if (!response.ok) {
|
|
280
|
-
const error = await response.json().catch(() => ({ detail: response.statusText }));
|
|
281
|
-
throw new Error(`Failed to get collection stats: ${error.detail || response.statusText}`);
|
|
282
|
-
}
|
|
283
|
-
return response.json();
|
|
284
|
-
}
|
|
285
|
-
/**
|
|
286
|
-
* Health check for insights service
|
|
287
|
-
*
|
|
288
|
-
* @returns true if service is healthy
|
|
289
|
-
*/
|
|
290
|
-
export async function checkInsightsHealth() {
|
|
291
|
-
try {
|
|
292
|
-
const response = await fetch(`${INSIGHTS_API_URL}/health`, {
|
|
293
|
-
method: 'GET',
|
|
294
|
-
});
|
|
295
|
-
if (!response.ok) {
|
|
296
|
-
return false;
|
|
297
|
-
}
|
|
298
|
-
const data = await response.json();
|
|
299
|
-
return data.status === 'healthy' || data.status === 'degraded';
|
|
300
|
-
}
|
|
301
|
-
catch (error) {
|
|
302
|
-
console.error('[checkInsightsHealth] Health check failed:', error);
|
|
303
|
-
return false;
|
|
304
|
-
}
|
|
305
|
-
}
|
|
306
|
-
//# sourceMappingURL=client.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../../src/lib/insights/client.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lib/insights/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,cAAc,mBAAmB,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lib/insights/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,cAAc,mBAAmB,CAAC"}
|
|
@@ -1,120 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* AuthZ client (server-side only)
|
|
3
|
-
*
|
|
4
|
-
* Zero Trust Authentication Architecture:
|
|
5
|
-
* - AuthZ issues RS256-signed session JWTs
|
|
6
|
-
* - busibox-portal exchanges session JWTs for downstream access tokens
|
|
7
|
-
* - NO client credentials required for user operations
|
|
8
|
-
*
|
|
9
|
-
* This module uses the shared Zero Trust functions from busibox-app.
|
|
10
|
-
*/
|
|
11
|
-
import { clearZeroTrustTokenCache, getUserIdFromSessionJwt, InvalidSessionError, isInvalidSessionError, type AuthzAudience as SharedAuthzAudience } from '@jazzmind/busibox-app';
|
|
12
|
-
export { InvalidSessionError, isInvalidSessionError };
|
|
13
|
-
export type AuthzAudience = SharedAuthzAudience;
|
|
14
|
-
/**
|
|
15
|
-
* Get the authz service base URL.
|
|
16
|
-
* Uses AUTHZ_BASE_URL env var or defaults to Docker service name.
|
|
17
|
-
*/
|
|
18
|
-
export declare function getAuthzBaseUrl(): string;
|
|
19
|
-
/**
|
|
20
|
-
* Get standard RBAC client options for authz service calls.
|
|
21
|
-
* Zero Trust: Only authzUrl is needed - no admin tokens or client credentials.
|
|
22
|
-
*
|
|
23
|
-
* Import this instead of duplicating getAuthzOptions() in every route file.
|
|
24
|
-
*/
|
|
25
|
-
export declare function getAuthzOptions(): {
|
|
26
|
-
authzUrl: string;
|
|
27
|
-
};
|
|
28
|
-
/**
|
|
29
|
-
* Get RBAC client options with an exchanged access token for admin operations.
|
|
30
|
-
*
|
|
31
|
-
* Use this for admin routes that need to access user management or RBAC APIs.
|
|
32
|
-
* Exchanges the session JWT for an authz-api access token.
|
|
33
|
-
*
|
|
34
|
-
* Note: The scopes in the access token come from the user's roles, not from
|
|
35
|
-
* this request. The Admin role must have authz.* scopes configured.
|
|
36
|
-
*
|
|
37
|
-
* @param sessionJwt - The admin user's session JWT from requireAdminAuth()
|
|
38
|
-
* @returns Options object with authzUrl and accessToken for busibox-app RBAC functions
|
|
39
|
-
*/
|
|
40
|
-
export declare function getAuthzOptionsWithToken(sessionJwt: string): Promise<{
|
|
41
|
-
authzUrl: string;
|
|
42
|
-
accessToken: string;
|
|
43
|
-
}>;
|
|
44
|
-
/**
|
|
45
|
-
* Exchange a session JWT for a downstream access token (Zero Trust mode).
|
|
46
|
-
*
|
|
47
|
-
* This is the preferred method - no client credentials required.
|
|
48
|
-
* The session JWT cryptographically proves user identity.
|
|
49
|
-
*/
|
|
50
|
-
export declare function exchangeWithSubjectToken(args: {
|
|
51
|
-
sessionJwt: string;
|
|
52
|
-
userId: string;
|
|
53
|
-
audience: AuthzAudience;
|
|
54
|
-
scopes?: string[];
|
|
55
|
-
purpose?: string;
|
|
56
|
-
}): Promise<{
|
|
57
|
-
accessToken: string;
|
|
58
|
-
tokenType: 'bearer';
|
|
59
|
-
expiresIn: number;
|
|
60
|
-
scope: string;
|
|
61
|
-
}>;
|
|
62
|
-
/**
|
|
63
|
-
* Get authorization header using session JWT (Zero Trust mode).
|
|
64
|
-
*
|
|
65
|
-
* This is the preferred method - no client credentials required.
|
|
66
|
-
*/
|
|
67
|
-
export declare function getAuthorizationHeaderWithSession(args: {
|
|
68
|
-
sessionJwt: string;
|
|
69
|
-
userId: string;
|
|
70
|
-
audience: AuthzAudience;
|
|
71
|
-
scopes?: string[];
|
|
72
|
-
purpose?: string;
|
|
73
|
-
}): Promise<string>;
|
|
74
|
-
/**
|
|
75
|
-
* Invalidate a cached downstream token.
|
|
76
|
-
*/
|
|
77
|
-
export declare function invalidateDownstreamToken(userId: string, audience: AuthzAudience, scopes?: string[]): void;
|
|
78
|
-
/**
|
|
79
|
-
* Clear all cached tokens.
|
|
80
|
-
*/
|
|
81
|
-
export { clearZeroTrustTokenCache };
|
|
82
|
-
/**
|
|
83
|
-
* Create a delegation token for background tasks.
|
|
84
|
-
*
|
|
85
|
-
* @param sessionJwt - The user's session JWT
|
|
86
|
-
* @param name - Human-readable name for the delegation
|
|
87
|
-
* @param scopes - Scopes to delegate (optional, defaults to all user's scopes)
|
|
88
|
-
* @param expiresInSeconds - TTL in seconds (default: 7 days)
|
|
89
|
-
*/
|
|
90
|
-
export declare function createDelegationToken(args: {
|
|
91
|
-
sessionJwt: string;
|
|
92
|
-
name: string;
|
|
93
|
-
scopes?: string[];
|
|
94
|
-
expiresInSeconds?: number;
|
|
95
|
-
}): Promise<{
|
|
96
|
-
delegationToken: string;
|
|
97
|
-
tokenType: 'Bearer';
|
|
98
|
-
expiresIn: number;
|
|
99
|
-
expiresAt: string;
|
|
100
|
-
jti: string;
|
|
101
|
-
name: string;
|
|
102
|
-
scopes: string[];
|
|
103
|
-
}>;
|
|
104
|
-
/**
|
|
105
|
-
* List active delegation tokens for the authenticated user.
|
|
106
|
-
*/
|
|
107
|
-
export declare function listDelegationTokens(sessionJwt: string): Promise<Array<{
|
|
108
|
-
jti: string;
|
|
109
|
-
name: string;
|
|
110
|
-
scopes: string[];
|
|
111
|
-
expiresAt: string;
|
|
112
|
-
createdAt: string;
|
|
113
|
-
revoked: boolean;
|
|
114
|
-
}>>;
|
|
115
|
-
/**
|
|
116
|
-
* Revoke a delegation token.
|
|
117
|
-
*/
|
|
118
|
-
export declare function revokeDelegationToken(sessionJwt: string, jti: string): Promise<void>;
|
|
119
|
-
export { getUserIdFromSessionJwt };
|
|
120
|
-
//# sourceMappingURL=authz-client.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"authz-client.d.ts","sourceRoot":"","sources":["../../../src/lib/next/authz-client.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAIL,wBAAwB,EACxB,uBAAuB,EACvB,mBAAmB,EACnB,qBAAqB,EACrB,KAAK,aAAa,IAAI,mBAAmB,EAE1C,MAAM,uBAAuB,CAAC;AAG/B,OAAO,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,CAAC;AAGtD,MAAM,MAAM,aAAa,GAAG,mBAAmB,CAAC;AAWhD;;;GAGG;AACH,wBAAgB,eAAe,IAAI,MAAM,CAExC;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,IAAI;IAAE,QAAQ,EAAE,MAAM,CAAA;CAAE,CAItD;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,wBAAwB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,CAAC,CAiBrH;AAMD;;;;;GAKG;AACH,wBAAsB,wBAAwB,CAAC,IAAI,EAAE;IACnD,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,aAAa,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,GAAG,OAAO,CAAC;IAAE,WAAW,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,QAAQ,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC,CA0B1F;AAED;;;;GAIG;AACH,wBAAsB,iCAAiC,CAAC,IAAI,EAAE;IAC5D,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,aAAa,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,GAAG,OAAO,CAAC,MAAM,CAAC,CAalB;AAED;;GAEG;AACH,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,aAAa,EACvB,MAAM,CAAC,EAAE,MAAM,EAAE,GAChB,IAAI,CAGN;AAED;;GAEG;AACH,OAAO,EAAE,wBAAwB,EAAE,CAAC;AAMpC;;;;;;;GAOG;AACH,wBAAsB,qBAAqB,CAAC,IAAI,EAAE;IAChD,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B,GAAG,OAAO,CAAC;IACV,eAAe,EAAE,MAAM,CAAC;IACxB,SAAS,EAAE,QAAQ,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB,CAAC,CA2BD;AAED;;GAEG;AACH,wBAAsB,oBAAoB,CACxC,UAAU,EAAE,MAAM,GACjB,OAAO,CACR,KAAK,CAAC;IACJ,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,OAAO,CAAC;CAClB,CAAC,CACH,CAsBA;AAED;;GAEG;AACH,wBAAsB,qBAAqB,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAY1F;AAMD,OAAO,EAAE,uBAAuB,EAAE,CAAC"}
|
|
@@ -1,203 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* AuthZ client (server-side only)
|
|
3
|
-
*
|
|
4
|
-
* Zero Trust Authentication Architecture:
|
|
5
|
-
* - AuthZ issues RS256-signed session JWTs
|
|
6
|
-
* - busibox-portal exchanges session JWTs for downstream access tokens
|
|
7
|
-
* - NO client credentials required for user operations
|
|
8
|
-
*
|
|
9
|
-
* This module uses the shared Zero Trust functions from busibox-app.
|
|
10
|
-
*/
|
|
11
|
-
import { exchangeTokenZeroTrust, getAuthHeaderZeroTrust, invalidateZeroTrustToken, clearZeroTrustTokenCache, getUserIdFromSessionJwt, InvalidSessionError, isInvalidSessionError, } from '@jazzmind/busibox-app';
|
|
12
|
-
// Re-export error utilities for use in middleware/routes
|
|
13
|
-
export { InvalidSessionError, isInvalidSessionError };
|
|
14
|
-
// Verbose logging toggle
|
|
15
|
-
const VERBOSE_AUTHZ_LOGGING = process.env.VERBOSE_AUTHZ_LOGGING === 'true';
|
|
16
|
-
function authzLog(...args) {
|
|
17
|
-
if (VERBOSE_AUTHZ_LOGGING) {
|
|
18
|
-
console.log(...args);
|
|
19
|
-
}
|
|
20
|
-
}
|
|
21
|
-
/**
|
|
22
|
-
* Get the authz service base URL.
|
|
23
|
-
* Uses AUTHZ_BASE_URL env var or defaults to Docker service name.
|
|
24
|
-
*/
|
|
25
|
-
export function getAuthzBaseUrl() {
|
|
26
|
-
return process.env.AUTHZ_BASE_URL || 'http://authz-api:8010';
|
|
27
|
-
}
|
|
28
|
-
/**
|
|
29
|
-
* Get standard RBAC client options for authz service calls.
|
|
30
|
-
* Zero Trust: Only authzUrl is needed - no admin tokens or client credentials.
|
|
31
|
-
*
|
|
32
|
-
* Import this instead of duplicating getAuthzOptions() in every route file.
|
|
33
|
-
*/
|
|
34
|
-
export function getAuthzOptions() {
|
|
35
|
-
return {
|
|
36
|
-
authzUrl: getAuthzBaseUrl(),
|
|
37
|
-
};
|
|
38
|
-
}
|
|
39
|
-
/**
|
|
40
|
-
* Get RBAC client options with an exchanged access token for admin operations.
|
|
41
|
-
*
|
|
42
|
-
* Use this for admin routes that need to access user management or RBAC APIs.
|
|
43
|
-
* Exchanges the session JWT for an authz-api access token.
|
|
44
|
-
*
|
|
45
|
-
* Note: The scopes in the access token come from the user's roles, not from
|
|
46
|
-
* this request. The Admin role must have authz.* scopes configured.
|
|
47
|
-
*
|
|
48
|
-
* @param sessionJwt - The admin user's session JWT from requireAdminAuth()
|
|
49
|
-
* @returns Options object with authzUrl and accessToken for busibox-app RBAC functions
|
|
50
|
-
*/
|
|
51
|
-
export async function getAuthzOptionsWithToken(sessionJwt) {
|
|
52
|
-
const result = await exchangeTokenZeroTrust({
|
|
53
|
-
sessionJwt,
|
|
54
|
-
audience: 'authz-api',
|
|
55
|
-
purpose: 'admin-operations',
|
|
56
|
-
}, {
|
|
57
|
-
authzBaseUrl: getAuthzBaseUrl(),
|
|
58
|
-
verbose: process.env.VERBOSE_AUTHZ_LOGGING === 'true',
|
|
59
|
-
});
|
|
60
|
-
return {
|
|
61
|
-
authzUrl: getAuthzBaseUrl(),
|
|
62
|
-
accessToken: result.accessToken,
|
|
63
|
-
};
|
|
64
|
-
}
|
|
65
|
-
// =============================================================================
|
|
66
|
-
// Zero Trust Token Exchange (Preferred Method)
|
|
67
|
-
// =============================================================================
|
|
68
|
-
/**
|
|
69
|
-
* Exchange a session JWT for a downstream access token (Zero Trust mode).
|
|
70
|
-
*
|
|
71
|
-
* This is the preferred method - no client credentials required.
|
|
72
|
-
* The session JWT cryptographically proves user identity.
|
|
73
|
-
*/
|
|
74
|
-
export async function exchangeWithSubjectToken(args) {
|
|
75
|
-
authzLog('[AUTHZ] Zero Trust token exchange:', {
|
|
76
|
-
userId: args.userId,
|
|
77
|
-
audience: args.audience,
|
|
78
|
-
scopes: args.scopes,
|
|
79
|
-
});
|
|
80
|
-
const result = await exchangeTokenZeroTrust({
|
|
81
|
-
sessionJwt: args.sessionJwt,
|
|
82
|
-
audience: args.audience,
|
|
83
|
-
scopes: args.scopes,
|
|
84
|
-
purpose: args.purpose,
|
|
85
|
-
}, {
|
|
86
|
-
authzBaseUrl: getAuthzBaseUrl(),
|
|
87
|
-
verbose: VERBOSE_AUTHZ_LOGGING,
|
|
88
|
-
});
|
|
89
|
-
return {
|
|
90
|
-
accessToken: result.accessToken,
|
|
91
|
-
tokenType: result.tokenType,
|
|
92
|
-
expiresIn: result.expiresIn,
|
|
93
|
-
scope: result.scope,
|
|
94
|
-
};
|
|
95
|
-
}
|
|
96
|
-
/**
|
|
97
|
-
* Get authorization header using session JWT (Zero Trust mode).
|
|
98
|
-
*
|
|
99
|
-
* This is the preferred method - no client credentials required.
|
|
100
|
-
*/
|
|
101
|
-
export async function getAuthorizationHeaderWithSession(args) {
|
|
102
|
-
return getAuthHeaderZeroTrust({
|
|
103
|
-
sessionJwt: args.sessionJwt,
|
|
104
|
-
audience: args.audience,
|
|
105
|
-
scopes: args.scopes,
|
|
106
|
-
purpose: args.purpose,
|
|
107
|
-
}, {
|
|
108
|
-
authzBaseUrl: getAuthzBaseUrl(),
|
|
109
|
-
verbose: VERBOSE_AUTHZ_LOGGING,
|
|
110
|
-
});
|
|
111
|
-
}
|
|
112
|
-
/**
|
|
113
|
-
* Invalidate a cached downstream token.
|
|
114
|
-
*/
|
|
115
|
-
export function invalidateDownstreamToken(userId, audience, scopes) {
|
|
116
|
-
invalidateZeroTrustToken(userId, audience, scopes || []);
|
|
117
|
-
authzLog('[AUTHZ] Token cache invalidated for:', { userId, audience });
|
|
118
|
-
}
|
|
119
|
-
/**
|
|
120
|
-
* Clear all cached tokens.
|
|
121
|
-
*/
|
|
122
|
-
export { clearZeroTrustTokenCache };
|
|
123
|
-
// =============================================================================
|
|
124
|
-
// Delegation Tokens (for background/scheduled tasks)
|
|
125
|
-
// =============================================================================
|
|
126
|
-
/**
|
|
127
|
-
* Create a delegation token for background tasks.
|
|
128
|
-
*
|
|
129
|
-
* @param sessionJwt - The user's session JWT
|
|
130
|
-
* @param name - Human-readable name for the delegation
|
|
131
|
-
* @param scopes - Scopes to delegate (optional, defaults to all user's scopes)
|
|
132
|
-
* @param expiresInSeconds - TTL in seconds (default: 7 days)
|
|
133
|
-
*/
|
|
134
|
-
export async function createDelegationToken(args) {
|
|
135
|
-
const res = await fetch(`${getAuthzBaseUrl()}/oauth/delegation`, {
|
|
136
|
-
method: 'POST',
|
|
137
|
-
headers: { 'Content-Type': 'application/json' },
|
|
138
|
-
body: JSON.stringify({
|
|
139
|
-
subject_token: args.sessionJwt,
|
|
140
|
-
name: args.name,
|
|
141
|
-
scopes: args.scopes || [],
|
|
142
|
-
expires_in_seconds: args.expiresInSeconds || 604800, // 7 days default
|
|
143
|
-
}),
|
|
144
|
-
});
|
|
145
|
-
if (!res.ok) {
|
|
146
|
-
const text = await res.text();
|
|
147
|
-
throw new Error(`Failed to create delegation token (${res.status}): ${text}`);
|
|
148
|
-
}
|
|
149
|
-
const data = await res.json();
|
|
150
|
-
return {
|
|
151
|
-
delegationToken: data.delegation_token,
|
|
152
|
-
tokenType: data.token_type,
|
|
153
|
-
expiresIn: data.expires_in,
|
|
154
|
-
expiresAt: data.expires_at,
|
|
155
|
-
jti: data.jti,
|
|
156
|
-
name: data.name,
|
|
157
|
-
scopes: data.scopes,
|
|
158
|
-
};
|
|
159
|
-
}
|
|
160
|
-
/**
|
|
161
|
-
* List active delegation tokens for the authenticated user.
|
|
162
|
-
*/
|
|
163
|
-
export async function listDelegationTokens(sessionJwt) {
|
|
164
|
-
const res = await fetch(`${getAuthzBaseUrl()}/oauth/delegations`, {
|
|
165
|
-
method: 'GET',
|
|
166
|
-
headers: {
|
|
167
|
-
Authorization: `Bearer ${sessionJwt}`,
|
|
168
|
-
},
|
|
169
|
-
});
|
|
170
|
-
if (!res.ok) {
|
|
171
|
-
const text = await res.text();
|
|
172
|
-
throw new Error(`Failed to list delegation tokens (${res.status}): ${text}`);
|
|
173
|
-
}
|
|
174
|
-
const data = await res.json();
|
|
175
|
-
return data.delegations.map((d) => ({
|
|
176
|
-
jti: d.jti,
|
|
177
|
-
name: d.name,
|
|
178
|
-
scopes: d.scopes,
|
|
179
|
-
expiresAt: d.expires_at,
|
|
180
|
-
createdAt: d.created_at,
|
|
181
|
-
revoked: d.revoked,
|
|
182
|
-
}));
|
|
183
|
-
}
|
|
184
|
-
/**
|
|
185
|
-
* Revoke a delegation token.
|
|
186
|
-
*/
|
|
187
|
-
export async function revokeDelegationToken(sessionJwt, jti) {
|
|
188
|
-
const res = await fetch(`${getAuthzBaseUrl()}/oauth/delegations/${jti}`, {
|
|
189
|
-
method: 'DELETE',
|
|
190
|
-
headers: {
|
|
191
|
-
Authorization: `Bearer ${sessionJwt}`,
|
|
192
|
-
},
|
|
193
|
-
});
|
|
194
|
-
if (!res.ok) {
|
|
195
|
-
const text = await res.text();
|
|
196
|
-
throw new Error(`Failed to revoke delegation token (${res.status}): ${text}`);
|
|
197
|
-
}
|
|
198
|
-
}
|
|
199
|
-
// =============================================================================
|
|
200
|
-
// Utility Re-exports
|
|
201
|
-
// =============================================================================
|
|
202
|
-
export { getUserIdFromSessionJwt };
|
|
203
|
-
//# sourceMappingURL=authz-client.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"authz-client.js","sourceRoot":"","sources":["../../../src/lib/next/authz-client.ts"],"names":[],"mappings":"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"}
|