mirror of https://github.com/buster-so/buster.git
* chore: add release-please configuration * create virtua list component * only debounce if there is text * prefetch on demand * add a popup for permissions * update package versions * Make users page (#39) * create users pages * abstract more components to correct folders * carve out expection if we are hiding the select all * user query * Add ability to change default access * Update package-lock.json * Update package-lock.json * Update web/src/components/list/BusterList/BusterListReactWindow.tsx Co-Authored-By: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com> * Big nate/bus 924 make additional permissions pages (#50) * create virtua list component * only debounce if there is text * prefetch on demand * add a popup for permissions * Update web/src/components/list/BusterList/BusterListReactWindow.tsx Co-Authored-By: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com> --------- Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com> * finalize permission popup Co-Authored-By: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com> * more elegant infinite list component Co-Authored-By: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com> * add additional bulk popup menus Co-Authored-By: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com> * make pages unique Co-Authored-By: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com> * change how padding is applied to list Co-Authored-By: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com> * infinite list component Co-Authored-By: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com> * start user dataset lineage Co-Authored-By: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com> * Refactor SQL query in list_assets_handler to use a Common Table Expression (CTE) for improved readability and maintainability. The CTE, `distinct_assets`, simplifies the selection of distinct asset records before applying the final ordering and limiting. * add cursor rules for web directory + jest (#52) * on change update for segments * PRevent clicking passthrough on users click * feat: Add assets module and nest routes in user router - Introduced a new `assets` module to handle asset-related routes. - Updated the user router to nest the `assets` routes under the user ID path, enhancing the organization of API endpoints. - This change improves the structure and maintainability of the user-related routes in the API. * feat: Enhance user attribute listing with authorization checks - Updated the `list_attributes_handler` to include authorization checks for user roles and organization IDs. - Implemented error handling for unauthorized access to user attributes. - Refactored the SQL query to retrieve user attributes based on the authenticated user's organization, improving security and data integrity. - This change ensures that only authorized users can list attributes, enhancing the overall security of the API. * pass through dataset overview * feat: Update dataset group listing to include permissions - Enhanced the `list_dataset_groups` function to join with the `dataset_permissions` table, allowing retrieval of permission details for each dataset group. - Modified the `DatasetGroupInfo` struct to include `permission_id` and `assigned` fields, reflecting the new data structure. - Refactored the SQL query to group by necessary fields and ensure accurate permission data is returned, improving the functionality and security of dataset group listings. * feat: Add DatasetGroupPermission model and schema - Introduced a new `DatasetGroupPermission` struct in `models.rs` to represent permissions associated with dataset groups. - Updated the database schema in `schema.rs` to include the `dataset_groups_permissions` table, defining its structure and relationships. - Modified the `is_user_workspace_admin_or_data_admin` function in `checks.rs` to correctly reference the user's organization role, enhancing role validation logic. * add component for users inputs * feat: Update dataset group listing to include dataset group permissions - Modified the `list_dataset_groups` function to accept an additional `id` parameter for filtering dataset groups based on user permissions. - Updated the SQL query to join with the `dataset_groups_permissions` table, allowing retrieval of permission counts for each dataset group. - Refactored the `DatasetGroupInfo` struct to replace `permission_id` with `permission_count`, enhancing clarity and accuracy in the data representation. - Ensured that the query groups by the new permission structure, improving the functionality and security of dataset group listings. * feat: Refactor dataset listing to include user-specific permissions - Updated the `list_datasets` function to accept an additional `id` parameter for filtering datasets based on user permissions. - Enhanced the SQL query to join with the `dataset_permissions` table, allowing retrieval of permission details for each dataset. - Refactored the `DatasetInfo` struct to include an `assigned` field, improving clarity in the dataset representation. - Improved error handling for dataset retrieval, ensuring robust logging and response management. * fix: Correct user role attribute and enhance read-only logic in list_attributes_handler - Updated the user role attribute key from "role" to "organization_role" for accurate role retrieval. - Introduced a read-only flag for specific user attributes, improving data integrity by clearly indicating which attributes should not be modified. - Enhanced error handling for user role retrieval, ensuring robust responses for missing or incorrect attributes. * normalize header for list * new line * popup conatiner for users * feat: Enhance user authorization checks and refactor related functions - Added user authorization checks in `list_attributes`, `list_dataset_groups`, `list_datasets`, `list_permission_groups`, and `list_teams` functions to ensure only users with appropriate roles can access these resources. - Refactored the `list_teams_handler` to accept `user_id` as a parameter, improving clarity and consistency across user-related functions. - Updated SQL queries to utilize the new authorization checks, enhancing security and data integrity. - Removed redundant column allowances in `list_teams` permissions, streamlining the codebase. * pass last child as index * feat: Enhance permission group handling and streamline SQL queries - Expanded the `allow_columns_to_appear_in_same_group_by_clause!` macro in `models.rs` to include additional columns for datasets and users, improving query flexibility. - Refactored the `list_permission_groups` function to include dataset count and assigned status, enhancing the information returned for each permission group. - Updated SQL queries in `list_permission_groups` to utilize left joins for better data retrieval and to ensure accurate permission checks. - Removed redundant column allowances in various files, streamlining the codebase and improving maintainability. * feat: Add PUT route for updating teams in user assets - Introduced a new module `put_teams` to handle updates for teams. - Added a PUT route for `/teams` in the user assets router, allowing for team modifications. - Enhanced the routing capabilities of the user assets API to support both GET and PUT requests for teams. * onchagne appsegmetned update * create permission user endpoints * move files to match new page structure * refactor: Clean up routing and improve PUT teams handler - Reformatted imports in `mod.rs` for better readability. - Commented out the PUT route for `/teams` in the user assets router, indicating a potential future change or deprecation. - Updated the `put_teams` handler to return a `NoContent` response upon successful execution, enhancing clarity in API responses. - Improved error handling in the `put_teams` function for better logging and response management. * refactor: Standardize user ID parameter naming across user-related routes - Updated all user-related route handlers to use `user_id` instead of `id` for better clarity and consistency. - Modified the routing definitions in `mod.rs` to reflect the new parameter naming convention. - Enhanced the `list_permission_groups` function to accept `user_id` as a parameter, improving clarity in the handler's signature. - Ensured all relevant functions now consistently handle the `user_id` parameter, streamlining the codebase and improving maintainability. * feat: Enhance team management with role-based assignments - Introduced a new `TeamInfoRole` enum to represent user roles within teams, replacing the previous boolean `assigned` field. - Updated the `list_teams` handler to return team roles instead of assignment status, improving clarity on user roles. - Refactored the `put_teams` handler to support role-based assignments, allowing for more granular control over team memberships. - Added new PUT routes for dataset groups and permission groups in the user assets router, enhancing API capabilities. - Improved SQL queries for team assignments to utilize role information, streamlining database interactions. * feat: Add organization_id to DatasetGroupPermission and update dataset group handler - Introduced a new `organization_id` field in the `DatasetGroupPermission` struct to associate permissions with specific organizations. - Updated the `put_dataset_groups_handler` to include `organization_id` when creating or updating dataset group permissions, enhancing the API's capability to manage permissions at the organizational level. - Improved SQL query formatting for better readability in the handler. * add list components for permission settings * feat: Introduce assets module and update routing for permission groups - Added a new `assets` module to organize related routes. - Updated the routing in `mod.rs` to nest the `assets` router under the `/:permission_group_id` path, enhancing the structure and clarity of the API. - Maintained existing routes for managing permission groups while improving modularity. * create permission group users * refactor: Update list_permission_groups_handler to use user_id and improve SQL queries - Changed the parameter in the SQL query from `user.id` to `user_id` for consistency with the updated user ID parameter naming convention. - Enhanced the SQL query to count distinct dataset permissions and utilize `bool_or` for identity checks, improving accuracy and performance. - Cleaned up the grouping in the SQL query by removing unnecessary fields, streamlining the data retrieval process. * add listing for dataset groups * feat: Add PUT routes for user and dataset management in assets module - Introduced new PUT routes for managing users and dataset groups in the assets module. - Updated the router to support PUT requests for `/users`, `/dataset_groups`, and `/datasets`, enhancing the API's functionality for resource updates. - Improved modularity by organizing related routes within the assets module. * add listing for dataset groups * add list for datasets * assigned permissions * Add attributes and teams * feat: Add DatasetToDatasetGroup model and update schema - Introduced a new `DatasetToDatasetGroup` struct to represent the relationship between datasets and dataset groups, including fields for timestamps and optional deletion. - Updated the database schema to include `updated_at` and `deleted_at` fields for the `datasets_to_dataset_groups` table, enhancing data tracking capabilities. - Refactored the routing in `mod.rs` to include a nested router for assets, improving the organization of dataset group routes. * invalidate query if user id is present * create a dataset modal added to user page * add team modal to teams * assigned popup * feat: Enhance user retrieval with dataset information - Added new structs `DatasetLineage` and `DatasetInfo` to represent dataset details and lineage. - Updated `UserResponse` to include a list of datasets associated with the user. - Refactored `get_user_information` function to concurrently fetch user info, direct datasets, permission group datasets, and organization datasets using `tokio::spawn` for improved performance. - Implemented logic to compile datasets based on direct access and permission group access, including lineage tracking for better data representation. - Enhanced error handling during database queries to ensure robust user information retrieval. * feat: Enhance dataset access retrieval in user and dataset overview - Updated `get_dataset_overview` to include dataset group access and permission group to dataset group access, improving the granularity of dataset permissions. - Introduced new queries to fetch dataset groups and their associated permissions, enhancing the dataset overview for users. - Refactored `get_user_information` to concurrently retrieve dataset groups and permission group datasets, optimizing performance with `tokio::spawn`. - Enhanced lineage tracking for datasets, allowing for better representation of user permissions across dataset groups and permission groups. - Improved error handling during database queries to ensure robust data retrieval. * lineage props passed * refactor: Streamline dataset access logic in get_user_information - Simplified access control logic for datasets based on user roles, consolidating conditions for WorkspaceAdmin, DataAdmin, Querier, Viewer, and RestrictedQuerier. - Enhanced dataset lineage tracking to provide clearer representation of user permissions across various dataset access types. - Removed redundant code related to dataset processing, improving readability and maintainability of the `get_user_information` function. - Ensured that datasets are correctly categorized based on direct access, permission group access, and organization datasets, optimizing the overall data retrieval process. * feat: Refactor dataset overview access lineage in get_dataset_overview - Introduced a default access lineage for users, ensuring consistent representation of user permissions. - Simplified the addition of user roles to the lineage, consolidating logic for WorkspaceAdmin, DataAdmin, Querier, and Viewer roles. - Enhanced lineage tracking for RestrictedQuerier role to include direct dataset access and permission group lineage, improving granularity of dataset permissions. - Removed redundant code related to dataset and permission group lineage, optimizing readability and maintainability of the `get_dataset_overview` function. * add datasetgroup handler * feat: Improve dataset access control and lineage tracking - Enhanced the `get_dataset_overview` function to refine access control for the `RestrictedQuerier` role, allowing for more granular permission checks based on various access paths. - Updated the `get_user_information` function to streamline dataset processing, ensuring that datasets are categorized correctly based on direct access and permission group access. - Removed redundant code and improved readability by consolidating logic for user roles, enhancing maintainability of both functions. - Improved lineage tracking for datasets, providing a clearer representation of user permissions across different access types. * clickable pills * fix build errors * add endpoints for dataset groups, and permission groups * refactor: Enhance dataset access control and lineage tracking - Streamlined the `get_dataset_overview` function to improve access control for the `RestrictedQuerier` role, ensuring more precise permission checks. - Updated the `get_user_information` function to optimize dataset processing, categorizing datasets based on direct access and permission group access. - Removed redundant code and improved readability by consolidating logic for user roles, enhancing maintainability. - Enhanced lineage tracking for datasets, providing a clearer representation of user permissions across different access types. * better handling for create a permission group * Refetch on team created for now * add additional pages * permission group modal update * added pages for permission groups * add user permission list * add datasets to permission groups page * Update dependencies and refactor Snowflake query handling - Downgraded the `base64` crate version in `Cargo.toml` from `0.22.1` to `0.21`. - Refactored the `snowflake_query` function in `snowflake_query.rs` to improve data type handling, including support for additional Arrow data types and enhanced null value checks. - Updated the `route_to_query` function in `query_router.rs` to use mutable `snowflake_client` for better state management during query execution. - Improved error handling for closing the Snowflake client session, ensuring proper logging of any issues encountered. * add datasets to permission groups page * Refactor Snowflake client connection to remove warehouse and database IDs - Updated the `get_snowflake_client` function to no longer require `warehouse_id` and `database_id`, simplifying the connection process. - This change enhances flexibility in client initialization and aligns with recent updates to Snowflake API handling. * add permission groups lists * add dataset group in permission group area * remove console logs * Big nate/bus 936 if a user is not an admin we should not see the permission (#57) * app sidebar settings should hide * rename api directories * list empty state * offset for row * refetch after user default access changed (#58) * fix permission check on post_dataset rest * refactor: enhance dataset overview access lineage and permission checks - Updated the `get_dataset_overview` function to conditionally add default access lineage based on user roles and existing access paths. - Simplified the logic for adding user roles to the lineage, ensuring clarity and maintainability. - Improved handling for the `RestrictedQuerier` role to include checks for existing access before adding default lineage, enhancing permission accuracy. - Streamlined code by removing redundant checks and consolidating role handling, optimizing overall readability. * feat: Enhance permission group handling and data retrieval - Introduced a new `PermissionGroupInfo` struct to encapsulate detailed information about permission groups, including user and dataset counts. - Updated the `get_permission_group` and `list_permission_groups` functions to improve data retrieval and error handling. - Refactored SQL queries in `list_permission_groups` to include additional joins for counting users and datasets associated with permission groups, enhancing the overall functionality and clarity of the API. - Streamlined code for better readability and maintainability, ensuring consistent handling of user and permission group data. * check if user has an org first * user organization can be null * get datasets only if they have an org * refactor: Improve dataset access handling and permission checks - Enhanced the `get_restricted_user_datasets` and `get_restricted_user_datasets_with_metadata` functions to include additional permission checks for dataset groups and permission groups. - Consolidated SQL queries to ensure proper filtering of deleted records and improved clarity in dataset retrieval logic. - Introduced new joins and filters to handle dataset group permissions, ensuring accurate access control for users. - Streamlined code for better readability and maintainability, enhancing overall functionality in dataset access management. * add hidden prop to row listing component * reroute to correct link for datasets * disable editing my own user * restrict certain routes to admins * small users page * restrict adding people to admins * update packages * Update shimmer text component * Update ShimmerText.tsx * update how no datasets is presented * fix permission check on post_dataset rest (#59) * fix permission check on post_dataset rest * refactor: enhance dataset overview access lineage and permission checks - Updated the `get_dataset_overview` function to conditionally add default access lineage based on user roles and existing access paths. - Simplified the logic for adding user roles to the lineage, ensuring clarity and maintainability. - Improved handling for the `RestrictedQuerier` role to include checks for existing access before adding default lineage, enhancing permission accuracy. - Streamlined code by removing redundant checks and consolidating role handling, optimizing overall readability. * feat: Enhance permission group handling and data retrieval - Introduced a new `PermissionGroupInfo` struct to encapsulate detailed information about permission groups, including user and dataset counts. - Updated the `get_permission_group` and `list_permission_groups` functions to improve data retrieval and error handling. - Refactored SQL queries in `list_permission_groups` to include additional joins for counting users and datasets associated with permission groups, enhancing the overall functionality and clarity of the API. - Streamlined code for better readability and maintainability, ensuring consistent handling of user and permission group data. * refactor: Improve dataset access handling and permission checks - Enhanced the `get_restricted_user_datasets` and `get_restricted_user_datasets_with_metadata` functions to include additional permission checks for dataset groups and permission groups. - Consolidated SQL queries to ensure proper filtering of deleted records and improved clarity in dataset retrieval logic. - Introduced new joins and filters to handle dataset group permissions, ensuring accurate access control for users. - Streamlined code for better readability and maintainability, enhancing overall functionality in dataset access management. * fix: Update SQL migration and seed data for user attributes - Modified the SQL migration to specify the schema for the `users` table, ensuring clarity in the update statement. - Adjusted the seed data for `users_to_organizations` to change the `organization_id` from 'public' to 'none', reflecting a more accurate state for user roles and organization associations. - Ensured consistency in the formatting of SQL insert statements for better readability. * fix: Prevent users from updating their own profiles - Added a check in the `update_user_handler` to prevent users from updating their own information, returning an error if they attempt to do so. - This change enhances security by ensuring that users cannot modify their own records, which could lead to unauthorized changes. * refactor: Simplify dashboard permission queries by removing team-based joins - Removed left joins with `teams_to_users` table in dashboard permission queries - Simplified permission checks to only filter by direct user ID - Updated queries in `get_user_dashboard_permission`, `get_bulk_user_dashboard_permission`, and `list_dashboards_handler` - Streamlined SQL query logic for more direct and efficient permission checks * add secure middleware checks * Update supabase server to secure and http only * dashboard permissions fix * set cookies * set cookies * Enhance email functionality by adding HTML escaping - Added `html-escape` crate to `Cargo.toml` for HTML escaping. - Updated email template processing to escape HTML in message and button text, preventing potential XSS vulnerabilities. - Modified test cases to include HTML content in email parameters, ensuring proper handling and escaping. This change improves security by sanitizing user input in email communications. --------- Co-authored-by: Nate Kelley <nate@buster.so> Co-authored-by: Nate Kelley <133379588+nate-kelley-buster@users.noreply.github.com> Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com> |
||
---|---|---|
.. | ||
2024-06-03-034617_create_organizations | ||
2024-06-03-034618_create_users | ||
2024-06-03-034619_create_users_to_organizations | ||
2024-06-03-035237_create_api_keys | ||
2024-06-03-040003_create_teams | ||
2024-06-03-040138_create_teams_to_users | ||
2024-06-03-220858_create_data_sources | ||
2024-06-03-221241_create_datasets | ||
2024-06-03-221610_create_permission_groups | ||
2024-06-03-221828_create_datasets_to_permission_groups | ||
2024-06-03-222323_create_terms | ||
2024-06-03-223319_create_collections | ||
2024-06-03-223320_create_dashboards | ||
2024-06-03-223321_create_threads | ||
2024-06-03-223322_create_messages | ||
2024-06-03-224321_create_dashboard_versions | ||
2024-06-07-180843_create_dataset_columns | ||
2024-06-18-230440_create_threads_to_dashboards | ||
2024-07-08-175008_create_asset_permissions | ||
2024-07-08-175124_create_collections_to_assets | ||
2024-07-08-175134_permission_groups_to_identities | ||
2024-07-23-214547_create_user_favorites | ||
2024-07-24-194453_create_terms_to_datasets | ||
2024-08-06-220651_webhook_functions | ||
2024-08-09-224447_auth_user_creation | ||
2024-08-12-173526_cron_to_delete_anon_users | ||
2024-08-16-170337_stored_values_on_dataset_columns | ||
2024-11-14-155519_add_organization_id_to_thread | ||
2024-11-19-195358_add_entity_relationship_table | ||
2024-11-26-141715_add_env_to_data_sources | ||
2024-11-26-151750_add_unique_constraint_to_data_sources | ||
2024-11-26-170536_semantic_attributes | ||
2024-12-17-180014_sql_evaluations_table | ||
2024-12-20-203412_asset_search | ||
2024-12-23-200017_terms_search | ||
2025-01-01-212411_drop_webhooks_for_typesense | ||
2025-01-08-163102_add_dataset_groups_adjust_teams_adjust_permissions | ||
2025-01-09-044455_add_yaml_field_for_datasets | ||
2025-01-09-183703_add_unique_constraint_on_datasets | ||
2025-01-16-154339_rls_policies_on_new_tables | ||
2025-01-17-180051_user_attributes | ||
2025-01-17-182615_user_info_cache | ||
2025-01-20-221752_add_dataset_gropus_to_permission_groups_and_users | ||
2025-01-21-172028_unique_constraint_on_dataset_groups_association | ||
2025-01-21-184456_fix_dataset_to_dataset_groups_table |