Assets
Admin → Assets (/admin/assets) is the org’s equipment library. It
tracks every non-person thing a mission might use — vehicles, radios,
bodycams, drone batteries, beacons, ground-control stations — and links
them to missions so the after-action report can show what gear was in the
field and a maintenance log can accrue over time.
Requires admin or superadmin.
The stats row
Across the top: Total, Users (member-assets are stored in the same collection), Drones, and Devices. The counters are live and drop to zero until an org is selected.
Asset types
The Type column (also the filter):
pilot,operative,admin,spectator— person-like, map to anOrgMember.drone— SN, model, firmware, battery count, GPS source.car— plate, make/model, fuel, GPS source.dog— K9: handler, last vet check, tracker MAC.gcs— Ground Station: pairing code, linked drone SNs.beacon— MAC / UUID, battery %, last heartbeat.home,homepad— fixed lat/lng/radius.
List columns
| Column | Source |
|---|---|
| Name | Asset.name |
| Type | Asset.type |
| Serial / ID | Asset.serial |
| Photo | Asset.photoUrl (thumbnail) |
| GPS source | Asset.gpsSource (device, phone, beacon, static, none) |
| Colour | Asset.color (map tint) |
| Last used | derived from mission history |
| Status | active, maintenance, retired |
A search box filters by name or serial; a type dropdown filters by category. Toggle table vs cards view with the icon group.
Creating / editing an asset
There is no “new” button on the toolbar — create an asset from the inline + row at the bottom of the table, or from a member’s profile in Users. Click an asset to open the edit panel. Fields:
- Name (required) — human-readable, e.g.
Matrice-30T #2. - Type — dropdown (see above).
- Serial — manufacturer serial or org-issued ID. Unique within the org.
- Colour — colour picker; 8-digit hex. Drives the map badge tint.
- Photo — drag-drop into the drop-zone. Stored under the S3
assets/{assetId}/prefix. - Documents — upload manuals, calibration certificates, receipts. Multiple PDFs per asset.
- GPS source — where to pull position from.
devicepulls from the asset’s own telemetry stream,phonebinds to the operator’s phone GPS,beaconuses a BLE beacon,staticpins the asset to a fixed point,noneomits the asset from the map entirely. - Maintenance schedule — free-form cadence (“every 40 flight hours”) plus a Next due date. Assets past due get a red badge on the list.
Save writes to /organizations/{orgId}/assets/{assetId}.
Linking to missions
Assets can be attached to a mission at create time (“Include assets” multi-select) or mid-mission via the Assets tile. Attached assets appear on the map if they have a GPS source, and end up on the mission report’s equipment list.
A single asset can be attached to only one active mission at a time. The list here shows the active-mission pill next to in-use assets so you know they are already in the field.
Maintenance log
Open an asset and scroll to the Maintenance log section. Every entry is:
- Date — when work was performed.
- Kind —
inspection,repair,calibration,battery_swap,firmware,retired,other. - Technician — free text or pick an org member.
- Notes — markdown.
- Receipt — optional PDF upload.
Entries are append-only; you cannot edit or delete past maintenance rows once saved (audit-preserving). Add a correction row instead.
Retiring an asset
Use the Retire button rather than delete. Retiring:
- Sets
status = 'retired'and adds aretiredOntimestamp. - Unlinks the asset from any active missions (with a toast warning).
- Keeps the full history queryable for reporting.
Genuine deletion (via the trash icon, popover-confirmed) is available only
to superadmin and is logged as admin.asset.deleted.