Skip to content

Settings — Assets

The Settings ▸ Assets page is the org-wide inventory of everything your organization owns and assigns. The page composes three tabs: Hardware (full CRUD + assignment), Software (placeholder for the seat-license tracker that ships in a follow-up), and Digital Assets (the same library exposed read-only to members at Account ▸ Digital Assets, here in admin-write mode).

Settings Assets — Acme Financial Group demo tenant

Standard PageHeader with the title Assets and a one-line description.

Three tabs:

TabComponentStatus
HardwareHardwareInventoryLive
SoftwareEmptyState placeholderComing soon
Digital AssetsDigitalAssets (admin-write mode)Live

The active tab is URL-reflected as ?tab=hardware, ?tab=software, or ?tab=digital. Deep-links work; the legacy /settings/digital-assets route redirects to ?tab=digital.

The HardwareInventory component renders:

  • A header with + Add hardware action
  • A filterable table with columns: name, type, serial, status, assigned to, purchase date, warranty expiry, price (Owner only), notes
  • Per-row actions: edit, reassign, retire

Hardware records flow into Account ▸ Profile ▸ Assets for the assigned user, where they appear read-only.

Placeholder until the seat-license tracker lands. Current copy:

Software subscriptions — coming soon. Centralized license/seat tracking for software subscriptions, with per-team-member assignment from the available pool, lands in a follow-up release.

The DigitalAssets component runs in admin-write mode here:

  • Upload via drag-and-drop or file picker
  • Per-asset metadata: display name, label, category
  • Replace + version history
  • Get CDN URL (the same one members copy from Account ▸ Digital Assets)
  • Delete (purges the file from object storage)

The legacy /settings/digital-assets redirects to /settings/assets?tab=digital. Any external link or bookmark on the old URL lands here automatically. The redirect is handled by a React Router <Navigate> element in routes/index.tsx.

RoleViewManage
Owner / Admin
MemberIndirect (sees own hardware + digital library)
ViewerIndirect

The whole /settings/* tree is admin-only via RoleGuard.

ActionEvent
Add hardwarehardware.created
Update hardwarehardware.updated
Reassignhardware.reassigned (with old + new user IDs)
Retirehardware.retired
Upload digital assetdigital_asset.created
Update / replacedigital_asset.updated
Deletedigital_asset.deleted

Events surface in Settings ▸ Audit Log.

SymptomMost likely causeFix
Cannot reassign hardwareStatus is In repairUpdate status to Active first
Software tab placeholderFeature not yet shippedWait for release
Digital asset preview brokenWrong MIME on uploadRe-upload with correct extension
Member can’t see assignmentHardware not actually assignedConfirm assignment in Hardware tab
Deep-link to ?tab=digital opens HardwareTab param invalid or strippedVerify URL preserved the query string