IronLedger Tools

Reference documentation for utilities in the tools/ folder.

Purpose

This document provides lightweight, tool-by-tool notes for development and validation utilities used by IronLedger.

It is intentionally compact and structured to scale as additional tools are added.

Conventions

  • Keep each tool entry minimal and implementation-focused.
  • Prefer practical usage examples over long design descriptions.
  • Add new tools to the index and create a matching section using the standard template.

Tool Index

Tool Folder Status Primary Purpose
AssetId tools/AssetId Active Generates a stable asset identification payload from local hardware metadata.
ComponentList tools/ComponentList Active Lists core system component counts and outputs serialized component data JSON.

Tool: AssetId

Summary

Console utility that queries local Windows CIM/WMI data and emits an AssetId payload in JSON.

Current Scope

  • Reads baseboard, BIOS, and computer system metadata.
  • Builds asset metadata fields used for identity selection (sn, did, fallback generated id).
  • Prints both a selected identifier string and full JSON payload.

Tech/Dependencies

  • Runtime: .NET net10.0
  • Package: Microsoft.Management.Infrastructure
  • Platform expectation: Windows environment with CIM/WMI availability.

Run

From repository root:

dotnet run --project .\tools\AssetId\AssetId.csproj

Output

  • Human-readable identifier line (AssetId: ...)
  • JSON payload containing the serialized AssetId model, including:
    • System metadata (e.g., computer system identity details used for asset identification)
    • Baseboard metadata (e.g., board serial and related identifiers)
    • BIOS metadata (e.g., firmware identity/build information)
  • The exact JSON schema is defined by the AssetId type in tools/AssestId.

Notes

  • Current folder/project naming uses AssetId (spelling retained to match codebase).
  • Fallback text values are used when metadata cannot be read from CIM queries.

Tool: ComponentList

Summary

Console utility that retrieves component inventory data through IronLedgerLib and prints a serialized JSON payload.

Current Scope

  • Retrieves a full component snapshot in one call (Create).
  • Prints system caption and count summaries for processors, memory, and disks.
  • Demonstrates targeted retrieval methods (GetProcessors, GetDisks, GetSystem).

Tech/Dependencies

  • Runtime: .NET net10.0
  • Package: Microsoft.Management.Infrastructure
  • Project reference: src/IronLedgerLib
  • Platform expectation: Windows environment with CIM/WMI availability.

Run

From repository root:

dotnet run --project .\tools\ComponentList\ComponentList.csproj

Output

  • Human-readable summary lines (system caption and component counts).
  • Serialized JSON payload for the full component model.
  • Error message output when component retrieval fails.

Notes

  • Uses ComponentDataFactory directly to exercise both aggregate and targeted retrieval paths.
  • Intended as a quick validation/inspection utility for hardware component collection behavior.

New Tool Template

Use this section pattern for future tools.

## Tool: <ToolName>

### Summary
<1-2 sentence purpose>

### Current Scope
- <capability>
- <capability>

### Tech/Dependencies
- Runtime: <framework/runtime>
- Package(s): <if any>
- Platform expectation: <os/environment>

### Run
~~~powershell
dotnet run --project .\tools\<ToolFolder>\<ToolProject>.csproj
~~~

### Output
- <key output 1>
- <key output 2>

### Notes
- <limitations, caveats, or naming notes>