Title: Npcink Device Inventory
Author: Npcink
Published: <strong>29. Juni 2026.</strong>
Last modified: 13. August 2026.

---

Search plugins

![](https://ps.w.org/npcink-device-inventory/assets/banner-772x250.png?rev=3589361)

![](https://ps.w.org/npcink-device-inventory/assets/icon-256x256.png?rev=3589361)

# Npcink Device Inventory

 By [Npcink](https://profiles.wordpress.org/muze233/)

[Download](https://downloads.wordpress.org/plugin/npcink-device-inventory.3.2.1.zip)

 * [Details](https://me.wordpress.org/plugins/npcink-device-inventory/#description)
 * [Reviews](https://me.wordpress.org/plugins/npcink-device-inventory/#reviews)
 *  [Installation](https://me.wordpress.org/plugins/npcink-device-inventory/#installation)
 * [Development](https://me.wordpress.org/plugins/npcink-device-inventory/#developers)

 [Support](https://wordpress.org/support/plugin/npcink-device-inventory/)

## Description

Npcink Device Inventory is a device asset management plugin for small teams that
want to keep hardware inventory inside WordPress.

The current admin workspace and desktop client are provided in Simplified Chinese.
WordPress plugin metadata remains translatable, but a complete English application
interface is not yet included.

The plugin provides:

 * A unified asset registry.
 * Asset identities for matching repeated client observations to the same physical
   device.
 * Signed REST uploads for optional desktop collection clients.
 * Observation snapshots for collected hardware facts.
 * Event timelines for asset creation, updates, observations, and notes.
 * A bundled React admin workspace for asset review and client token management.

The WordPress plugin does not load JavaScript or CSS from third-party CDNs. Built
React assets are bundled locally in the plugin package. The corresponding React/
TypeScript source and build configuration are maintained in the project repository
under `vite-admin`.

### Privacy

Npcink Device Inventory stores device asset data in the local WordPress database.
Depending on how the site owner configures and uses the plugin, stored data may 
include device names, assigned users or locations, departments, status values, IP
addresses, hardware identifiers, hardware details, and event history.

The plugin does not transmit this data to Npcink or any third-party server during
normal plugin operation. Site administrators are responsible for informing users
and employees about their own device inventory policies.

## Screenshots

[[

[[

[[

[[

[[

## Installation

 1. Upload the `npcink-device-inventory` folder to `/wp-content/plugins/`.
 2. Activate the plugin from the WordPress Plugins screen.
 3. Open Plugins > Device Inventory.
 4. Generate a client authorization token before using the optional desktop uploader.
 5. Download the matching Windows x64 or macOS Apple Silicon client from the latest
    GitHub Release, then verify it against SHA256SUMS before importing the generated
    configuration. Desktop installers are currently intended for trusted internal environments
    until platform signing is complete.

## FAQ

### Does this plugin send data to a third-party service?

No. The WordPress plugin stores device asset data in the site’s own WordPress database
and does not contact a third-party service for normal operation.

### What data is stored?

The plugin can store asset names, numbers, ownership fields, departments, statuses,
IP and MAC addresses, hardware identifiers, raw collected hardware observations,
and event history. The default observation retention value is 0, which means observations
are not automatically deleted. Site administrators must define and enforce an appropriate
retention policy for their organization.

### Are device upload endpoints open to anonymous users?

No. Device upload endpoints require a client authorization token and HMAC signature.
Admin endpoints require a WordPress user with `manage_options`.

### What happens on uninstall?

The plugin only deletes its custom tables and settings when the stored v3 uninstall
option explicitly allows data deletion.

### Can I restore a JSON backup on another site?

Yes. Use the admin JSON backup preview first, review planned creates, updates, skipped
rows, conflicts, and warnings, then confirm the import. The restore process merges
plugin business data and does not clear existing inventory rows. Client upload secrets
and the client upload base URL are not restored from backups and must be configured
again on the target site.

### Where is the source for bundled JavaScript?

The project repository includes the built files and the corresponding React/TypeScript
source:

 * Admin app source: `vite-admin/src`
 * Build configuration: `vite-admin/package.json` and `vite-admin/vite.config.ts`

Run `npm install && npm run build` inside `vite-admin` to rebuild the bundled assets.

## Reviews

There are no reviews for this plugin.

## Contributors & Developers

“Npcink Device Inventory” is open source software. The following people have contributed
to this plugin.

Contributors

 *   [ Npcink ](https://profiles.wordpress.org/muze233/)

[Translate “Npcink Device Inventory” into your language.](https://translate.wordpress.org/projects/wp-plugins/npcink-device-inventory)

### Interested in development?

[Browse the code](https://plugins.trac.wordpress.org/browser/npcink-device-inventory/),
check out the [SVN repository](https://plugins.svn.wordpress.org/npcink-device-inventory/),
or subscribe to the [development log](https://plugins.trac.wordpress.org/log/npcink-device-inventory/)
by [RSS](https://plugins.trac.wordpress.org/log/npcink-device-inventory/?limit=100&mode=stop_on_copy&format=rss).

## Changelog

#### 3.2.1

 * Normalize desktop release asset filenames before integrity verification and publication.

#### 3.2.0

 * Add transactional asset table imports that roll back the full batch on any write
   failure.
 * Add persistent admin error states, scoped saved filters, and guarded settings
   forms.
 * Add desktop download guidance, configuration validation, signed connection checks,
   and configuration removal.
 * Store desktop upload tokens in the macOS Keychain or Windows Credential Manager
   instead of configuration JSON.
 * Add observation retention cleanup while preserving each asset’s latest hardware
   snapshot.
 * Improve desktop upload error guidance, keyboard navigation, focus visibility,
   and small-window layouts.

#### 3.1.4

 * Complete computer device-type editing, filtering, importing, exporting, and batch-
   update workflows.
 * Default legacy and newly collected computer assets to the desktop-computer type.
 * Simplify asset cards with date-only update labels while retaining full timestamps
   in asset details.
 * Ignore known virtual remote-display adapters when choosing the displayed primary
   graphics controller.
 * Present straight-line depreciation results as estimated carrying amounts while
   retaining terminal residual-rate settings.
 * Preserve purchase cost while setting second-hand market value and estimated carrying
   amount to zero for retired assets.

#### 3.1.3

 * Separate second-hand market value from accounting residual value while preserving
   legacy API and backup compatibility.
 * Add automatic straight-line financial residual calculation with manual exceptions
   and configurable depreciation settings.
 * Add financial-data completeness filters and a read-only completion list for missing
   purchase or second-hand prices.
 * Add configurable Excel and CSV asset exports with ordered fields, presets, status
   colors, and a WordPress-aware preview.

#### 3.1.2

 * Return an explicit 409 duplicate_number response when an active or archived asset
   already owns an asset number.
 * Display collected battery health, physical disk details, monitor identity, and
   real network route information in the admin asset detail view.

#### 3.1.1

 * Reject legacy v1-to-v2 identity migrations when the target asset’s latest hardware
   evidence has no identity in common with the incoming observation.

#### 3.1.0

 * Add server-recomputed hardware identity v2 using independent system UUID, guarded
   motherboard serial, and permanent PCI MAC signals.
 * Exclude CPU ProcessorId, USB adapters, current-only MAC addresses, disks, memory,
   and graphics from automatic identity matching.
 * Attach v2 identities to matching v1 assets on their first upgraded upload to 
   avoid duplicate inventory records.
 * Add read-only Windows processor and physical network identity collection plus
   real-device pilot regression coverage.

#### 3.0.1

 * Rebuild each asset’s latest observation pointer after JSON restore, including
   repeat imports that repair a prior incomplete pointer.
 * Reject backups that assign the same current device identity to more than one 
   asset.

#### 3.0.0

 * Remove the public asset query page, shortcode, REST route, and related access-
   code settings.
 * Make device identity ownership atomic and roll back partial observation ingestion.
 * Move complete JSON backup export to one server-side snapshot with matching restore
   limits.
 * Add transactional batch asset writes, bounded uploads, simplified read-only analysis,
   and explicit schema migrations.
 * Remove reusable token-secret and desktop build-preset surfaces; enable desktop
   CSP and restricted system open commands.
 * Add regression fixtures, Rust security audits, and stricter local/CI release 
   gates.

#### 2.8.0

 * Keep the undeletable Unassigned department as the fallback for new and restored
   assets.
 * Persist handled and reopened analysis issue states through asset events.
 * Add selected-asset department and owner assignment workflows with auditable change
   records.
 * Report missing owners only for active assets so idle inventory is not treated
   as incomplete.
 * Add direct valuation-data editing and focused regression coverage for the analysis
   workspace.

#### 2.7.9

 * Improve the admin analysis workspace with clearer department controls and denser
   review surfaces.
 * Add WordPress.org update-index repair documentation for the v2.7.8 package transition.
 * Refresh project documentation and submission materials for the current release
   workflow.

#### 2.7.8

 * Require an access code before public asset query can be enabled and add rate 
   limiting to the public query endpoint.
 * Reduce high-cost asset list JSON and observation searches for ordinary keywords
   while keeping IP, MAC, and serial-style extended searches.
 * Remove the duplicate in-page desktop update panel and keep update checks in the
   native menu / top settings surface.
 * Add release regression fixtures for public query hardening and asset search performance
   guardrails.

#### 2.7.7

 * Add desktop update manifest validation to the tagged release workflow.
 * Document the release candidate verification flow for plugin and desktop preview
   artifacts.
 * Bump the desktop uploader to 0.1.4 for the next signed updater validation path.

#### 2.7.6

 * Bump the desktop uploader to 0.1.3 to verify the signed GitHub Release updater
   flow from 0.1.2.

#### 2.7.5

 * Add GitHub Release powered desktop uploader update checks and signed Tauri updater
   metadata.
 * Fix uploaded observation timestamps so admin update times display in the local
   timezone.
 * Hide archived assets from default asset lists while preserving archived data 
   for exports, backups, and explicit archived-status filters.

#### 2.7.4

 * Default the admin computer asset list to latest observed uploads and show upload
   update time consistently.
 * Improve first-screen admin loading, detail modal rendering, search highlighting,
   and macOS device visuals.
 * Localize the plugin list settings link and reduce desktop uploader success dialog
   details to asset number and device.

#### 2.7.3

 * Improve the admin asset inventory workspace with clearer hardware inventory and
   value analysis views.
 * Group memory inventory by capacity and disk inventory by disk type and capacity.
 * Improve device upload matching and client feedback for repeated uploads.

#### 2.7.2

 * Add short-lived object caching around custom inventory table reads.
 * Replace dynamic asset list SQL fragments with fixed prepared query conditions.
 * Scope Plugin Check database query annotations to the relevant custom table reads
   and writes.

#### 2.7.1

 * Keep release packages free of macOS metadata files.
 * Keep the desktop uploader package name in English for safer installer paths.

#### 2.7.0

 * Store JSON-encoded custom table payloads as LONGTEXT for broader MySQL and MariaDB
   compatibility.
 * Updated active upload documentation to use the signed v3 device observations 
   endpoint.

#### 2.6.1083

 * Rebuilt the plugin around the v3 asset registry.
 * Replaced legacy four-table admin screens with the v3 asset workspace.
 * Moved desktop uploads to signed v3 device observations.

## Meta

 *  Version **3.2.1**
 *  Last updated **7 sata ago**
 *  Active installations **Fewer than 10**
 *  WordPress version ** 6.5 or higher **
 *  Tested up to **7.0.4**
 *  PHP version ** 7.4 or higher **
 *  Language
 * [English (US)](https://wordpress.org/plugins/npcink-device-inventory/)
 * Tags
 * [admin](https://me.wordpress.org/plugins/tags/admin/)[assets](https://me.wordpress.org/plugins/tags/assets/)
   [inventory](https://me.wordpress.org/plugins/tags/inventory/)[rest-api](https://me.wordpress.org/plugins/tags/rest-api/)
 *  [Advanced View](https://me.wordpress.org/plugins/npcink-device-inventory/advanced/)

## Ratings

No reviews have been submitted yet.

[Your review](https://wordpress.org/support/plugin/npcink-device-inventory/reviews/#new-post)

[See all reviews](https://wordpress.org/support/plugin/npcink-device-inventory/reviews/)

## Contributors

 *   [ Npcink ](https://profiles.wordpress.org/muze233/)

## Support

Got something to say? Need help?

 [View support forum](https://wordpress.org/support/plugin/npcink-device-inventory/)