KNOWLEDGE BASE
Log In    |    Knowledge Base    |    4D Home
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.
{
  "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.