Permissions & Access Control
Permissions & Access Control
Permissions & Access Control
Our platform utilizes a “Layered Security” model. This allows you to give broad access to your employees while strictly limiting external partners (like Truck Brokers or Clients) to only the data they need.
The system evaluates access in three sequential steps:
- The Base Role: What can they do by default?
- Permission Overrides: Are there specific exceptions for this person?
- Resource Scopes: Where are they allowed to do it?
1. Global Roles (RBAC)
Every member is assigned a Role. This is the widest “bucket” of permissions.
2. Permission Overrides
Overrides allow you to fine-tune a user’s access without changing their global role. This is useful for “Senior Members” who need one or two Admin-level powers.
There are two types of effects:
- Allow: Explicitly grants a permission (e.g., Allowing a Member to
inventory.delete). - Deny: Explicitly blocks a permission, even if their role usually allows it.
How to Apply an Override
- Go to Settings > Permissions.
- Select a member from the list.
- Toggle the specific permission key (e.g.,
packing_lists.revert). - Click Save Overrides.
3. Resource Scopes (The “Silo” Layer)
Scoping is the most critical feature for security. It restricts a user’s visibility to specific “silos” of data.
By default, if a user has no scopes, they can see everything in your organization. As soon as you add one scope, the user enters “Restricted Mode” and can only see the resources you explicitly grant.
Supported Scopes
- Project Scope: Limit a user to a specific solar farm project.
- Client Scope: Limit a user to a specific client’s inventory.
- Location Scope: Limit a user to a specific warehouse or port.
Important: Scopes are additive. If you scope a user to Project A and Project B, they will see data for both, but nothing for Project C.
Permission Evaluation Logic
If you are troubleshooting why a user can’t see a specific item, the system follows this logic:
- Check Role: Does the user’s role have the permission?
- Check Overrides: Is there a “Deny” override? (Deny always wins). If not, is there an “Allow” override?
- Check Scope: Is the resource (Project/Location) within the user’s assigned scopes?
Common Configuration Scenarios
The “External Auditor”
- Role: Member
- Override: Set all
*.readpermissions to Allow and all*.create/updateto Deny. - Scope: None (allows them to audit the whole org).
The “On-Site Coordinator”
- Role: Member
- Scope: Only the specific Location (e.g., “Houston Port”) and Project (e.g., “Golden Dune Solar”) they are managing.
- Result: they won’t see any other warehouses or unrelated projects in their dashboard.
The “Truck Broker”
- Role: Truck Broker
- Scope: Automatically scoped to their own brokerage’s movements. No manual scoping required.