Tech Tip: Understanding the "none" Privilege in Roles.Json
PRODUCT: 4D | VERSION: 20 R | PLATFORM: Mac & Win
Published On: November 12, 2025
When a new 4D project is created, a default roles.json file is automatically generated at:
/Project/Sources/
This file defines how roles, privileges, and permissions control access to the data model and other resources.
The "none" privilege enforces a secure-by-default configuration by preventing all data access when a project is first created.
Its purpose is to protect the datastore (ds) and ensure that no unauthorized actions can be performed.
The "none" privilege should not be modified or reused.
This file defines how roles, privileges, and permissions control access to the data model and other resources.
| { "privileges": [ { "privilege": "none", "includes": [] } ], "roles": [], "permissions": { "allowed": [ { "applyTo": "ds", "type": "datastore", "read": ["none"], "create": ["none"], "update": ["none"], "drop": ["none"], "execute": ["none"], "promote": ["none"] } ] }, "forceLogin": true } |
The "none" privilege enforces a secure-by-default configuration by preventing all data access when a project is first created.
Its purpose is to protect the datastore (ds) and ensure that no unauthorized actions can be performed.
- All read, create, update, and delete operations are blocked.
- Execution and promotion permissions are disabled.
- The datastore remains fully protected until explicit privileges are defined and assigned.
The "none" privilege should not be modified or reused.