Documentation / MeshComposer

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

1

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
2

Create a Composer Rule

Navigate to MeshComposer in the Admin UI sidebar and click New Rule.

  1. 1. Enter a Name (e.g., "Sales Department Members") and optional Description
  2. 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 displayName attribute

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
3

Configure Criteria

Build the criteria tree that determines group membership.

  1. 1. Select the Source Object Type (e.g., user) — this populates the attribute dropdown
  2. 2. Click + Condition to add an attribute filter
  3. 3. Select the Attribute, Operator, and enter a Value
  4. 4. Click + Group to add nested AND/OR logic for complex queries
  5. 5. Toggle the AND/OR button on any group to switch its logical operator
Example: All users in Sales department
AND
  ├── department  equals  "Sales"
  └── objectType  equals  "user"
Example: Active users in Sales OR Marketing
AND
  ├── accountEnabled  is true
  └── OR
        ├── department  equals  "Sales"
        └── department  equals  "Marketing"
4

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.

5

Save the Rule

Click Save. The rule and its criteria tree are persisted together. Toggle the Enabled switch to activate it.

6

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.

7

Evaluate

Click the Evaluate button (play icon) on the rule row.

The engine performs the following steps:

  1. 1. Finds or creates the target group mesh object (Create mode only)
  2. 2. Queries all mesh objects matching the source type and criteria tree
  3. 3. Adds new member_of relationships for newly matching objects
  4. 4. Removes relationships for objects that no longer match
  5. 5. Queues the group for export if membership changed

A banner displays the result: members added, removed, and total count.

8

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.