From 55c836e2c2475adb9ba3bbf7777c1e8ed23ad337 Mon Sep 17 00:00:00 2001 From: Mourad Aouinat Date: Thu, 16 Oct 2025 02:14:38 +0100 Subject: [PATCH 1/8] chore: add missing docs for events --- ...t 2025-10-16 at 1.57.27\342\200\257AM.png" | Bin 0 -> 27435 bytes .../events/img/keyboard-shortcuts-add.png | Bin 0 -> 23741 bytes .../events/img/keyboard-shortcuts-empty.png | Bin 0 -> 30409 bytes .../events/img/keyboard-shortcuts-save.png | Bin 0 -> 13426 bytes .../events/img/shortcuts-setup.png | Bin 0 -> 20015 bytes .../4DQodlyPro/pageLoaders/events/overview.md | 62 ++++++++++++++---- 6 files changed, 51 insertions(+), 11 deletions(-) create mode 100644 "versioned_docs/version-21/4DQodlyPro/pageLoaders/events/img/Screenshot 2025-10-16 at 1.57.27\342\200\257AM.png" create mode 100644 versioned_docs/version-21/4DQodlyPro/pageLoaders/events/img/keyboard-shortcuts-add.png create mode 100644 versioned_docs/version-21/4DQodlyPro/pageLoaders/events/img/keyboard-shortcuts-empty.png create mode 100644 versioned_docs/version-21/4DQodlyPro/pageLoaders/events/img/keyboard-shortcuts-save.png create mode 100644 versioned_docs/version-21/4DQodlyPro/pageLoaders/events/img/shortcuts-setup.png diff --git "a/versioned_docs/version-21/4DQodlyPro/pageLoaders/events/img/Screenshot 2025-10-16 at 1.57.27\342\200\257AM.png" "b/versioned_docs/version-21/4DQodlyPro/pageLoaders/events/img/Screenshot 2025-10-16 at 1.57.27\342\200\257AM.png" new file mode 100644 index 0000000000000000000000000000000000000000..0f1c6a98c285dbac1213e55e097338e2a006c255 GIT binary patch literal 27435 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 literal 0 HcmV?d00001 diff --git a/versioned_docs/version-21/4DQodlyPro/pageLoaders/events/img/keyboard-shortcuts-save.png b/versioned_docs/version-21/4DQodlyPro/pageLoaders/events/img/keyboard-shortcuts-save.png new file mode 100644 index 0000000000000000000000000000000000000000..7319b50ccb4139c957e09026681ef0cf21bdc5f3 GIT binary patch literal 13426 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 reference pointed to by the qodlysource changes in the web browser (not on the server)

  • The entity is [touched](../../../QodlyinCloud/qodlyScript/EntityClass.md#touched)
  • | -|Entity Qodly Source|The contents of the entity attribute change| -|Entity Selection Qodly Source|
  • The reference pointed by the qodlysource changes in the web browser (not on the server)
  • An entity is added to the entity selection
  • | -|Scalar Qodly Source|The contents of the scalar qodlysource change| +| Trigger | Description | +| ----------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| Qodly Source |
  • The reference pointed to by the qodlysource changes in the web browser (not on the server)
  • The entity is [touched](../../../QodlyinCloud/qodlyScript/EntityClass.md#touched)
  • | +| Entity Qodly Source | The contents of the entity attribute change | +| Entity Selection Qodly Source |
  • The reference pointed by the qodlysource changes in the web browser (not on the server)
  • An entity is added to the entity selection
  • | +| Scalar Qodly Source | The contents of the scalar qodlysource change | ## Circular Dependency Risk @@ -63,4 +104,3 @@ This creates a loop: Change → On Change Event → Reload Standard Action → Change → On Change Event → Reload Standard Action → ... This loop continues indefinitely until Qodly Studio runs out of resources or crashes, leading to the application freezing. - From 59374ac956589819a30e8c15ceb83df3555bfe5d Mon Sep 17 00:00:00 2001 From: Mourad Aouinat Date: Tue, 21 Oct 2025 14:47:58 +0100 Subject: [PATCH 2/8] chore: custom components breaking change --- versioned_docs/version-21/4DQodlyPro/notes.md | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/versioned_docs/version-21/4DQodlyPro/notes.md b/versioned_docs/version-21/4DQodlyPro/notes.md index 07e398f54..bb086e404 100644 --- a/versioned_docs/version-21/4DQodlyPro/notes.md +++ b/versioned_docs/version-21/4DQodlyPro/notes.md @@ -17,6 +17,17 @@ title: Release Notes ... more to come... +### Breaking changes + +Starting with version 21, custom components must be migrated to the new structure supported by the Qodly CLI. + +To migrate existing components, run the following command from the root of your project: + +```bash +npx @qodly/cli@latest migrate +``` + +Once migration is complete, rebuild your project to ensure all components load correctly in Studio. ## 4D 20 R10 From 966bdbbd3b4d17ddd92decc46b9e373e4b930ccc Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Mon, 24 Nov 2025 18:06:43 +0100 Subject: [PATCH 3/8] added restrict mode selector and moved sessions --- docs/4DQodlyPro/roles/img/restric-mode.png | Bin 0 -> 11992 bytes docs/4DQodlyPro/roles/permissionsOverview.md | 27 ++++++++++++++---- .../roles/rolesPrivilegesOverview.md | 19 +----------- .../qodlyScript/guides/sessions.md | 19 ++++++++++++ .../4DQodlyPro/roles/img/restric-mode.png | Bin 0 -> 11992 bytes .../4DQodlyPro/roles/permissionsOverview.md | 27 ++++++++++++++---- .../roles/rolesPrivilegesOverview.md | 19 +----------- .../qodlyScript/guides/sessions.md | 19 ++++++++++++ 8 files changed, 82 insertions(+), 48 deletions(-) create mode 100644 docs/4DQodlyPro/roles/img/restric-mode.png create mode 100644 versioned_docs/version-21/4DQodlyPro/roles/img/restric-mode.png diff --git a/docs/4DQodlyPro/roles/img/restric-mode.png b/docs/4DQodlyPro/roles/img/restric-mode.png new file mode 100644 index 0000000000000000000000000000000000000000..5c54178f702965b1104603cea6cbbd09b307786e GIT binary patch literal 11992 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 literal 0 HcmV?d00001 diff --git a/docs/4DQodlyPro/roles/permissionsOverview.md b/docs/4DQodlyPro/roles/permissionsOverview.md index d22050c05..d53218749 100644 --- a/docs/4DQodlyPro/roles/permissionsOverview.md +++ b/docs/4DQodlyPro/roles/permissionsOverview.md @@ -1,18 +1,16 @@ --- id: permissionsOverview -title: Overview +title: Permissions --- import Column from '@site/src/components/Column' -In managing access control within your application, understanding the hierarchy and how permissions can override one another is crucial. Permissions can be set at various levels—**Datastore**, **DataClass**, and **Attribute**—each with the ability to override or supplement permissions set at higher levels. This hierarchical structure allows for granular control over user access to resources. - +A permission is the ability to do an action on a resource. For example, *execute the `ds.myTable.myFunction()`* represents a permission. Each permission can be given to one or more privileges. -## Permissions +When no specific permission has been defined for a resource, access to the resource may be automatically unrestricted or restricted depending on the [default mode](#default-restriction-modes) defined for the project. -The permissions grid provides a comprehensive interface for managing access control. -### Permission Types +## Permission Types Permissions define essential actions on resources, covering tasks such as creation, reading, updating, deletion, description, execution (for functions), and promotion (also for functions). @@ -25,6 +23,20 @@ Permissions define essential actions on resources, covering tasks such as creati | Execute | Execute all functions throughout the Model, including DataStore, Dataclasses, Entity selections, Entities, as well as Singleton functions| Execute any function on the chosen dataclass (Dataclass functions, entity functions, and entity selection functions). | n/a | Execute the selected function. | | Promote | n/a | n/a | n/a | Temporarily adds a specific privilege to the session during function execution, primarily for secure privilege escalation. | + +## Default restriction modes + +The **Restrict Access by default** selector allows you to configure how resources (i.e. datastore, attributes, functions, etc.) are accessed when no specific permission is defined for them: + +- **Unrestricted mode** (selector off): Resources without defined permissions are accessible to all requests. This mode is suitable for development environments where access can be gradually restricted. +- **Restricted mode** (selector on): Resources without defined permissions are blocked by default. This mode is recommended for production environments where access must be explicitly granted. + +For more information on the restriction modes, please refer to the [4D documentation](https://developer.4d.com/docs/ORDA/privileges#restriction-modes/). + +## Managing permissions + +The permissions grid provides a comprehensive interface for managing access control. + ### Search Functionality The search bar allows users to quickly locate permissions by typing keywords. The search dynamically narrows the list of displayed permissions based on the input. @@ -104,6 +116,9 @@ When all resources are available, the Clean button is disabled. +

    @@ -169,23 +169,6 @@ To assign a role to a user in the `development` environment: -## Retrieving Current Session Information - -You can retrieve user information in the current session using the `cs.Qodly.Users` class. This allows you to access essential user details, such as their email, role, first name, and last name. - -Here's how you can retrieve and store user data for session-wide access: - -```qs -exposed Function loadSessionUserInfo() - - use(session.storage) - session.storage.currentUser = cs.Qodly.Users.me.currentUser() - end - -``` - -For more detailed information, refer to the [Sessions](../../QodlyinCloud/qodlyScript/SessionClass.md) and [Users](../../QodlyinCloud/qodlyScript/UsersClass.md) sections. - ## Roles and privileges JSON Representation diff --git a/docs/QodlyinCloud/qodlyScript/guides/sessions.md b/docs/QodlyinCloud/qodlyScript/guides/sessions.md index a0ab21eec..3cfa7e69c 100644 --- a/docs/QodlyinCloud/qodlyScript/guides/sessions.md +++ b/docs/QodlyinCloud/qodlyScript/guides/sessions.md @@ -20,3 +20,22 @@ The user only has [Guest privilege](../../../4DQodlyPro/roles/datastorePermissio See [this tutorial](./login.md) for an example of custom user authentication for public access. +## Retrieving Current Session Information + +You can retrieve user information in the current session using the `cs.Qodly.Users` class. This allows you to access essential user details, such as their email, role, first name, and last name. + +Here's how you can retrieve and store user data for session-wide access: + +```qs +exposed Function loadSessionUserInfo() + + use(session.storage) + session.storage.currentUser = cs.Qodly.Users.me.currentUser() + end + +``` + +For more detailed information, refer to the [Sessions](../SessionClass.md) and [Users](../UsersClass.md) classes. + + + diff --git a/versioned_docs/version-21/4DQodlyPro/roles/img/restric-mode.png b/versioned_docs/version-21/4DQodlyPro/roles/img/restric-mode.png new file mode 100644 index 0000000000000000000000000000000000000000..5c54178f702965b1104603cea6cbbd09b307786e GIT binary patch literal 11992 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 literal 0 HcmV?d00001 diff --git a/versioned_docs/version-21/4DQodlyPro/roles/permissionsOverview.md b/versioned_docs/version-21/4DQodlyPro/roles/permissionsOverview.md index d22050c05..d53218749 100644 --- a/versioned_docs/version-21/4DQodlyPro/roles/permissionsOverview.md +++ b/versioned_docs/version-21/4DQodlyPro/roles/permissionsOverview.md @@ -1,18 +1,16 @@ --- id: permissionsOverview -title: Overview +title: Permissions --- import Column from '@site/src/components/Column' -In managing access control within your application, understanding the hierarchy and how permissions can override one another is crucial. Permissions can be set at various levels—**Datastore**, **DataClass**, and **Attribute**—each with the ability to override or supplement permissions set at higher levels. This hierarchical structure allows for granular control over user access to resources. - +A permission is the ability to do an action on a resource. For example, *execute the `ds.myTable.myFunction()`* represents a permission. Each permission can be given to one or more privileges. -## Permissions +When no specific permission has been defined for a resource, access to the resource may be automatically unrestricted or restricted depending on the [default mode](#default-restriction-modes) defined for the project. -The permissions grid provides a comprehensive interface for managing access control. -### Permission Types +## Permission Types Permissions define essential actions on resources, covering tasks such as creation, reading, updating, deletion, description, execution (for functions), and promotion (also for functions). @@ -25,6 +23,20 @@ Permissions define essential actions on resources, covering tasks such as creati | Execute | Execute all functions throughout the Model, including DataStore, Dataclasses, Entity selections, Entities, as well as Singleton functions| Execute any function on the chosen dataclass (Dataclass functions, entity functions, and entity selection functions). | n/a | Execute the selected function. | | Promote | n/a | n/a | n/a | Temporarily adds a specific privilege to the session during function execution, primarily for secure privilege escalation. | + +## Default restriction modes + +The **Restrict Access by default** selector allows you to configure how resources (i.e. datastore, attributes, functions, etc.) are accessed when no specific permission is defined for them: + +- **Unrestricted mode** (selector off): Resources without defined permissions are accessible to all requests. This mode is suitable for development environments where access can be gradually restricted. +- **Restricted mode** (selector on): Resources without defined permissions are blocked by default. This mode is recommended for production environments where access must be explicitly granted. + +For more information on the restriction modes, please refer to the [4D documentation](https://developer.4d.com/docs/ORDA/privileges#restriction-modes/). + +## Managing permissions + +The permissions grid provides a comprehensive interface for managing access control. + ### Search Functionality The search bar allows users to quickly locate permissions by typing keywords. The search dynamically narrows the list of displayed permissions based on the input. @@ -104,6 +116,9 @@ When all resources are available, the Clean button is disabled. +

    @@ -169,23 +169,6 @@ To assign a role to a user in the `development` environment: -## Retrieving Current Session Information - -You can retrieve user information in the current session using the `cs.Qodly.Users` class. This allows you to access essential user details, such as their email, role, first name, and last name. - -Here's how you can retrieve and store user data for session-wide access: - -```qs -exposed Function loadSessionUserInfo() - - use(session.storage) - session.storage.currentUser = cs.Qodly.Users.me.currentUser() - end - -``` - -For more detailed information, refer to the [Sessions](../../QodlyinCloud/qodlyScript/SessionClass.md) and [Users](../../QodlyinCloud/qodlyScript/UsersClass.md) sections. - ## Roles and privileges JSON Representation diff --git a/versioned_docs/version-21/QodlyinCloud/qodlyScript/guides/sessions.md b/versioned_docs/version-21/QodlyinCloud/qodlyScript/guides/sessions.md index a0ab21eec..3cfa7e69c 100644 --- a/versioned_docs/version-21/QodlyinCloud/qodlyScript/guides/sessions.md +++ b/versioned_docs/version-21/QodlyinCloud/qodlyScript/guides/sessions.md @@ -20,3 +20,22 @@ The user only has [Guest privilege](../../../4DQodlyPro/roles/datastorePermissio See [this tutorial](./login.md) for an example of custom user authentication for public access. +## Retrieving Current Session Information + +You can retrieve user information in the current session using the `cs.Qodly.Users` class. This allows you to access essential user details, such as their email, role, first name, and last name. + +Here's how you can retrieve and store user data for session-wide access: + +```qs +exposed Function loadSessionUserInfo() + + use(session.storage) + session.storage.currentUser = cs.Qodly.Users.me.currentUser() + end + +``` + +For more detailed information, refer to the [Sessions](../SessionClass.md) and [Users](../UsersClass.md) classes. + + + From 5bc4901305490c8e0c644811ddc89f34da4e7900 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Mon, 24 Nov 2025 18:23:02 +0100 Subject: [PATCH 4/8] fix --- docs/4DQodlyPro/roles/rolesPrivilegesOverview.md | 2 +- .../version-21/4DQodlyPro/roles/rolesPrivilegesOverview.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/4DQodlyPro/roles/rolesPrivilegesOverview.md b/docs/4DQodlyPro/roles/rolesPrivilegesOverview.md index 3e8f12eb1..f4de41790 100644 --- a/docs/4DQodlyPro/roles/rolesPrivilegesOverview.md +++ b/docs/4DQodlyPro/roles/rolesPrivilegesOverview.md @@ -93,7 +93,7 @@ To add a privilege: 3. Click on the `Privileges` tab to access privileges management. 4. Click on the `+` button to create a new privilege. - +

    diff --git a/versioned_docs/version-21/4DQodlyPro/roles/rolesPrivilegesOverview.md b/versioned_docs/version-21/4DQodlyPro/roles/rolesPrivilegesOverview.md index 3e8f12eb1..f4de41790 100644 --- a/versioned_docs/version-21/4DQodlyPro/roles/rolesPrivilegesOverview.md +++ b/versioned_docs/version-21/4DQodlyPro/roles/rolesPrivilegesOverview.md @@ -93,7 +93,7 @@ To add a privilege: 3. Click on the `Privileges` tab to access privileges management. 4. Click on the `+` button to create a new privilege. - +

    From 116b4a1aedb6fc52804446d29bfa397dcc2323bb Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Mon, 24 Nov 2025 18:35:37 +0100 Subject: [PATCH 5/8] fix title --- docs/4DQodlyPro/roles/permissionsOverview.md | 2 +- .../version-21/4DQodlyPro/roles/permissionsOverview.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/4DQodlyPro/roles/permissionsOverview.md b/docs/4DQodlyPro/roles/permissionsOverview.md index d53218749..22c41b672 100644 --- a/docs/4DQodlyPro/roles/permissionsOverview.md +++ b/docs/4DQodlyPro/roles/permissionsOverview.md @@ -1,6 +1,6 @@ --- id: permissionsOverview -title: Permissions +title: Overview --- import Column from '@site/src/components/Column' diff --git a/versioned_docs/version-21/4DQodlyPro/roles/permissionsOverview.md b/versioned_docs/version-21/4DQodlyPro/roles/permissionsOverview.md index d53218749..22c41b672 100644 --- a/versioned_docs/version-21/4DQodlyPro/roles/permissionsOverview.md +++ b/versioned_docs/version-21/4DQodlyPro/roles/permissionsOverview.md @@ -1,6 +1,6 @@ --- id: permissionsOverview -title: Permissions +title: Overview --- import Column from '@site/src/components/Column' From 40eea06f5f5e0611f17f9df27eb0211f7ecfb520 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Mon, 24 Nov 2025 18:39:47 +0100 Subject: [PATCH 6/8] fix picts --- docs/4DQodlyPro/roles/img/restric-mode.png | Bin 11992 -> 9939 bytes docs/4DQodlyPro/roles/permissionsOverview.md | 2 +- .../4DQodlyPro/roles/img/restric-mode.png | Bin 11992 -> 9939 bytes .../4DQodlyPro/roles/permissionsOverview.md | 2 +- 4 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/4DQodlyPro/roles/img/restric-mode.png b/docs/4DQodlyPro/roles/img/restric-mode.png index 5c54178f702965b1104603cea6cbbd09b307786e..8728fdf8a939eb7419767decd3a2d906ab664ade 100644 GIT binary patch literal 9939 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 MteQ-flu^+C0diGEzW@LL literal 11992 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 diff --git a/docs/4DQodlyPro/roles/permissionsOverview.md b/docs/4DQodlyPro/roles/permissionsOverview.md index 22c41b672..ba5377522 100644 --- a/docs/4DQodlyPro/roles/permissionsOverview.md +++ b/docs/4DQodlyPro/roles/permissionsOverview.md @@ -26,7 +26,7 @@ Permissions define essential actions on resources, covering tasks such as creati ## Default restriction modes -The **Restrict Access by default** selector allows you to configure how resources (i.e. datastore, attributes, functions, etc.) are accessed when no specific permission is defined for them: +The **Restrict Access by default** selector allows you to configure how resources (i.e. datastore, attributes, functions, etc.) are accessed when no specific permission is defined for them: - **Unrestricted mode** (selector off): Resources without defined permissions are accessible to all requests. This mode is suitable for development environments where access can be gradually restricted. - **Restricted mode** (selector on): Resources without defined permissions are blocked by default. This mode is recommended for production environments where access must be explicitly granted. diff --git a/versioned_docs/version-21/4DQodlyPro/roles/img/restric-mode.png b/versioned_docs/version-21/4DQodlyPro/roles/img/restric-mode.png index 5c54178f702965b1104603cea6cbbd09b307786e..8728fdf8a939eb7419767decd3a2d906ab664ade 100644 GIT binary patch literal 9939 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 MteQ-flu^+C0diGEzW@LL literal 11992 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 diff --git a/versioned_docs/version-21/4DQodlyPro/roles/permissionsOverview.md b/versioned_docs/version-21/4DQodlyPro/roles/permissionsOverview.md index 22c41b672..ba5377522 100644 --- a/versioned_docs/version-21/4DQodlyPro/roles/permissionsOverview.md +++ b/versioned_docs/version-21/4DQodlyPro/roles/permissionsOverview.md @@ -26,7 +26,7 @@ Permissions define essential actions on resources, covering tasks such as creati ## Default restriction modes -The **Restrict Access by default** selector allows you to configure how resources (i.e. datastore, attributes, functions, etc.) are accessed when no specific permission is defined for them: +The **Restrict Access by default** selector allows you to configure how resources (i.e. datastore, attributes, functions, etc.) are accessed when no specific permission is defined for them: - **Unrestricted mode** (selector off): Resources without defined permissions are accessible to all requests. This mode is suitable for development environments where access can be gradually restricted. - **Restricted mode** (selector on): Resources without defined permissions are blocked by default. This mode is recommended for production environments where access must be explicitly granted. From bed76a6015e7440b673e73f421b6713cd9033baf Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Mon, 24 Nov 2025 18:50:10 +0100 Subject: [PATCH 7/8] fix sizes --- docs/4DQodlyPro/roles/permissionsOverview.md | 2 +- .../version-21/4DQodlyPro/roles/permissionsOverview.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/4DQodlyPro/roles/permissionsOverview.md b/docs/4DQodlyPro/roles/permissionsOverview.md index ba5377522..9f98dabfd 100644 --- a/docs/4DQodlyPro/roles/permissionsOverview.md +++ b/docs/4DQodlyPro/roles/permissionsOverview.md @@ -26,7 +26,7 @@ Permissions define essential actions on resources, covering tasks such as creati ## Default restriction modes -The **Restrict Access by default** selector allows you to configure how resources (i.e. datastore, attributes, functions, etc.) are accessed when no specific permission is defined for them: +The **Restrict Access by default** selector allows you to configure how resources (i.e. datastore, attributes, functions, etc.) are accessed when no specific permission is defined for them: - **Unrestricted mode** (selector off): Resources without defined permissions are accessible to all requests. This mode is suitable for development environments where access can be gradually restricted. - **Restricted mode** (selector on): Resources without defined permissions are blocked by default. This mode is recommended for production environments where access must be explicitly granted. diff --git a/versioned_docs/version-21/4DQodlyPro/roles/permissionsOverview.md b/versioned_docs/version-21/4DQodlyPro/roles/permissionsOverview.md index ba5377522..9f98dabfd 100644 --- a/versioned_docs/version-21/4DQodlyPro/roles/permissionsOverview.md +++ b/versioned_docs/version-21/4DQodlyPro/roles/permissionsOverview.md @@ -26,7 +26,7 @@ Permissions define essential actions on resources, covering tasks such as creati ## Default restriction modes -The **Restrict Access by default** selector allows you to configure how resources (i.e. datastore, attributes, functions, etc.) are accessed when no specific permission is defined for them: +The **Restrict Access by default** selector allows you to configure how resources (i.e. datastore, attributes, functions, etc.) are accessed when no specific permission is defined for them: - **Unrestricted mode** (selector off): Resources without defined permissions are accessible to all requests. This mode is suitable for development environments where access can be gradually restricted. - **Restricted mode** (selector on): Resources without defined permissions are blocked by default. This mode is recommended for production environments where access must be explicitly granted. From 62e455f61b5d9031640fde706e04a48618fee31b Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Mon, 24 Nov 2025 18:58:20 +0100 Subject: [PATCH 8/8] picture under --- docs/4DQodlyPro/roles/permissionsOverview.md | 4 +++- .../version-21/4DQodlyPro/roles/permissionsOverview.md | 4 +++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/docs/4DQodlyPro/roles/permissionsOverview.md b/docs/4DQodlyPro/roles/permissionsOverview.md index 9f98dabfd..e4cdc830a 100644 --- a/docs/4DQodlyPro/roles/permissionsOverview.md +++ b/docs/4DQodlyPro/roles/permissionsOverview.md @@ -26,7 +26,9 @@ Permissions define essential actions on resources, covering tasks such as creati ## Default restriction modes -The **Restrict Access by default** selector allows you to configure how resources (i.e. datastore, attributes, functions, etc.) are accessed when no specific permission is defined for them: +The **Restrict Access by default** selector allows you to configure how resources (i.e. datastore, attributes, functions, etc.) are accessed when no specific permission is defined for them: + + - **Unrestricted mode** (selector off): Resources without defined permissions are accessible to all requests. This mode is suitable for development environments where access can be gradually restricted. - **Restricted mode** (selector on): Resources without defined permissions are blocked by default. This mode is recommended for production environments where access must be explicitly granted. diff --git a/versioned_docs/version-21/4DQodlyPro/roles/permissionsOverview.md b/versioned_docs/version-21/4DQodlyPro/roles/permissionsOverview.md index 9f98dabfd..e4cdc830a 100644 --- a/versioned_docs/version-21/4DQodlyPro/roles/permissionsOverview.md +++ b/versioned_docs/version-21/4DQodlyPro/roles/permissionsOverview.md @@ -26,7 +26,9 @@ Permissions define essential actions on resources, covering tasks such as creati ## Default restriction modes -The **Restrict Access by default** selector allows you to configure how resources (i.e. datastore, attributes, functions, etc.) are accessed when no specific permission is defined for them: +The **Restrict Access by default** selector allows you to configure how resources (i.e. datastore, attributes, functions, etc.) are accessed when no specific permission is defined for them: + + - **Unrestricted mode** (selector off): Resources without defined permissions are accessible to all requests. This mode is suitable for development environments where access can be gradually restricted. - **Restricted mode** (selector on): Resources without defined permissions are blocked by default. This mode is recommended for production environments where access must be explicitly granted.