Permission system architecture
The permission system is built on three core concepts that work together to provide flexible and scalable access control:- Permissions - Atomic capabilities that define specific actions or access rights (down to temporally restricted access to individual data fields)
- Roles - Collections of permissions that represent common job functions or access patterns
- Assignments - The binding of roles to users for specific contexts (vehicles, organizations)
Permission categories
The platform organizes permissions into distinct categories that makes permissions easy to understand and manage:User permissions
General permissions that control a user’s access to platform-wide functionality:Vehicle permissions
Permissions that control access to specific vehicle data and functionality:UI user permissions
Permissions that control which user interface elements are visible in web applications:UI vehicle permissions
Permissions that control vehicle-specific UI elements and data presentation:App permissions
Permissions specific to mobile application functionality:Organization permissions
Permissions that control organizational management and administration:Sensor-Level Permissions
Beyond functional permissions, the platform implements granular sensor-level permissions that control access to individual data fields within vehicle status models. This capability is essential for data privacy compliance by restricting access to location or personal data, commercial data protection for proprietary sensor information, role-based data filtering where different users see different data sets, and regulatory compliance for industry-specific data access requirements.Sensor Permission Structure
Sensor permissions are defined by specifying the exact model and field combination:Predefined Roles
The platform includes a comprehensive set of predefined roles that cover common use cases and organizational structures. For user roles, these include:USER_STANDARD
: Standard user role.USER_READ_ONLY
: Read-only user role.USER_MAP_ONLY
: User cannot do anything except for looking at the map. Useful for on-vehicle displays in shared vehicles.
VEHICLE_OWNER
: Owner of the vehicle.VEHICLE_USER
: User of the vehicle - the same as OWNER in terms of access, but without admin rights, such as to add or remove other users.VEHICLE_MAINTAINER
: Person responsible for the maintenance of the vehicle.VEHICLE_MANUFACTURER
: Person responsible for the manufacturing of the vehicle.VEHICLE_MANUFACTURER_UPLOAD
: Person responsible for the manufacturing of the vehicle (can upload data for this vehicle).VEHICLE_READ_ONLY
: Person can only observe the data of the vehicle, but cannot edit anything.VEHICLE_NO_DETAIL_NO_EDIT
: User can not see details of trips nor edit vehicle profile.VEHICLE_ONLY_CURRENT
: User can not see anything except the current position and data.VEHICLE_UPLOAD_DATA
: Vehicle can upload data. Used for API keys.VEHICLE_OWNER_GROUP_FOLLOWER
: Owner of a vehicle, but many functions are disabled to make it clear a vehicle is part of a group (and only the group leader can be used for common tasks, such as notes, documents, etc.).
USER_ORG_STANDARD
: Standard user org access roleUSER_ORG_ADMIN
: Admin user org access roleUSER_ORG_READ_ONLY
: Read-only user org access roleUSER_ORG_SERVICE
: Service user org access roleUSER_ORG_MARKETING
: Marketing user org access roleUSER_ORG_ENGINEER
: Engineer user org access role