Library: vendors, locations, categories, cost centers
The Library is the set of reference catalogs that feed the dropdowns and groupings used everywhere else — the Vendor, Location, Category, and Cost center pickers on the hardware form, and the rollups on the Finance dashboard. Each catalog is a flat list you edit in place: a small add form on the right, a list on the left, with inline Edit and Delete on every row.
:::note Before you begin
- You need an admin, IT admin, or super admin role. The Library lives in the admin console under Library in the sidebar.
- The sidebar entry opens on Vendors. A tab strip switches between the five catalogs: Vendors, Locations, Location types, Categories, Cost centers.
- Every catalog blocks deletion of a row that's still referenced by an asset (or a location, for location types). Reassign or remove the dependents first. :::
The five catalogs
| Catalog | Tab | Feeds | Identified by |
|---|---|---|---|
| Vendors | Vendors | Vendor picker on hardware and software | Name (unique) |
| Locations | Locations | Location picker on hardware | Name |
| Location types | Location types | The Type dropdown on the location form | Slug (unique, fixed once set) |
| Hardware categories | Categories | Category picker on hardware; tailors the Specifications fields and carbon rollup | Name |
| Cost centers | Cost centers | Cost-center picker on hardware; Finance chargeback rollups | Code (unique) |
Each tab follows the same pattern: fill the add form, select the add button, and the new row appears in the list with a success banner. To change a row, select Edit to swap it for an inline form, then save. To remove one, select Delete and confirm.
Vendors
Suppliers and partners you buy hardware or software from. The list shows hardware and software license counts per vendor and is sorted by name; some columns are hidden by default and toggled with the column picker.
Vendor fields
| Field | Required | Default | Notes |
|---|---|---|---|
| Name | Yes | — | Must be unique across vendors; max 191 characters. |
| Type | Yes | Hardware | One of: Hardware, Software, Both, Service. |
| Website | No | — | Must be a valid URL; max 255 characters. |
| Support email | No | — | Must be a valid email; max 191 characters. |
| Support phone | No | — | Free text; max 32 characters. |
| Account manager | No | — | Free text; max 191 characters. |
| Account manager email | No | — | Must be a valid email; max 191 characters. |
| Notes | No | — | Free text; editable inline. |
Vendor list columns
| Column | Sortable | Notes |
|---|---|---|
| Name | Yes | Shows the website beneath the name when set. |
| Type | Yes | Shown as a pill. |
| Website | No | Hidden by default; toggle with the column picker. |
| Hardware | Yes | Count of linked hardware assets. |
| Software | Yes | Count of linked software licenses. |
| Support email, Support phone, Account manager | No | Hidden by default; toggle with the column picker. |
A vendor with any linked hardware or software license can't be deleted — the action returns Cannot delete: vendor is linked to assets. Reassign or remove those assets first.
Locations
Offices, warehouses, and remote sites where assets live. The list shows a hardware count per location and is sorted by name; Code, City, Country, and Timezone are hidden by default behind the column picker.
Location fields
| Field | Required | Default | Notes |
|---|---|---|---|
| Name | Yes | — | Max 191 characters. |
| Code | No | — | Short site code, e.g. VLN-HQ; max 32 characters. |
| Type | Yes | — | Picked from your Location types. Only active types are offered. |
| Address (line 1) | No | — | Street; max 255 characters. |
| Address line 2 | No | — | Max 255 characters; editable inline. |
| City | No | — | Max 128 characters. |
| State | No | — | Max 128 characters; editable inline. |
| Postal code | No | — | Max 32 characters; editable inline. |
| Country | No | — | Free text, e.g. Lithuania; max 64 characters. |
| Timezone | No | — | Max 64 characters; editable inline. |
| Active | No | On | Cleared via the inline edit form. |
The Type dropdown is populated from the Location types tab — there's no free-text type. If the list is short or missing the type you need, add it under Location types first. A location that already points at a type later deactivated keeps showing that type.
A location with hardware assigned to it can't be deleted — the action returns Cannot delete: hardware is assigned to this location.
Location types
The choices for the location form's Type dropdown — for example Office, Warehouse, Retail store, Lab. Add a type here to categorize new sites without a code change. The list shows how many locations use each type.
Location type fields
| Field | Required | Default | Notes |
|---|---|---|---|
| Name | Yes | — | Display label, e.g. Branch office; max 128 characters. |
| Slug | No | Derived from name | Lowercase letters, digits, and underscores only (^[a-z0-9_]+$); must be unique; max 64 characters. Left blank, it's generated from the name. Fixed once created — not editable. |
| Description | No | — | Max 500 characters. |
| Active | No | On | Inactive types stay assigned to existing locations but aren't offered for new ones. Cleared via the edit form. |
The slug is the join key between a type and its locations, so it's edit-locked after creation — changing it would orphan every location pointing at the old value. To rename a type, edit its Name; the slug stays stable. To retire one, clear Active rather than deleting it.
A type still referenced by one or more locations can't be deleted — the action returns Cannot delete: N location(s) use this type. Reassign or disable it instead. Reassign those locations, or clear Active to hide it from new selections.
Hardware categories
Groups for your assets — laptops, monitors, phones, cables, accessories. The category you pick on the hardware form tailors which Specifications fields appear and supplies the per-category carbon factors used by the Finance carbon rollup. Categories render as cards showing the icon, name, and asset count.
Category fields
| Field | Required | Default | Notes |
|---|---|---|---|
| Name | Yes | — | Max 128 characters. |
| Icon | No | Keyword-matched | Picked from a fixed set (Laptop, Desktop, Monitor, Phone, Tablet, Headset, Keyboard, Mouse, Dock / Cable, Webcam, Printer, Server, Network, Storage, Other). Left unset, the icon is matched from the name. Max 64 characters. |
| Colour | No | #6366f1 | Hex colour used as the icon tile background; max 32 characters. |
| Default lifespan (months) | No | 48 | Integer 1–360. |
| Embodied kg CO₂e (one-off) | No | — | Manufacturing footprint per asset; number 0–99999.99. Rolls up on Finance → Carbon only when set. |
| Annual kg CO₂e (use-phase / year) | No | — | Yearly running footprint per asset; number 0–99999.99. |
| Specification fields | No | Category defaults | Tick the spec fields to show on this category's hardware form. Leave all unticked to use the defaults for the category's slug. |
| Description | No | — | Max 1,000 characters. |
Leave the carbon factors blank unless you have published figures (for example a Dell PCF, Apple PER, or ADEME dataset). A category with no factor is skipped in the carbon rollup, so it never silently reports zero where data is just missing.
A category that still contains hardware can't be deleted — the action returns Cannot delete: hardware exists in this category.
Cost centers
Chargeback codes for finance reporting. Users carry a free-text cost_center value synced from Google Workspace; this catalog normalizes those values into a canonical list with stable labels and owner emails, so Finance rollups stay clean without editing every user row. The list shows per-code user count, hardware count, and book value.
Cost center fields
| Field | Required | Default | Notes |
|---|---|---|---|
| Code | Yes | — | Must be unique; max 32 characters. Match the code Google Workspace syncs onto users, e.g. RND-01. |
| Name | Yes | — | Display label, e.g. R&D — Simulation; max 191 characters. |
| Department | No | — | Max 191 characters. |
| Owner email | No | — | Must be a valid email; max 191 characters. Receives the monthly chargeback digest. |
| Notes | No | — | Free text. |
| Active | No | On | Cleared via the edit form. |
Cost center list columns
| Column | Notes |
|---|---|
| Code | The catalog code. |
| Name | Display label. |
| Department | Owning department, or —. |
| Users | Users whose synced cost_center matches this code (case-insensitive). |
| Hardware | Assets charged to this cost center. |
| Book value | Sum of purchase price across this center's assets, when set. |
The page also surfaces an unmatched list: free-text cost_center values on users that have no catalog entry, ranked by user count. Add a matching code here to fold those users into a canonical center.
A cost center with hardware still charged to it can't be deleted — the action returns Cannot delete: hardware is still charged to this cost center.
Troubleshooting
| Symptom | What to do |
|---|---|
| Add form reloads with a field highlighted | A required field is missing or invalid. Vendors and locations require a Name (and a vendor needs a Type); cost centers require Code and Name; categories and location types require a Name. Fix the flagged field and save again. |
| Save rejected because the name, code, or slug is taken | Vendor Name, cost center Code, and location type Slug must be unique. Enter a different value, or for a location type clear the slug to auto-generate one. |
| Delete returns "Cannot delete…" | The row is still referenced — by hardware or software (vendor), hardware (location, category, cost center), or locations (location type). Reassign or remove the dependents first, or for a location type clear Active instead. |
| A type you added isn't in the location Type dropdown | The dropdown lists only active location types. Open the type and confirm Active is on. |
| Can't change a location type's slug | The slug is fixed after creation by design. Edit the Name instead; the slug stays as the join key. |
| Specifications on the hardware form look empty or generic | The category's Specification fields are unset, so it falls back to the slug defaults. Open the category and tick the fields you want, or set the Category on the asset. |
| A cost center shows zero Users | No user's synced cost_center matches the Code (the match is case-insensitive). Confirm the code matches what Google Workspace writes onto users, and check the unmatched list. |