Skip to content

Kramden/kramden-provision

Repository files navigation

About

Tools used by Kramden for the computer refurbishing process. Each tool is a GTK4/Adwaita application that guides the technician through the workflow.

  • Spec — Registers/updates the device in Sortly inventory, runs hardware checks, and generates a tracking sheet PDF.
  • OS Load — Identifies the device (K-number), registers with Landscape, and collects system information.
  • Final Test — Performs final hardware validation before the device ships.
  • Device — End-user application that displays the Kramden guide and device information (hardware specs). Creates a ~/.config/kramden-intro-done marker on close to track first launch.

Sortly Integration

The OS Load and Spec workflows integrate with the Sortly inventory API to look up, create, and update device records.

On startup each workflow looks up the device by its serial number. If a matching Sortly record is found the K-number is pre-populated and the record is updated with the latest system information (brand, model, CPU, RAM, storage, serial, GPU, battery health, etc.).

Configuration

Environment Variable Description
SORTLY_API_KEY Required. API key for authenticating with the Sortly API.
KRAMDEN_TEST Optional. When set, all workflows use TEST_FOLDER_IDS instead of their stage-specific folders.

Each workflow searches its own set of top-level Sortly folders and recursively discovers all subfolders underneath them:

Workflow Folder IDs
Spec SPEC_FOLDER_IDS
OS Load OSLOAD_FOLDER_IDS
Test TEST_FOLDER_IDS

CLI Scripts

Standalone scripts for working with Sortly outside the wizard workflows:

# Look up a device by serial number (auto-detects if no serial given)
SORTLY_API_KEY=... python3 src/sortly_lookup_by_serial.py [serial] [--stage=spec|osload|test]

# Look up a device by name
SORTLY_API_KEY=... python3 src/sortly_lookup_by_name.py <name> [--stage=spec|osload|test]

# Update a device record with system info
SORTLY_API_KEY=... python3 src/sortly_update_system_info.py <item_name>

Dependencies

sudo apt install python3-gi gir1.2-gtk-4.0 python3-psutil python3-pyudev python3-reportlab python3-requests

Running

cd src/
./osload.py
./spec.py
./finaltest.py
./deviceinfo.py

Run Unit Tests

python3 -m unittest discover tests

Installation

Build Dependencies

  • build-essential
  • meson

Build

rm -rf builddir
meson setup -Dprefix=$HOME/.local builddir
meson compile -C builddir --verbose

Install

meson install -C builddir

Run

$HOME/.local/bin/kramden-provision-osload
$HOME/.local/bin/kramden-spec
$HOME/.local/bin/kramden-provision-finaltest
$HOME/.local/bin/kramden-device

About

Utility for OS Load and Final Test stages of the refurbishing process

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors