MeshComposer
Dynamically compose groups from mesh objects using rule-based criteria. Define membership rules, preview matches, and evaluate to build or populate groups automatically.
Key Concepts
Composer Rule
A named unit of composition. Each rule queries mesh objects of a specific type against a criteria tree and manages membership in a target group.
Create vs Populate Mode
Create builds a new mesh object to act as the group. Populate adds members to an existing mesh object.
Criteria Tree
A tree of AND/OR groups containing attribute conditions. Supports operators like equals, contains, starts with, ends with, is present, is not present, is true, and is false.
Evaluate
Executes the rule: matches source objects against criteria, adds new members, removes stale ones, and queues the group for export to connected systems.
Publish Targets
Optional connector overrides. When set, evaluation queues export entries for specific connectors. If empty, the group flows through standard projection rules.
Relationship Tracking
Member relationships are tagged with MeshComposer:{ruleId}
for full traceability and clean removal.
How To: Create a Composed Group
Prerequisites
Before creating composer rules, ensure you have registered the relevant object types and attribute schemas.
- Source object type registered (e.g.,
user) — this determines which mesh objects the criteria query against - Target object type registered for Create mode (e.g.,
group) - Mesh objects imported from at least one connector so there are objects to match against
Create a Composer Rule
Navigate to MeshComposer in the Admin UI sidebar and click New Rule.
- 1. Enter a Name (e.g., "Sales Department Members") and optional Description
- 2. Choose Mode:
Create New Group
The composer creates and owns the group mesh object. It is created automatically on first evaluation.
- Target Object Type — the type for the new group (e.g.,
group) - Target Anchor Value — unique identifier (e.g.,
composed-sales-team) - Display Name — stored as the
displayNameattribute
Populate Existing Group
Add members to a group that already exists as a mesh object (e.g., imported from a connector).
- Target Object Type — optionally filter the object search
- Target Mesh Object — use the typeahead to search by anchor value or display name
Configure Criteria
Build the criteria tree that determines group membership.
- 1. Select the Source Object Type (e.g.,
user) — this populates the attribute dropdown - 2. Click + Condition to add an attribute filter
- 3. Select the Attribute, Operator, and enter a Value
- 4. Click + Group to add nested AND/OR logic for complex queries
- 5. Toggle the AND/OR button on any group to switch its logical operator
AND ├── department equals "Sales" └── objectType equals "user"
AND
├── accountEnabled is true
└── OR
├── department equals "Sales"
└── department equals "Marketing" Preview Matches
Before saving, click the Preview button inside the rule editor to see which mesh objects match the current criteria. The preview shows anchor value, object type, and key attributes. Results can be exported to CSV for review.
Save the Rule
Click Save. The rule and its criteria tree are persisted together. Toggle the Enabled switch to activate it.
Configure Publish Targets (Optional)
After saving, click the Targets button (share icon) on the rule row. Add connectors that should receive the composed group on export. If no publish targets are configured, the group follows standard projection and export rules.
Evaluate
Click the Evaluate button (play icon) on the rule row.
The engine performs the following steps:
- 1. Finds or creates the target group mesh object (Create mode only)
- 2. Queries all mesh objects matching the source type and criteria tree
- 3. Adds new
member_ofrelationships for newly matching objects - 4. Removes relationships for objects that no longer match
- 5. Queues the group for export if membership changed
A banner displays the result: members added, removed, and total count.
Verify
- Click Preview (magnifier icon) on the rule row to see the current membership list
- Navigate to Mesh Objects and search for the group to view its attributes and relationships
- Check the Export Queue to confirm the group was queued for export to target connectors
Editing and Deleting Rules
Edit
Click the Edit button (pencil icon) on the rule row. The modal opens with all fields and the criteria tree pre-populated. Modify as needed and click Save.
Delete
Click the Delete button (X icon) and confirm. Deletion removes:
- All composer-managed member relationships
- The target mesh object and its attributes (Create mode only)
- All criteria groups, criteria, and publish targets
Populate-mode rules do not delete the target mesh object since it was not created by the composer.
Supported Criteria Operators
| Operator | Description | Requires Value |
|---|---|---|
equals | Exact match | Yes |
contains | Substring match | Yes |
startswith | Starts with value | Yes |
endswith | Ends with value | Yes |
ispresent | Attribute exists and has a value | No |
isnotpresent | Attribute is missing or empty | No |
istrue | Boolean attribute is true | No |
isfalse | Boolean attribute is false | No |
API Reference
Rules
| Method | Path | Description |
|---|---|---|
GET | /api/composer/rules | List all rules with member counts |
POST | /api/composer/rules | Create a new rule |
GET | /api/composer/rules/{id} | Get rule by ID |
PUT | /api/composer/rules/{id} | Update rule |
DELETE | /api/composer/rules/{id} | Delete rule and associated mesh object |
POST | /api/composer/rules/{id}/enable | Enable rule |
POST | /api/composer/rules/{id}/disable | Disable rule |
Criteria
| Method | Path | Description |
|---|---|---|
GET | /api/composer/rules/{id}/criteria | Get criteria tree |
PUT | /api/composer/rules/{id}/criteria | Save criteria tree |
Publish Targets
| Method | Path | Description |
|---|---|---|
GET | /api/composer/rules/{id}/targets | List publish targets |
POST | /api/composer/rules/{id}/targets | Add publish target |
DELETE | /api/composer/targets/{targetId} | Remove publish target |
Preview & Evaluate
| Method | Path | Description |
|---|---|---|
POST | /api/composer/rules/{id}/preview | Preview matching members (paginated) |
POST | /api/composer/preview-criteria | Ad-hoc criteria preview (no saved rule needed) |
POST | /api/composer/rules/{id}/evaluate | Evaluate rule and update memberships |
Required Permissions
| Permission | Required For |
|---|---|
composer.read | Viewing rules, criteria, targets, previews |
composer.write | Creating, editing, deleting rules, criteria, targets |
composer.execute | Evaluating rules |
Need Help?
Our team can help you design composer rules for your organization's group management needs.