Updated test expectations in apps/server/src/api/v2/slack/handler.test.ts
to expect absolute URLs with http://localhost:3000 prefix instead of
relative URLs, matching the actual behavior when BUSTER_URL is set.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Fix Slack OAuth service test to use correct scopes for validation
- Update handler tests to use proper field names (authUrl vs auth_url)
- Fix workspace settings test to use correct organization role
- Update chat handler test with missing import and role fix
- Fix retry helpers test to use valid WorkflowContext currentStep values
All unit tests now pass successfully.
Co-Authored-By: Dallin Bentley <dallinbentley98@gmail.com>
- Move currency endpoint from /api/v2/currency to /api/v2/dictionaries/currency
- Follow existing dictionaries pattern with separate config.ts and index.ts
- Update web API calls to use new endpoint location
- Remove old currency route registration and files
- Preserve all existing functionality and types
The new endpoint is accessible at /api/v2/dictionaries/currency and maintains
the same response format and authentication requirements.
Co-Authored-By: nate@buster.so <nate@buster.so>
- Add missing 'channels:join' and 'channels:manage' to required OAuth scopes
- Update scope validation to handle comma-separated scope format
- Include defaultChannel in 're_install_required' status response
- Ensures complete integration data is returned in all status cases
Fixes scope validation for existing integrations and missing default channel data in API responses.
Co-Authored-By: Dallin Bentley <dallinbentley98@gmail.com>
- Introduced `count_workspace_members` utility function to retrieve the number of active users in a workspace.
- Updated chat, collection, dashboard, and metric handlers to include `workspace_member_count` in their responses.
- Modified relevant types to accommodate the new `workspace_member_count` field.
- Adjusted frontend components to display the number of workspace members in the ShareMenu and related UI elements.
These changes improve the visibility of workspace member information and enhance the overall user experience.
- Adjusted the ShareMenu component styles for improved layout consistency.
- Added `workspace_sharing` property with a default value of 'none' in metric-related mocks and tests.
- Updated the mock dashboard to include the new `workspace_sharing` field.
These changes improve the UI and ensure that the workspace sharing feature is properly represented in the mock data.
- Updated the `WorkspaceSharing` enum to use camelCase for serialization.
- Introduced `workspace_permissions` field in update requests for chats, collections, dashboards, and metrics.
- Implemented handling of workspace sharing permissions in respective update handlers, allowing for setting and removing permissions.
- Adjusted frontend components and API interfaces to align with the new `workspace_sharing` naming convention.
This change enhances the consistency and usability of workspace sharing across different asset types.
- Add missing status field to GET /api/v2/slack/integration response
- Ensures 're_install_required' status reaches the UI for yellow button display
- Critical fix for scope validation feature to work end-to-end
Co-Authored-By: Dallin Bentley <dallinbentley98@gmail.com>
- Create validateScopes helper to avoid code duplication
- Use shared function in both initiateOAuth and getIntegrationStatus
- Addresses code review feedback from greptile-apps[bot]
Co-Authored-By: Dallin Bentley <dallinbentley98@gmail.com>
- Updated `get_chat_handler` to check for collection access when a user lacks direct permission.
- Modified `get_dashboard_handler` to first verify collection access before checking chat access.
- Added `check_chat_collection_access` function to validate user access to chats via collections.
- Enhanced `check_metric_dashboard_access` to include collection access checks concurrently with other permission checks.
This change improves the permission model by allowing access to chats and dashboards through associated collections, enhancing user experience and security.