diff --git a/docs/docs/app-builder/anti-patterns.md b/docs/docs/app-builder/anti-patterns.md index adadba5acd..c1dec4b2cd 100644 --- a/docs/docs/app-builder/anti-patterns.md +++ b/docs/docs/app-builder/anti-patterns.md @@ -109,6 +109,14 @@ actions.setPageVariable("data", data); --- +## 11. Direct Mutation of Data + +- **Anti-Pattern**: Directly mutating data structures through JavaScript code, such as using `queries.getEmployees.data = []`. +- **Solution**: Always use ToolJet's built in **[actions](/docs/how-to/run-actions-from-runjs/)** to manipulate data. +- **Reason**: Direct mutation of data can lead to unexpected bugs and make debugging more complex. + +--- + ## Conclusion Avoiding these anti-patterns when using ToolJet ensures that your applications are efficient, responsive, and maintainable. By following these best practices, you can enhance user experience and simplify app management. Always consider the impact of your development choices on both performance and scalability. diff --git a/docs/docs/org-management/permissions.md b/docs/docs/org-management/permissions.md index 2d51dad4ad..a0f1170a2e 100644 --- a/docs/docs/org-management/permissions.md +++ b/docs/docs/org-management/permissions.md @@ -52,7 +52,7 @@ For each resource type, different levels of permissions can be set: ### Granular Access Permissions -For more fine-grained control, administrators can set permissions for individual resources in the **Granular Access** tab of each user group. +For more fine-grained control, administrators can set permissions for individual apps and data sources in the **Granular Access** tab of each user group.
Granular Access @@ -84,8 +84,9 @@ For more fine-grained control, administrators can set permissions for individual ## Inheritance and Overrides -- Users inherit permissions from their assigned role and any groups they belong to. -- Custom group permissions can override default role permissions. +- Users inherit permissions from their assigned role and any custom groups they belong to. +- Adding users to custom groups with higher permissions than their current role will automatically upgrade their user role to match the higher access level. +- If a user’s role is downgraded to one with lower permissions, they will automatically be removed from any custom groups that provided higher access than their new role allows. - When a user belongs to multiple groups, they receive the highest level of permission granted by any of their groups. --- \ No newline at end of file diff --git a/docs/docs/tooljet-concepts/permissions.md b/docs/docs/tooljet-concepts/permissions.md index 6d228184a8..6a90d8cb2b 100644 --- a/docs/docs/tooljet-concepts/permissions.md +++ b/docs/docs/tooljet-concepts/permissions.md @@ -11,16 +11,16 @@ ToolJet employs a Role-Based Access Control (RBAC) system to manage security and
-## Groups -By default, there are two groups: **All Users**, which contains all workspace members, and **Admins**, which grants full access to all ToolJet resources. Custom groups like Support or Engineering can also be created to fine-tune access controls. +## Groups and User Roles +ToolJet provides a set of default user roles (e.g., Admin, Builder, End-user) and the ability to create custom groups (e.g., Support, Engineering, Finance) for more granular access control. These groups and roles determine the level of access a user has to resources within the workspace.
## Setting Permissions Based on Groups and Permissions -To secure your applications in ToolJet, you can leverage Groups and Permissions. For instance, you could create a custom group named Finance Team and assign it permissions to only access financial apps and variables within the workspace. When you invite new users, you can directly assign them to this group, ensuring they only have access to the resources they need to perform their tasks. You can also make the app public and make it accessible to users without the need to log in. +To secure your applications in ToolJet, you can leverage Groups and Permissions. For instance, you could create a custom group named Finance Team and assign it permissions to only access financial apps and constants within the workspace. When you invite new users, you can directly assign them to this group, ensuring they only have access to the resources they need to perform their tasks. You can also make the app public and make it accessible to users without the need to log in.
diff --git a/docs/docs/tutorial/manage-users-groups.md b/docs/docs/tutorial/manage-users-groups.md index b9c9dd8499..4009f8f68c 100644 --- a/docs/docs/tutorial/manage-users-groups.md +++ b/docs/docs/tutorial/manage-users-groups.md @@ -125,15 +125,15 @@ Remember that while metadata values are masked in the user interface, they are a ## Managing Groups -### Default Groups +### Default Roles -By default, every workspace has three default groups corresponding to user roles: +By default, every workspace has three default roles: 1. **Admin**: Full access to manage the workspace, including users, groups, and all resources. 2. **Builder**: Can create and edit apps, data sources, and other resources. 3. **End-user**: Can only view and use apps they have been given access to. -These groups have predefined permissions. The **Admin** and **End-user** groups cannot be modified, while the **Builder** group can be edited to change permissions. A user can be added to only one default group at a time. +These roles have predefined permissions. The **Admin** and **End-user** roles cannot be modified, while the **Builder** role can be edited to change permissions. A user can be assigned to only one default role at a time.
Archive/Unarchive User @@ -204,7 +204,7 @@ To duplicate a group:
:::tip -Regularly review group permissions and user roles to ensure proper access control. +Regularly review group permissions and user roles to ensure they align with your workspace's security and operational requirements. ::: --- \ No newline at end of file diff --git a/docs/versioned_docs/version-3.0.0-LTS/app-builder/anti-patterns.md b/docs/versioned_docs/version-3.0.0-LTS/app-builder/anti-patterns.md index adadba5acd..c1dec4b2cd 100644 --- a/docs/versioned_docs/version-3.0.0-LTS/app-builder/anti-patterns.md +++ b/docs/versioned_docs/version-3.0.0-LTS/app-builder/anti-patterns.md @@ -109,6 +109,14 @@ actions.setPageVariable("data", data); --- +## 11. Direct Mutation of Data + +- **Anti-Pattern**: Directly mutating data structures through JavaScript code, such as using `queries.getEmployees.data = []`. +- **Solution**: Always use ToolJet's built in **[actions](/docs/how-to/run-actions-from-runjs/)** to manipulate data. +- **Reason**: Direct mutation of data can lead to unexpected bugs and make debugging more complex. + +--- + ## Conclusion Avoiding these anti-patterns when using ToolJet ensures that your applications are efficient, responsive, and maintainable. By following these best practices, you can enhance user experience and simplify app management. Always consider the impact of your development choices on both performance and scalability. diff --git a/docs/versioned_docs/version-3.0.0-LTS/org-management/permissions.md b/docs/versioned_docs/version-3.0.0-LTS/org-management/permissions.md index 2d51dad4ad..a0f1170a2e 100644 --- a/docs/versioned_docs/version-3.0.0-LTS/org-management/permissions.md +++ b/docs/versioned_docs/version-3.0.0-LTS/org-management/permissions.md @@ -52,7 +52,7 @@ For each resource type, different levels of permissions can be set: ### Granular Access Permissions -For more fine-grained control, administrators can set permissions for individual resources in the **Granular Access** tab of each user group. +For more fine-grained control, administrators can set permissions for individual apps and data sources in the **Granular Access** tab of each user group.
Granular Access @@ -84,8 +84,9 @@ For more fine-grained control, administrators can set permissions for individual ## Inheritance and Overrides -- Users inherit permissions from their assigned role and any groups they belong to. -- Custom group permissions can override default role permissions. +- Users inherit permissions from their assigned role and any custom groups they belong to. +- Adding users to custom groups with higher permissions than their current role will automatically upgrade their user role to match the higher access level. +- If a user’s role is downgraded to one with lower permissions, they will automatically be removed from any custom groups that provided higher access than their new role allows. - When a user belongs to multiple groups, they receive the highest level of permission granted by any of their groups. --- \ No newline at end of file diff --git a/docs/versioned_docs/version-3.0.0-LTS/tooljet-concepts/permissions.md b/docs/versioned_docs/version-3.0.0-LTS/tooljet-concepts/permissions.md index 6d228184a8..6a90d8cb2b 100644 --- a/docs/versioned_docs/version-3.0.0-LTS/tooljet-concepts/permissions.md +++ b/docs/versioned_docs/version-3.0.0-LTS/tooljet-concepts/permissions.md @@ -11,16 +11,16 @@ ToolJet employs a Role-Based Access Control (RBAC) system to manage security and
-## Groups -By default, there are two groups: **All Users**, which contains all workspace members, and **Admins**, which grants full access to all ToolJet resources. Custom groups like Support or Engineering can also be created to fine-tune access controls. +## Groups and User Roles +ToolJet provides a set of default user roles (e.g., Admin, Builder, End-user) and the ability to create custom groups (e.g., Support, Engineering, Finance) for more granular access control. These groups and roles determine the level of access a user has to resources within the workspace.
## Setting Permissions Based on Groups and Permissions -To secure your applications in ToolJet, you can leverage Groups and Permissions. For instance, you could create a custom group named Finance Team and assign it permissions to only access financial apps and variables within the workspace. When you invite new users, you can directly assign them to this group, ensuring they only have access to the resources they need to perform their tasks. You can also make the app public and make it accessible to users without the need to log in. +To secure your applications in ToolJet, you can leverage Groups and Permissions. For instance, you could create a custom group named Finance Team and assign it permissions to only access financial apps and constants within the workspace. When you invite new users, you can directly assign them to this group, ensuring they only have access to the resources they need to perform their tasks. You can also make the app public and make it accessible to users without the need to log in.
diff --git a/docs/versioned_docs/version-3.0.0-LTS/tutorial/manage-users-groups.md b/docs/versioned_docs/version-3.0.0-LTS/tutorial/manage-users-groups.md index b9c9dd8499..4009f8f68c 100644 --- a/docs/versioned_docs/version-3.0.0-LTS/tutorial/manage-users-groups.md +++ b/docs/versioned_docs/version-3.0.0-LTS/tutorial/manage-users-groups.md @@ -125,15 +125,15 @@ Remember that while metadata values are masked in the user interface, they are a ## Managing Groups -### Default Groups +### Default Roles -By default, every workspace has three default groups corresponding to user roles: +By default, every workspace has three default roles: 1. **Admin**: Full access to manage the workspace, including users, groups, and all resources. 2. **Builder**: Can create and edit apps, data sources, and other resources. 3. **End-user**: Can only view and use apps they have been given access to. -These groups have predefined permissions. The **Admin** and **End-user** groups cannot be modified, while the **Builder** group can be edited to change permissions. A user can be added to only one default group at a time. +These roles have predefined permissions. The **Admin** and **End-user** roles cannot be modified, while the **Builder** role can be edited to change permissions. A user can be assigned to only one default role at a time.
Archive/Unarchive User @@ -204,7 +204,7 @@ To duplicate a group:
:::tip -Regularly review group permissions and user roles to ensure proper access control. +Regularly review group permissions and user roles to ensure they align with your workspace's security and operational requirements. ::: --- \ No newline at end of file