Pyplan provides a comprehensive set of security features for managing users and their permissions. Each user can be assigned access to specific companies and configured with distinct departments and roles, ensuring precise control over what they can view and modify within the platform.
We manage users, roles, and departments from the User manager, available under Security options → Users.

In this section we can:

To create a new user you must access the Add user option in User manager

To achieve this, it is imperative to input information into the designated fields, including First Name, Last Name, Email, Username, and Password. Additionally, users have the option to choose settings such as changing the password upon login and enabling multi-factor authentication.

Then we choose, for each company you want to assign to the user, the corresponding role and departments.

When a user belongs to multiple departments, Pyplan needs to know which department’s resources should be used when creating the user’s pod and assigning default configurations. For that we use the Main Department:
⚠️ Note:
If a user is assigned to more than one department, we must select a Main Department.
- Users can belong to multiple departments without issues, but one of them has to be marked as the main one.
- If we do not set a Main Department, the backend will choose one arbitrarily, which may lead to incorrect behavior or unexpected resource assignments
We can modify existing users from the same User manager:
Changes take effect immediately after saving.

A role is a collection of permissions that are assigned to a user within the platform. Roles can be assigned and customized according to the needs of each organization.

Roles are created by accessing the Add role option in the top menu. Then you must select the company to which the role will belong, the name and one of the templates that has a set of default permissions configured, which can then be modified and customized in the Permissions by role option.

The Permissions by role option lets us modify which actions each role can perform.

When any of the groups are displayed, the permissions are detailed and can be edited for each of the roles in the current company by checking or unchecking the corresponding checkboxes.

These are the default roles and their associated permissions in PyPlan:
| Module | Permission | Administrator | App Administrator | Creator with Public Access | Creator | Explorer | Viewer | Login Only User | Super Administrator |
| Aplications | Create apps | ✓ | ✓ | ✓ | ✓ | ✓ | |||
| Create versions and scenarios | ✓ | ✓ | ✓ | ✓ | ✓ | ||||
| View diagram | ✓ | ✓ | ✓ | ✓ | ✓ | ||||
| Save changes in app in private space | ✓ | ✓ | ✓ | ✓ | ✓ | ||||
| Save changes in Public app | ✓ | ✓ | ✓ | ✓ | |||||
| Set permissions in diagram modules | ✓ | ✓ | ✓ | ||||||
| Interfaces | View interfaces | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |
| Add, modify, or delete interfaces | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |||
| Set interface permissions | ✓ | ✓ | ✓ | ||||||
| File Manager | View File Manager | ✓ | ✓ | ✓ | ✓ | ✓ | |||
| Add, modify, or delete files in private space | ✓ | ✓ | ✓ | ✓ | ✓ | ||||
| Add, modify, or delete files in Public | ✓ | ✓ | ✓ | ✓ | |||||
| Set permissions on files/folders | ✓ | ✓ | ✓ | ||||||
| View other users' folders in the same company | ✓ | ✓ | ✓ | ||||||
| View folders from other companies | ✓ | ||||||||
| External Links (API endpoints and Interface links) | Create, modify, or delete API endpoints or external links to interfaces | ✓ | ✓ | ✓ | ✓ | ✓ | |||
| Workflow | Manage processes | ✓ | ✓ | ✓ | |||||
| Teams | Add, modify, or delete Teams in the same company | ✓ | ✓ | ✓ | |||||
| Departaments | Add, modify, or delete departments in the same company | ✓ | ✓ | ✓ | |||||
| Users | Add users to the same company | ✓ | |||||||
| Modify users in the same company | ✓ | ✓ | |||||||
| Instances | View company instances | ✓ | ✓ | ✓ | |||||
| Deactivate company instances | ✓ | ✓ | ✓ | ||||||
| Roles | Create, modify, or delete roles | ✓ | |||||||
| Companies | Create companies | ✓ | |||||||
| Modify companies | ✓ | ✓ | |||||||
| General Settings | Modify General Settings | ✓ | ✓ | ||||||
| Scheduled Tasks | Create, modify, or delete scheduled tasks | ✓ | ✓ | ✓ | ✓ | ✓ |
Departments control access to data and resources at an organizational level. They can:

From the Department manager we can:

Teams allow us to group users within a company so they can share applications and files only with other members of that Team.

From the Team manager we can:

In Pyplan, each company defines an isolated environment where its users can work together and share files and applications. From the Company manager we can create new companies and edit existing ones.
When we create a new company we must define:

In addition, to activate a new company we must assign a Pyplan license. The license determines:

We can manage company‑level preferences by selecting a company and then clicking the Preferences button.

The preferences page lists all configurable options. Each preference is stored as a JSON value, and most of them have a predefined default.

To enable Single Sign‑On (SSO) with SAML, we must add a specific JSON configuration as a preference called SAML Configuration.

The structure of this JSON is:
{
"groups": ["Name of Group"],
"definition": {
"service": {
"sp": {
"idp": {
...
},
"single_sign_on_service": {
...
}
}
},
"name": "Company name",
"endpoints": {
...
},
"force_authn": boolean,
"name_id_format": [
...
],
"allow_unsolicited": boolean,
"required_attributes": ["requiredAttr"],
"want_response_signed": boolean,
"name_id_policy_format": "string",
"want_assertions_signed": boolean,
"name_id_format_allow_create": boolean
}
},
"entityid": "string",
"metadata": {
...
},
...
},
"departments": ["departmentCode"],
"main_department": "string"
}
departments; otherwise it will not be applied.If we need to define default roles and departments based on values coming from Active Directory, we can add another preference called Role Mapping with a JSON like:

In this case, another JSON with the following structure is added:
{
"role": {
"ManagerFromActiveDirectory": "Administrator",
"CustomUserActiveDirectory": "Creator"
},
"department": {
"SalesActiveDirectory": ["pyplan-default", "guest"],
"InvitedActiveDirectory": "guest"
}
}
In Pyplan, we can manage access permissions to specific items—such as folders, modules, and interfaces—per department.
This allows, for example, departments like Accounting and Human Resources (HR) to have different visibility and access within the same application.
For each department we can either allow or deny access to selected items:
Pyplan automatically resolves conflicts:
Examples:
For each department we can manage access to:
From the Interface Manager we can:

The dialog lets us choose between:
Only one of these modes can be active at a time. If the interface already had permissions configured, the new settings will override the previous ones.


After we apply the change:
In the File Manager, the process is similar, with one difference: we can restrict only one folder at a time.

The dialog lets us choose between:

Example: we configure the folder for application “Public App 1” so that only users whose department is Accounting can see it:
To restrict access to diagram modules:

The dialog lets us choose between:

In the illustrated case, access to two modules is denied for the Accounting department. When Accounting users open the diagram, those modules are hidden and cannot be accessed or edited.