> ## Documentation Index
> Fetch the complete documentation index at: https://docs.encoreos.io/llms.txt
> Use this file to discover all available pages before exploring further.

# IT Assets

> Manage the organization's IT asset inventory — browse, filter, view details, assign, log maintenance, and create new assets.

The IT Assets page (`/it/assets`) displays the organizational IT asset inventory. It supports filtering by asset status, asset type, and site, as well as text search and paginated browsing (20 assets per page).

## Overview

The page fetches assets via `useAssets` with `AssetFilters` (search, status array, asset\_type array, site\_id). Filters are applied client-side on state change; the search input applies on Enter or button click. A guided tour is accessible via the Help button. Clicking **Add Asset** navigates to `/it/assets/new`.

## Who it's for

No explicit secondary permission gate — access is controlled by the outer `ITViewGuard` (`it.view`). Creating assets requires `it.assets.create`.

## Before you start

* Confirm you have the IT module permission (`it.view`).
* Assets are scoped to your organization; cross-organization data is not accessible.

## Steps

<Steps>
  <Step title="Open the asset inventory">
    Navigate to `/it/assets`. The table loads the first 20 assets in your organization.
  </Step>

  <Step title="Filter assets">
    Use the search box (name, tag, or serial number), the Status dropdown, the Type dropdown, or the Site dropdown to narrow results. Click Clear to reset all filters.
  </Step>

  <Step title="Navigate pages">
    Use the Previous/Next buttons at the bottom when the total count exceeds 20. The pager shows the range currently displayed.
  </Step>

  <Step title="Open an asset record">
    Click an asset row to navigate to `/it/assets/:id` for full details.
  </Step>

  <Step title="Add a new asset">
    Click **Add Asset** to navigate to `/it/assets/new`. The creation flow uses a wizard (standard or configurable mode depending on your organization's IT wizard configuration).
  </Step>
</Steps>

## Key concepts

| Concept          | Description                                                                                 |
| ---------------- | ------------------------------------------------------------------------------------------- |
| `ASSET_STATUSES` | Enumeration of valid asset status values (e.g., active, assigned, maintenance, retired)     |
| `ASSET_TYPES`    | Enumeration of asset type values (e.g., desktop, laptop, phone, server, network\_equipment) |
| Wizard mode      | Asset creation supports a configurable wizard mode controlled by `useWizardMode('it')`      |

## Viewing an asset

The Asset Details page (`/it/assets/:id`) loads asset data via the `useAsset` hook. The header displays the asset name, `AssetStatusBadge`, `AssetTypeBadge`, and asset tag. Three action buttons appear: **Log Maintenance** (opens `MaintenanceLogDialog`), **Assign** or **Return Asset** depending on whether a current assignment exists (opens `AssetAssignmentDialog` or `AssetReturnDialog`), and **Edit** (currently disabled). The main layout is a two-column grid: the left column shows Asset Details, Technical Information, and Location cards; the right column shows Current Assignment, Acquisition, Warranty & Support, and Maintenance Summary cards. Below the grid, three tabs display Assignment History, Maintenance History, and Licenses associated with the asset.

Permission required: `IT_PERMISSIONS.VIEW` (`it.view`) via the outer `ITViewGuard`.

1. From the Assets list at `/it/assets`, click any asset row to open its detail page.
2. The top cards display type, category, model, serial number, MAC/IP address, OS, and location fields.
3. Click **Assign** to assign the asset to an employee (opens `AssetAssignmentDialog`), or **Return Asset** if the asset is currently assigned (opens `AssetReturnDialog`).
4. Click **Log Maintenance** to open `MaintenanceLogDialog` and record a maintenance event.
5. Use the **Assignment History**, **Maintenance History**, and **Licenses** tabs at the bottom of the page.

**Key fields:**

* **asset\_tag** — Unique identifier for the asset, displayed in monospace.
* **AssetStatusBadge** — Visual indicator of the asset's current status.
* **AssetTypeBadge** — Categorises the asset by type (e.g., laptop, server).
* **warranty\_expiration\_date** — Shows "Expired" or "Expiring Soon" badges based on date comparison.
* **totalMaintenanceCost** — Summed from all `maintenance_cost` values on maintenance records.

## Creating an asset

The New Asset page (`/it/assets/new`) provides a wizard-based flow for registering a new IT asset. The wizard mode — standard (`AssetCreationWizard`) or configurable (`ModuleWizardRenderer`) — is determined by the organization's IT wizard configuration via `useWizardMode('it')`. On completion the page navigates to `/it/assets/:id`; cancelling returns to `/it/assets`.

Permission required: `it.assets.create` (enforced at the API/data layer); module access requires `it.view`.

1. From the IT Assets page, click **Add Asset**, or navigate directly to `/it/assets/new`.
2. Fill in all required fields in the wizard steps (name, type, serial number at minimum).
3. Click the final confirmation step to create the asset record. You are redirected to the new asset's detail page.
4. Click Cancel or the back button at any step to return to `/it/assets` without saving.

## Related

<Columns cols={2}>
  <Card title="IT Service Management" icon="headset" href="/it/overview">
    IT Service Management overview.
  </Card>

  <Card title="Governance & parity" icon="scale-balanced" href="/governance/index" />
</Columns>

<Note>
  This page documents shipped product behavior. It is not medical, legal, or
  billing advice. Verify against your organization's policies and applicable
  regulations before using it for clinical, compliance, or billing decisions.
  Protected health information (PHI) shown in the product is governed by your
  tenant's access controls and is never exposed in this documentation.
</Note>

<Accordion title="Documentation sources">
  * src/routes/it.tsx
  * src/cores/it/pages/assets/AssetsPage.tsx
  * src/cores/it/pages/assets/AssetDetailPage.tsx
  * src/cores/it/pages/assets/AssetCreatePage.tsx
  * src/cores/it/components/wizards/AssetCreationWizard.tsx
  * src/cores/it/hooks/useAssets.ts
  * src/cores/it/hooks/useAsset.ts (via AssetDetailPage)
  * src/cores/it/types/assets.ts
</Accordion>
