* feat: add synchronization configuration for multiple providers in authentication adapter
* implement check_sync_enabled method to determine if sync is enabled for Google, GitHub, GitLab, Gitea, OIDC, and SAML providers
* update user data synchronization logic to utilize the new method
* add configuration variables for enabling sync for each provider in instance configuration files
* feat: add sync toggle for OAuth providers in configuration forms
* refactor: simplify sync check logic in Adapter class
* refactor: improve toggle switch logic for better readability and performance
---------
Co-authored-by: b-saikrishnakanth <[email protected]>
* feat: add sync functionality for OAuth providers
- Implemented `check_sync_enabled` method to verify if sync is enabled for Google, GitHub, GitLab, and Gitea.
- Added `sync_user_data` method to update user details, including first name, last name, display name, and avatar.
- Updated configuration variables to include sync options for each provider.
- Integrated sync check into the login/signup process.
* feat: add sync toggle for OAuth providers in configuration forms
* fix: remove default value for sync options in OAuth configuration forms
* chore: delete old avatar and upload a new one
* chore: update class method
* chore: add email nullable
* refactor: streamline sync check for multiple providers and improve avatar deletion logic
* fix: ensure ENABLE_SYNC configurations default to "0" for Gitea, Github, Gitlab, and Google forms
* fix: simplify toggle switch value handling in ControllerSwitch component
---------
Co-authored-by: b-saikrishnakanth <[email protected]>
- Removed the unique constraints from the IssueProperty model to allow for more flexible naming.
- Updated the save method to ensure the name is generated solely from the display name
- Adjusted the migration to reflect these changes and removed the renaming logic for IssueProperty to maintain uniqueness.
* [WEB-5285] feat: Initial phase to make IssueProperty exist independant of IssueType
- Introduced the IssueTypeProperty model to manage properties associated with issue types.
- Updated the IssueProperty model to include ChangeTrackerMixin for tracking changes.
- Modified the save method in IssueProperty to ensure unique naming based on project and issue type.
- Adjusted unique constraints and added necessary migrations for the new model and changes.
* added missing workspace
* Use workspace_id instead of workspace
* Made issue_type optional
* Refactor issue property renaming to use bulk update for improved performance in migration
* feat: add migration for IssueTypeProperty and enhance IssueProperty uniqueness
- Introduced a new migration to create the IssueTypeProperty model with necessary fields and constraints.
- Updated the renaming logic for IssueProperty to ensure uniqueness by incorporating project identifiers and issue type names.
- Adjusted unique constraints and relationships for IssueProperty and IssueTypeProperty models to improve data integrity.
* Introduced a batch processing mechanism for updating IssueProperty names to enhance performance and reduce database load.
* enhance ChangeTrackerMixin to capture changed fields on save
- Overrode the save method in ChangeTrackerMixin to store changed fields before resetting tracking.
- Updated IssueComment and IssueProperty models to utilize _changes_on_save for determining changes, improving data integrity during updates.
---------
Co-authored-by: pablohashescobar <[email protected]>
* refactor: improve OIDC user data handling and random display name generation
* refactor: streamline configuration value retrieval for OIDC
* feat: add random display name generation if not provided in user info response
* refactor: enhance user data structure with display name
* feat: enhance user display name handling in authentication adapter
* add random display name generation if not provided by user info response
* update OIDC user data structure to ensure safe retrieval of first name, last name, and provider ID
* feat: add logging for missing email in OIDC user info response
* implement logging to warn when email is not found in user info response
* update display name generation logic to ensure valid email format
* feat: implement user data synchronization in authentication adapter
* add sync_user_data method to update user details including first name, last name, display name, and avatar
* integrate user data synchronization based on ENABLE_IDP_SYNC configuration
* enhance display name generation logic when not provided by user info response
* feat: add ENABLE_IDP_SYNC configuration to OIDC form
* refactor: define type for ENABLE_IDP_SYNC form field in OIDC configuration
* feat: refactor display name generation in authentication adapter and OIDC provider
* replace random display name generation with a centralized method in User model
* enhance display name handling to ensure consistency across authentication processes
* fix: correct email validation in display name generation logic
* update condition to ensure display name is generated only when email contains exactly one '@' symbol, improving robustness of the display name handling.
---------
Co-authored-by: b-saikrishnakanth <[email protected]>
- Replace advisory lock with transaction-level lock in Issue model save method
- Updated the save method in the Issue model to use a transaction-level advisory lock for better concurrency control.
- Simplified the locking mechanism by removing the explicit unlock step, as the lock is automatically released at the end of the transaction.
- Maintained existing functionality for sequence and sort order management while improving code clarity.
* fix: update feature flag response handling to return specific flag value
* refactor: simplify feature flag response handling and update payload key
* fix: enable response caching for feature flag endpoint
* fix: handle expiration parameter in S3Storage class for presigned URLs
* feat: enhance APITokenLogMiddleware to support logging to MongoDB
- Added functionality to log external API requests to MongoDB, with a fallback to PostgreSQL if MongoDB is unavailable.
- Implemented error handling for MongoDB connection and logging operations.
- Introduced additional fields for MongoDB logs, including timestamps and user identifiers.
- Refactored request logging logic to streamline the process and improve maintainability.
* fix: improve MongoDB availability checks in APITokenLogMiddleware
- Enhanced the logic for determining MongoDB availability by checking if the collection is not None.
- Added a check for MongoDB configuration before attempting to retrieve the collection.
- Updated error handling to ensure the middleware correctly reflects the state of MongoDB connectivity.
* feat: implement logging functionality in logger_task for API activity
- Added a new logger_task module to handle logging of API activity to MongoDB and PostgreSQL.
- Introduced functions for safely decoding request/response bodies and processing logs based on MongoDB availability.
- Refactored APITokenLogMiddleware to utilize the new logging functions, improving code organization and maintainability.
* refactor: simplify MongoDB logging in logger_task and middleware
- Removed direct dependency on MongoDB collection in log_to_mongo function, now retrieving it internally.
- Updated process_logs to check MongoDB configuration before logging, enhancing error handling.
- Cleaned up logger.py by removing unused imports related to MongoDB.
* feat: add Celery task decorator to process_logs function in logger_task
- Introduced the @shared_task decorator to the process_logs function, enabling asynchronous processing of log data.
- Updated function signature to include a return type of None for clarity.
- Added an override for the save method in ChangeTrackerMixin to store changed fields before resetting tracking.
- Implemented a new method, _reset_tracked_fields, to ensure subsequent saves detect changes relative to the last saved state.
- Updated IssueComment to utilize _changes_on_save for determining changed fields, improving accuracy in tracking modifications.
* feat: enhance clipboard functionality for markdown and HTML content
* fix: improve error handling and state management in CustomImageNodeView component
* fix: correct asset retrieval query by removing workspace filter in DuplicateAssetEndpoint
* fix: update meta tag creation in PasteAssetPlugin for clipboard HTML content
* feat: implement copyMarkdownToClipboard utility for enhanced clipboard functionality
* refactor: replace copyMarkdownToClipboard utility with copyTextToClipboard for simplified clipboard operations
* refactor: streamline clipboard operations by replacing copyTextToClipboard with copyMarkdownToClipboard in editor components
* refactor: simplify PasteAssetPlugin by removing unnecessary meta tag handling and streamlining HTML processing
* feat: implement asset duplication processing on paste for enhanced clipboard functionality
* chore:remove async from copy markdown method
* chore: add paste html
* remove:prevent default
* refactor: remove hasChanges from processAssetDuplication return type for simplified asset processing
* fix: format options-dropdown.tsx
* fix: crawl work item link for epics
* chore: WIP
* feat: update role activity
* feat: remove member activity
* feat: remove member activity
* feat: leave workspace member activity
* feat: accept and delete workspace invite activity
* chore: refactor UserWorkspaceInvitationsViewSet
* chore: refactor UserWorkspaceInvitationsViewSet
* feat: accept workspace member invite activity
* feat: workspace members activity api
* fix: activity api permission check
* migration: workspace member as nullable field
* fix: model name
* chore: use WorkspaceMemberActivity model
chore: use workspace_member_id in role change activity
* feat: activity for removing and adding seats
fix: use WorkspaceMemberActivity
chore: render workspace detail
* fix: code refactor
* chore: track seats added and removed
* fix: leave activity
* chore: featureflag and permission checks
fix: leave activity
* chore: code refactor
* chore: code refactor
* feat: implemented workspace members activity sidebar in the settings layout.
* fix: remove email validation
* fix: use ENUM
* refactor: simplify workspace member actions logic in settings layout
* chore: remove validate email
* fix: use DjangoFilterBackend
* feat: enhance workspace members activity functionality and UI in settings layout
* fix: use gte lookup to include members
* feat: refactor workspace members activity sidebar and layout integration
* refactor: simplify workspaceSlug usage in settings layout
* refactor: optimize activity date retrieval in workspace members activity store
---------
Co-authored-by: b-saikrishnakanth <[email protected]>
* chore: add static files collection and update settings for static files support
* chore: add WhiteNoise middleware for static file handling
* chore(deps): upgrade WhiteNoise to version 6.11.0 and add static file reverse proxy in Caddyfile
* fix: update avatar download headers to include authorization token
* fix: conditionally include authorization token in avatar download headers based on provider
* fix: refine avatar download headers to include access token conditionally based on token data