Access Policy Configuration Guide
This guide explains how to configure and use Access Policy effectively for end users and tenant administrators.
What Access Policy Does
Access Policy is an additional access gate for a Type. It does not replace existing access grants.
Access to an instance is allowed only when both checks succeed:
- Baseline access check passes.
- Access Policy rule (if configured) evaluates to true.
If baseline access fails, Access Policy is not evaluated.
Access Evaluation Flow
The system evaluates access in this order:
- Primary Access Check
- Default everyone access
- Explicit user or role access
- Admin bypass
- Access Policy Rule Evaluation
- Evaluates configured rule expression for the selected Access Policy rule
- Uses instance attributes and user profile attributes in condition logic
- Final Decision
- Allow only if both primary access and policy checks pass
- Deny if policy check fails
Configuration Model
Access Policy is configured by selecting a single rule in the Type Access section.
A rule typically contains:
- Rule Groups combined with AND/OR operators
- Conditions within each group
- Optional Error Message expression returned on denial
Setup Steps in Admin App
How to create Rule
- Login to Admin App.
- Go to
Schema > Rules. - Click
Create Rule. - Enter Rule Name.
- Add
Error Messageexpression (recommended). - Configure Attribute Filter Groups.
- Configure Attribute Filter Conditions in each group.
- Click
Save.
Add rule into Type
- Go to
Admin App > Schema > Type. - Open the target Type.
- Open the
Accesstab. - In
Access Policydropdown, select the Rule. - Click
Save.
Quick Validation After Save
- Test with one user who should have access.
- Test with one user who should be denied.
- Verify the denial message is clear and actionable.
Where to Use Access Policy
Use Access Policy when you want context-aware control over who can interact with a specific instance.
1. Control who can view an instance
Use case:
- A user can view an instance only when instance data matches the user profile.
Examples:
- Instance Region equals User Region
- Instance Department equals User Department
- Instance Creator equals Context User
2. Control who can edit or update an instance
Use case:
- Users can update only the instances that belong to their scope (for example same branch, business unit, or account ownership).
Recommended approach:
- Use Access Policy to allow access only to in-scope instances.
- Combine with role or state/action permissions so only authorized users can perform edit/update actions.
3. Control who can delete an instance
Use case:
- Deletion should be limited to instance owners or privileged users in a matching organizational scope.
Recommended approach:
- Use Access Policy to narrow eligible instances.
- Combine with delete permission controls (role/state/action level) to enforce who can actually delete.
4. Enforce owner-only or manager-only operations
Use case:
- Owners can modify their own records, while managers can modify records only in their managed unit.
Examples:
- Owner rule: Instance Creator equals Context User
- Manager scope rule: Instance BusinessUnit equals User ManagedBusinessUnit
5. Protect sensitive instances
Use case:
- Sensitive records should be visible and editable only when user clearance/role attributes match instance sensitivity attributes.
Examples:
- Instance SensitivityLevel in User AllowedSensitivityLevels
- Instance Country equals User AllowedCountry
Rule Group Logic
Use logical operators carefully:
- AND within a group: all conditions in that group must evaluate to true.
- OR within a group: at least one condition in that group must evaluate to true.
- AND between groups: every group must evaluate to true.
- OR between groups: at least one group must evaluate to true.
Condition Elements
Each condition includes:
- Attribute Context: Instance, User, or User Roles
- Attribute Name: The field to evaluate (Hidden for User Roles context)
- Condition Operator: For example Equals, In, Is Empty, Between
- First Value / Second Value: Static or dynamic input values (depending on condition). For User Roles, this is a selection of available system roles.
Dynamic Value Support and Limitations
Supported
- Dynamic value resolution supports User Profile attributes.
- Static values are supported for all relevant conditions.
Not Supported
- Dynamic values that reference Instance attributes are not supported for first/second value resolution.
- Invalid type attribute names and invalid user profile attribute names do not throw a hard UI error at runtime evaluation; the condition evaluates to false.
Practical Outcome
Any invalid reference or unsupported dynamic format in a condition can silently make the condition false. This can deny access unexpectedly when groups are combined with AND.
Error Message Behavior on Denial
When access is denied by Access Policy:
- If a rule error-message expression is configured: expression is evaluated and returned in the access denied response.
- If not configured: the platform default access denied message is returned.
Use concise and user-friendly denial messages so users can understand what to check next.
Example Patterns
1. Instance Creator Only
Goal: Users can access only instances they created.
Image details:
- Attribute Context:
Instance - Attribute Name:
Creator - Condition:
context user - Purpose: only the user who created the record can access it.
Pattern:
- Context: Instance
- Attribute: Creator
- Condition: Context User
2. Regional Isolation
Goal: Users access instances only from their own region/country.
Image details:
- Attribute Context:
Instance - Attribute Name:
Country - Condition:
equals - Dynamic Value Enabled:
true - First Value:
@User.Country - Purpose: users can access records only from their own country/region.
Pattern:
- Context: Instance
- Attribute: Region/Country
- Condition: Equals
- First Value: Dynamic user profile attribute such as user country
3. Device-Type Scoped Access
Goal: Users access member-device records only for authorized device types.
Image details:
- Attribute Context:
Instance - Attribute Name:
MemberDeviceType - Condition:
in - Dynamic Value Enabled:
true - First Value:
@User.DeviceType - Purpose: users can access only devices matching their authorized device types.
Pattern:
- Context: Instance
- Attribute: Device Type
- Condition: In / Equals
- Value source: User profile authorization values
Known Limitations
- Access Policy is evaluated only after baseline access; it cannot grant access by itself.
- Unsupported dynamic value references can lead to false conditions.
- Incorrect attribute naming in condition configuration can produce consistent denial due to false evaluation.
- Highly complex nested logic is harder to validate and maintain; use smaller logical groups.
Troubleshooting Checklist
If users are unexpectedly denied access:
- Verify baseline access first (default everyone, role, or direct user access).
- Confirm the correct Access Policy rule is selected for the Type.
- Validate all attribute names used in conditions.
- Verify dynamic value references point to valid user profile attributes.
- Test each group independently before combining with AND.
- Review whether condition operators match attribute data types.
- Add or refine rule error-message expression to improve diagnosability.
- If images are not visible in docs preview, verify files exist under
AccessPolicy/assetsand restart the docs dev server.
Recommended Rollout Strategy
- Start with a simple rule and test with real user personas.
- Add one condition group at a time.
- Use explicit naming for rules and groups to simplify support.
- Pilot in non-production with representative data.
- Monitor access-denied feedback and adjust rule clarity/messages.
Best Practices
- Keep logic readable and business-focused.
- Prefer explicit user profile attributes for dynamic comparisons.
- Avoid overloading one rule with too many unrelated conditions.
- Document policy intent for each Type so admins can maintain it safely.
- Re-validate policy after schema changes to attributes or user profile fields.