ProjectRole (Semantic Module)
The ProjectRole semantic module is applied to the role property attached directly to the ProjectMembers relationship edge, representing member roles within a project or workspace (e.g. owner, admin, maintainer, contributor, viewer).
Technical Specifications
Section titled “Technical Specifications”| Attribute | Specification |
|---|---|
| Scope | Property (Applied to a relationship edge attribute) |
| Data Type | String (configured with an enum list of allowed roles) |
| Has Configuration | No |
Design Guidelines & Validation Rules
Section titled “Design Guidelines & Validation Rules”To build a valid project role property, the platform enforces the following compile-time rules:
- Enum Requirement: The property annotated with
ProjectRoledefines an enum of allowed roles (e.g.['owner', 'admin', 'maintainer', 'contributor', 'viewer']). - Relationship Edge Scope: The property must be attached directly to the
ProjectMembersrelationship edge.
Configuring in the Domain Modeler
Section titled “Configuring in the Domain Modeler”To define project roles in the user interface:
- Open the Domain Modeler and select the relationship tagged with
ProjectMembers. - Under the relationship edge properties panel, locate the
roleproperty (tagged withProjectRole). - Enable the property for your API and customize the allowed Enum role options (e.g.,
owner,admin,maintainer,contributor,viewer). - Save your changes.
Runtime Behavior
Section titled “Runtime Behavior”When evaluating project-level access using the Match Project Role access rule (e.g. enforcing roles: ['maintainer', 'admin']), the Serverless Engine inspects this edge property on the link table to verify whether the authenticated member holds one of the required roles for the requested API action.