Skip to content

Blueprint Assignment

kandji-trent edited this page Jun 23, 2026 · 2 revisions

Blueprint Assignment (Preview)

Important

Blueprint assignment is a preview feature and may change. It is only applied when preview mode is turned on (see Configuration). Otherwise, ensure_blueprints declarations are ignored and iructl prints a warning.

Warning

ensure_blueprints is additive only. Deleting an entry will not unassign the resource from the Blueprint.

Any resource (a profile, script, or app) can declare the Blueprints it should be assigned to by adding an ensure_blueprints list to its info file. On push and sync (with preview mode turned on), iructl assigns the resource to each declared Blueprint. iructl does not create or manage Blueprints, so the names and UUIDs you declare must already exist in your Iru tenant.

Declaring blueprints

Each entry has a blueprint and an optional node:

Field Required Description
blueprint Yes The name or UUID of the Blueprint to assign to. Names are matched case-insensitively and resolved to a UUID at push time. An unresolvable name is reported as a failed assignment.
node No The UUID of an Assignment Map node to assign at. Omit node to assign at the Blueprint's root node.
ensure_blueprints:
  - blueprint: 550e8400-e29b-41d4-a716-446655440000
    node: 660e8400-e29b-41d4-a716-446655440000
  - blueprint: Production Macs   # a Blueprint name, assigned at the root node

Tip

An entry that only needs the Blueprint name or UUID (a root-node assignment) can be written as a bare string; iructl expands it to { blueprint: <name-or-uuid> }.

ensure_blueprints:
  - Production Macs
  - 550e8400-e29b-41d4-a716-446655440000

When assignment runs

Assignment runs on every push and sync, including when a resource's content is unchanged. Use --dry-run (with preview mode on) to list the assignments a run would attempt without applying them.

Reading the assignment report

After a push or sync, iructl prints a Blueprint assignments section: an Assignment Summary of newly assigned and failed pairs, and a Skipped Assignment Summary of pairs that were already assigned. A node shown as - means the assignment was added to the Blueprint's root node.

Blueprint assignments

  Assignment Summary

  Library Item   Blueprint         Node                                   Status     Detail
 ─────────────────────────────────────────────────────────────────────────────────────────────────
  Wi-Fi          Production Macs   -                                      assigned
  FileVault      Engineering       660e8400-e29b-41d4-a716-446655440000   failed     [404] Node not found

Troubleshooting

Symptom Cause What to do
Unable to get ID for blueprint '<name>' The Blueprint name doesn't exist in your tenant, or is misspelled. Confirm the name in the Iru web app. Names match case-insensitively but must otherwise be exact.
[404] Node not found The node UUID isn't a valid Assignment Map node for that Blueprint. Copy the node UUID from the Iru web app, or omit node to assign at the root.
Network or timeout errors iructl couldn't reach the API to resolve a name or perform the assignment. Re-run the command. The pair is recorded as failed but the rest of the run continues.

Clone this wiki locally