Assets Reference Public

Asset Groups

Catalog & Setup Asset Groups An asset group is a named, free-form bundle of asset entries — a workstation kit, everything in Conference Room B, the field team's loaner pool…

Guide version: r1 Module version: 1.0.0 Updated: 2026-07-22 Estimated time: 7 min 2 views
Catalog & Setup

Asset Groups

An asset group is a named, free-form bundle of asset entries — a workstation kit, everything in Conference Room B, the field team's loaner pool. Groups don't drive any lifecycle behavior; they are a tagging and bundling layer you use to keep related assets together, pin them to a location, and slap colored labels on the bundle.

ℹ️
Where this screen lives. Groups is the "Groups" tab of the Categories page — open Safekeep → Categories (ams/categories) and click the Groups tab in its tab strip (Categories / Groups / Status Labels). The tab only appears if you hold the asset_groups permission; the tab body is loaded via AJAX from ams/asset_groups. There is no separate sidebar item for groups.

What groups are for

A group is deliberately simple. It stores:

SysID
An auto-generated UUID assigned when the group is created. You never type it; it identifies the group across the system and is the first visible column of the list.
Title & Description
The human name of the bundle and free rich-text notes.
Asset Entries
The member assets — any assets from the registry, picked freely. Membership lives on the group, not on the asset: the group row stores a comma-separated list of asset entry IDs. One asset can belong to any number of groups.
Location
An optional pin to one of your asset Locations (the same hierarchical location tree assets use).
Labels
Optional colored tags from the shared label system, scoped to asset groups (see Group labels below).
????
Groups vs. Categories vs. Locations. A Category is an asset's single classification (it drives custom fields); a Location is where the asset physically sits; a Group is an arbitrary many-to-many collection with no side effects. Use groups when the bundle itself is the thing you care about — "Onboarding kit v2", "Server rack 3 contents" — rather than a property of each asset.

The Groups list

The tab shows a searchable DataTable of every group, newest first, with a table refresh button (no export button on this list). Two header buttons sit top-right, each shown only with its permission:

  • "Manage labels" (tags icon) — needs asset_groups_manage_labels; opens the shared label-management modal for the asset_groups label type.
  • "Add Group" (plus-circle icon) — needs asset_groups_create; opens the add/edit modal.

List columns

ColumnWhat it shows
SysIDThe group's auto-generated UUID.
TitleThe group's name.
DescriptionThe notes, or - when blank.
Asset EntriesA gray chip with a cubes icon and the member count. The chip is clickable — it opens the member-assets modal (below).
LocationThe full hierarchical location name (Parent > Child > …).
LabelsThe group's labels as colored chips.
Date createdCreation date/time.
Created byThe creating user's name (plain text).
Last UpdatedLast save date/time.
Options (bars icon)Pencil = edit (needs asset_groups_update); × = delete with a confirmation prompt (needs asset_groups_delete).
⚠️
Two cosmetic quirks to know about. First, the member-count chip counts the stored comma-separated list, so a group with no members still shows 1 — click the chip to see the real membership. Second, the edit pencil's hover tooltip mistakenly reads "Edit category" (a reused label); it still edits the group.

Adding & editing a group

????
Purpose: create or update a named bundle of assets.
Who: anyone with asset_groups_create (add) or asset_groups_update (edit).
Preconditions: the Assets module is enabled and the assets you want to bundle already exist in the registry.
  1. Open the form

    On the Groups tab, click "Add Group" — or the pencil on an existing row to edit it. The modal posts to ams/asset_groups/save.

  2. Fill in the fields

    Only Title is required (enforced client-side and server-side; leaving it blank shows "This field is required."). Everything else is optional — see the field table below.

  3. Pick the member assets

    The "Asset Entries" multi-select (placeholder "Select Asset Entries") lists every asset entry in the registry, rendered as Title | Category name. Pick as many as you like; the selection is saved as the group's membership list.

  4. Save

    Click "Save". The row appears/updates in the table and you get the toast "The record has been saved." On first save the system generates the group's SysID (UUID) automatically.

Form fields

FieldTypeRequiredNotes
TitleTextYes Autofocused. Required both client-side and server-side.
DescriptionRich-text textareaNo Free notes about the bundle.
Asset EntriesSelect2 multi-selectNo Placeholder "Select Asset Entries". Options are all asset entries as Title | Category; saved as a comma-separated ID list on the group.
LocationSelect2 dropdownNo Your asset Locations tree.
LabelsSelect2 multi-selectNo Only rendered if you hold asset_groups_manage_labels — without it the field is absent and any labels you post are ignored on save. Suggestions come from the saved asset-group labels.

Viewing a group's member assets

Click the member-count chip in the Asset Entries column. A modal opens titled "Asset Entries: {group title}" containing a small read-only DataTable of the group's members, with two visible columns:

ColumnShows
TitleThe asset entry's title.
CategoryThe asset's category name.

The modal is strictly read-only: no row actions, no links into the asset detail page, no column show/hide — just a table refresh button. To act on a member asset, find it on the Browse tab. To change membership, edit the group itself.

Group labels

Groups plug into ERPat's shared label system with their own label type (asset_groups), gated by one dedicated permission:

  • asset_groups_manage_labels ("Asset Groups: Manage Labels") controls both the "Manage labels" header button (create/edit the label catalog — name and color) and the Labels field on the group form (apply labels to a group).
  • Users without it still see labels as colored chips in the list's Labels column — they just can't define or assign them.

Labels are cosmetic tags for scanning and searching the list (e.g. Deployed kit Awaiting audit); they have no lifecycle effect.

Where groups appear (and where they don't)

Group membership is one-directional — it is stored and shown on the group, never on the asset:

  • The asset add/edit form has no Groups field — you cannot assign an asset to a group from the asset side.
  • The asset registry (Browse tab) has no Groups column or filter, and the asset detail page does not list the groups an asset belongs to.
  • The only trace of groups on the Assets page is the Groups tab itself. To answer "which groups is this laptop in?", you have to check the groups' member lists.

Permissions

Unlike Models, Status Labels, and the other single-permission catalog screens, Groups has a full permission family (Roles category "Safekeep: Groups"):

PermissionLabelGrants
asset_groups"Assets: Groups" See the Groups tab and the list (base — required for everything else here).
asset_groups_create"Create Group" The "Add Group" button.
asset_groups_update"Update Group" The row edit (pencil) action.
asset_groups_delete"Delete Group" The row delete (×) action.
asset_groups_manage_labels"Asset Groups: Manage Labels" The "Manage labels" button and the Labels field on the group form.

See Permissions & Roles for the module-wide RBAC table and suggested role presets.

Deleting a group

Delete (the × icon, after a confirmation prompt) is an unconditional soft delete — there are no in-use protections anywhere in the catalog area. Deleting a group never touches its member assets: membership lives on the group row itself, so the assets simply stop being bundled. On success you get the toast "The record has been deleted."

????
No undo from the UI. Nothing warns you that a group is referenced by a report or a process, because nothing is — but there is also no restore button. If you delete the wrong group, you'll need to re-create it (its SysID will be a new UUID).

Related pages

Was this guide helpful?

Report a content problem