Assets Reference Public

Getting Started

Switching the module on, letting the migrations build and seed the catalogue, granting the right people access, touring the nine sidebar entries, and registering your first piece of equipment.

Guide version: r2 Module version: 1.11.0 Updated: 2026-08-25 Estimated time: 10 min 12 views 0% helpful
Introduction

Getting Started

Enable the Assets module, let the migrations build and seed the catalog, grant the right people access, and switch on the reminder crons — then register your first asset and endorse it to a user.

????
Who this is for. This page is for an administrator installing and configuring the module. Day-to-day users (custodians, employees receiving equipment) can skip ahead to Core Concepts & Data Flow once an admin has completed the steps below.

Prerequisites

  • PHP ≥ 8.2 and ERPat core ≥ 1.10.0 — the module manifest requires both.
  • Admin access to Settings → Manage Modules and to the Roles editor.
  • Staff users must exist. Assets can only be checked out (endorsed) to active staff users — not to locations or other assets — so create the people before the hardware. See Checkout & Check-in.
  • A ticking cron runtime if you want the return-due / warranty / audit reminders and the monthly depreciation compute to run — see Switch on the crons below.
  • Manufacturers and Suppliers are shared masters. The module reuses ERPat's core Brands table for manufacturers and the core Vendors table for suppliers — they work out of the box, no separate setup needed (details in Shared masters).
????
Upgrading from the old in-app Assets feature? Nothing is lost. The foundation migration creates the five legacy tables only if they are missing and repairs column drift on existing tenants; it never modifies or deletes existing rows. Old assets simply gain empty lifecycle columns (no status label until you set one, no endorsement history yet).

Activation — three steps

  1. Run the module migrations

    From the project root. The module's migrations are idempotent and reversible, and are tracked in their own migrations_assets table.

    php erpat migrate:modules
    # (or) php erpat migrate:latest
  2. Turn the module on

    Go to Settings → Manage Modules and enable Assets (listed under the Safekeep category — this sets module_assets = 1). A Safekeep group appears in the left sidebar for every user who also holds the asset permission.

  3. Grant permissions (for non-admins)

    In Roles, assign the Safekeep permission categories to the roles that need them. Administrators see everything by default. See Granting access below and the full matrix on Permissions & Roles.


What the migrations create

Three migrations run in sequence:

MigrationWhat it does
Foundation (reconcile legacy tables) Creates the five legacy tables if missing — asset_entries, asset_categories, asset_locations, asset_groups, asset_entry_comments — and repairs drift on older tenants (missing columns, indexes). Never destroys data.
Snipe-IT upgrade Adds nine new tables — asset_status_labels, asset_models, asset_depreciations, asset_custom_fields, asset_fieldsets, asset_fieldset_fields, asset_events (the chain-of-custody activity log), asset_maintenances, asset_accessories — plus the lifecycle columns on asset_entries (asset tag, status, model, endorsement state, audit dates, custom-field values, and more).
Seed Seeds the starter catalog described below. Idempotent — it matches by name/key/slug and never overwrites rows a tenant has already edited.

Seeded status labels (7)

Every asset carries a status label, and every label has one of four deploy types — Deployable Pending Undeployable Archived. The seed migration installs seven ready-made labels:

Status labelDeploy typeSeeded colorNotes
Ready to Deploy Deployable #1d97a6 (brand teal) Default for new assets
Deployed Deployable #5cb85c (green) In active use
Pending Pending #f0ad4e (amber) Awaiting something
In Repair Pending #f0ad4e (amber) Out for repair
Broken Undeployable #d9534f (red) Not usable
Lost / Stolen Undeployable #d9534f (red) Missing
Archived Archived #777777 (grey) Retired, out of circulation
⚠️
The one status rule that matters: an asset whose current label is not Deployable cannot be checked out — the server rejects it with "This asset's status is not deployable, so it cannot be checked out." Changing a status never auto-checks-in or auto-assigns anything; that gate is the only status-driven behavior. Full details on Status Labels.

Seeded categories, fieldsets and custom fields

Six starter categories are seeded, each bound to its own fieldset (named "<Category> fields") so the right "Additional fields" appear on the asset form the moment you pick the category:

CategoryGroupFieldsetPrimary (required) fieldOther seeded fields
LaptopdevicesLaptop fieldsSerial numberBrand / model, Processor, Memory (GB), Storage
PhonedevicesPhone fieldsIMEIBrand / model, Storage, Operating system
MonitordevicesMonitor fieldsSerial numberBrand / model, Size (inches), Resolution
VehiclevehicleVehicle fieldsPlate numberVIN / chassis number, Make / model, Model year, Odometer at handover
Access cardaccessAccess card fieldsCard numberAccess level, Valid until
Employee IDaccessEmployee ID fieldsBadge numberID type, Issued on

Custom fields are deduped globally by their field key, so shared fields like serial_number and brand_model are single rows reused across several fieldsets. See Custom Fields & Fieldsets and Categories.

ℹ️
Not seeded: locations, depreciation profiles, asset models, and assets themselves all start empty — you create those yourself (the first-run checklist below walks through it).

Granting access in Roles

While the module is enabled, four Safekeep permission categories appear in the Roles editor. The base asset permit (labelled "Assets: Entries") is the master key — the whole Safekeep sidebar group and every screen in it require it; everything else layers on top.

Roles-editor categoryParent keyAlso includesUnlocks
Safekeep: Assets asset asset_create, asset_update, asset_delete, asset_manage_labels, asset_comment, delete_asset_comment, asset_checkout, asset_audit, asset_maintenance, asset_import, asset_export Viewing the module plus asset CRUD, labels, comments, the checkout/endorse lifecycle, audits, maintenance, import and export.
Safekeep: Categories asset_category asset_category_create / _update / _delete The Safekeep → SetupCategories page (its Categories tab).
Safekeep: Locations location location_create / _update / _delete The Location tab on the Assets page. (Note the key is plain location — no asset_ prefix.)
Safekeep: Groups asset_groups asset_groups_create / _update / _delete, asset_groups_manage_labels The Groups tab on the Categories page.

The full permission-by-permission matrix, with suggested role presets (IT admin, custodian, auditor, finance, employee), lives on Permissions & Roles.


A tour of the Safekeep sidebar group

With the module enabled and the asset permission granted, the sidebar gains a Safekeep group with nine entries, in the order the work happens: what we own, who has it, what is wrong with it, whether it is really there, what it is worth, what somebody reads about all of that, and the two administrative rooms behind it.

#Menu itemOpensAlso needs
1Overview The command-centre dashboard — headline figures and one ranked queue of everything needing a person. The front door of the group.
2Assets The equipment register, with Models and Locations alongside it.
3Custody Who holds what — active custody, endorsement documents, transfers and returns. asset_custody
4Service Faults, work orders and warranty claims — three tabs, because a fault, its repair and its warranty claim are one conversation.
5Audits Audit campaigns and their findings. asset_audit
6Accounting Books, depreciation periods and disposals. asset_finance_view
7Reports Twenty-three reports in six groups. — (its Finance group needs asset_finance_view)
8Setup The catalogue hub — categories, status labels, models, locations, custom fields, fieldsets, depreciation profiles, and the module's Settings page. — (each tab needs its own permit)
9Data Quality The workbench that scores the register and repairs it in bulk. asset_data_quality
ℹ️
Four entries you may remember are no longer in the sidebar. Categories, Depreciations, Custom Fields and Maintenance used to have their own lines. Their pages have not gone anywhere — the first three are tabs of Setup, maintenance is a tab of Service, and every one of their old addresses still opens the right page. What they lost is a permanent line in a menu you read every day. If you had customised your left menu, those four saved entries will simply have dropped out of it; re-edit or reset the menu to pick up the current shape.

Screens that are tabs rather than menu items

Most of the module is tabbed, and switching tabs never reloads the page — each tab loads the first time you open it, stays loaded afterwards, and the one you left on is remembered for next time.


Configure the module

The module has its own Settings page with nine groups — general, custody, ticketing, maintenance, audits, finance, disposal, notifications and API. Reach it from Safekeep → Settings — it is a page of the module, not of the platform's own Settings screen. It needs the Assets: Settings permission.

Nothing has to be configured before you can use the module: every setting ships with a working default, and the seeded status labels, condition bands and numbering formats are enough to register and hand over equipment on day one. Come back to Settings once you know your own vocabulary and your own thresholds. The full field-by-field reference is on Setup Hub & Settings.

Upgrading from an earlier version? The module used to have a single two-field screen inside core Settings. Those two fields — comment sort order, and who may be @-mentioned — are now in the General group of the module's own page, along with everything else. Every knob that previously had no screen at all, such as the warranty reminder window and the audit cadence, is an ordinary field there today.

Switch on the scheduled jobs

The module ships sixteen scheduled jobs. They are enabled as soon as the module is on, but they only actually fire if your server is ticking ERPat's scheduler:

php erpat cron:list        # confirm the Assets jobs are registered
php erpat cron:tick        # run whatever is due right now
php erpat cron:run compute_asset_depreciation   # force a single job

Between them they prepare the monthly depreciation run, open scheduled audit campaigns, score the register overnight, keep the custody and finance figures honest, and chase people about acceptances, returns, warranties, repairs, audits, estimate reviews and pending data wipes. The full table — each job's timing, what it does and exactly who it notifies — plus the four dashboard widgets and all twenty-six notification events, is on Automation & Reminders.


First-run checklist

????
Purpose: go from a fresh install to your first endorsed asset.
Who: an administrator (or a role holding the Safekeep parents plus asset_create and asset_checkout).
Preconditions: migrations run, module enabled, at least one active staff user.
  1. Enable the module

    Run php erpat migrate:modules, then enable Assets under Settings → Manage Modules. Confirm the Safekeep group appears in your sidebar.

  2. Verify the seeded catalog

    Open Assets → Status Labels tab — you should see the seven seeded labels with Ready to Deploy as the default. Open Custom Fields and its Fieldsets tab — the six seeded fieldsets ("Laptop fields" through "Employee ID fields") should be listed.

  3. Grant roles

    In Roles, give your IT/admin roles the four Safekeep categories. Employees who will receive equipment need at least the base asset permit — every Safekeep screen, including the asset page with its Confirm receipt button, sits behind it. (The cron reminder notifications reach assignees regardless, but without asset they cannot open the asset.) Details: Permissions & Roles.

  4. Shape your categories and models

    On the Assets page, review the Categories tab (rename, nest, or add categories — each can bind a fieldset), then build your hardware catalog under the Models tab. Model defaults (category, manufacturer) auto-fill the asset form. See Asset Models and Categories.

  5. Adjust statuses and supporting masters

    Add any extra status labels your process needs, plus locations and depreciation profiles (none are seeded).

  6. Add your first asset

    Assets → Browse → Add entry. Pick a category to reveal its "Additional fields", give it an Asset Tag, and set the Status to Ready to Deploy. Field-by-field help: Adding & Editing Assets. (Have a Snipe-IT export or a spreadsheet? Use Import instead.)

  7. Check it out

    Open the asset and use Check out asset to endorse it to a staff user with a due date. The assignee then uses Confirm receipt, and every step lands in the asset's Activity chain-of-custody log. Walkthrough: Checkout & Check-in and the end-to-end SOPs.

Next steps

Was this guide helpful?

Report a content problem