0c1fbfcc1e
read permissions on every GET
2026-08-27 14:26:17 -04:00
4da6c6aa36
guest role; guide section ticking
2026-08-27 13:02:35 -04:00
d38a599292
guides export/import bundles
2026-08-27 11:47:01 -04:00
28798e6a32
flask guides import-html; retention docstring
2026-08-27 11:27:30 -04:00
5f069b1a5f
Email report on every report page; kiosk long-name fix
2026-08-27 11:01:28 -04:00
4dfbf5f8ec
Kiosk drive filter and wider picker
2026-08-27 10:37:10 -04:00
60c340b07f
Plugin reports render; USB check-in/out audit report; kiosk drive lists
2026-08-27 10:20:59 -04:00
376298dc02
Navigation sections declared, guide editor drag + references, USB settings, permission refresh
2026-08-27 09:30:08 -04:00
0b8c455b99
USB kiosk sidebar link
2026-08-27 08:56:27 -04:00
2326f8f096
USB kiosk: guest check-out/check-in without a login
2026-08-27 08:19:03 -04:00
0738d71525
Guides image + draft gating, audit retention, ADR-015 gate, backup credential redaction
2026-08-26 15:08:53 -04:00
4e38303326
Tab titles name the record; Guides reach a site and the contract surface
2026-08-26 13:31:13 -04:00
f221fba540
Guides: procedures written and read inside ShopDB
2026-08-26 12:42:24 -04:00
271d558f8b
An unmeasurable backup must not hide a working one
2026-08-26 10:07:51 -04:00
4a5d2122db
Repair backup revisions that recorded a mapped drive
2026-08-25 15:00:57 -04:00
8e10584c4d
Give the backups plugin a settings page, and show where a snapshot is
2026-08-25 14:53:13 -04:00
fa856c1f94
Judge a PC's backup by its stalest kind, not its newest
2026-08-25 13:56:53 -04:00
f1e265190e
Let a share-backed backup say what is in it
2026-08-25 13:52:06 -04:00
c7fd00c225
One canonical name per vendor in the shipped catalog
2026-08-25 07:47:56 -04:00
1812def14f
Catalog dedupe commands, and a seed catalog with no duplicate vendors or models
2026-08-24 14:49:54 -04:00
4fe4e91ae4
Maintenance scripts load .env, so they reach the site's real database
2026-08-24 14:32:38 -04:00
ead9fd6b56
Search results open the record they found; plugin scaffolder emits a prunable frontend
2026-08-24 14:06:14 -04:00
0398c55fb5
Warranty search finds a machine number; the collector can no longer set a printer assignment
2026-08-24 11:52:48 -04:00
f109dd1349
Plugin baselines skip tables that already exist
2026-08-24 09:28:52 -04:00
ce3a0f4338
Secure Send documented, and the machine form stops re-creating a controlling-PC link that already exists
2026-08-24 08:55:45 -04:00
b90d7a7051
Secure send settings page
2026-08-21 16:10:52 -04:00
ee1da0ffb8
Tech Tools reachable without a login
2026-08-21 16:02:52 -04:00
0b4a1db842
Secure send: guests by setting, and a custom view count
2026-08-21 15:53:42 -04:00
21af2731f3
site_base_url: say the subpath belongs in it
2026-08-21 15:27:32 -04:00
1dd8474ce4
Secret links: one mount, not two
2026-08-21 15:23:18 -04:00
627804535e
Secret links carry the site URL and the mount path
2026-08-21 15:19:43 -04:00
94fd70391a
Secure send: the pages a person actually touches
2026-08-21 15:11:04 -04:00
a01f5c1a83
Secure send moves into Tech Tools
2026-08-21 14:18:10 -04:00
4242028270
Secure send: hand somebody a password without leaving it in a chat window
2026-08-21 13:44:34 -04:00
2719589c6e
Label generator: back-side codes, pictures, two-column layout, measurement guards
2026-08-21 12:38:08 -04:00
74392ccad2
Only zero is empty, and the last day is worth reading
2026-08-21 11:57:17 -04:00
bbda5cbfe9
A supply nobody could read is unknown, not empty
2026-08-21 11:44:10 -04:00
65312c0502
Name the toner on the forecast, keep the number on the hover
2026-08-21 11:23:27 -04:00
04107ff8ab
Search spelling suggestions across every list
2026-08-21 11:15:06 -04:00
fdf3c51cb0
Hover mini-map marker in box coordinates
2026-08-21 10:20:38 -04:00
d26355cebb
Hover mini-map marker, knowledge base search, and the label generator
2026-08-21 09:51:12 -04:00
980b2e8be3
Find a knowledge base article by words from different fields
2026-08-21 09:40:14 -04:00
44432c9b5a
Label generator: gap, position and a back side
2026-08-21 09:09:14 -04:00
5a58d33623
Fix what the last round of device fixes broke, and two dips it missed
2026-08-21 08:50:00 -04:00
4f0399b8ac
A toner rate needs days behind it
2026-08-20 17:23:59 -04:00
ebb86ccf3b
Blank asset numbers, contested device claims, and honest toner forecasting
2026-08-20 17:09:02 -04:00
fa88ef0afe
Device identity, collector enrollment file, and network device fixes
2026-08-20 15:10:24 -04:00
1b5b28acff
Release 0.12.0
2026-08-20 08:46:04 -04:00
d267813999
Printer assignment end to end, and a container that keeps a site's files
...
Assign printers to a MACHINE and let whichever PC controls it install them, with
the observed half kept strictly apart from the assigned half: a collector report
can never write an assignment row. Adoption is explicit. Adds a singular
relationship type so defaultprinter can mean exactly one, client scripts that
converge a bay's queues and correct a drifted one in place, and a wave gate so a
fleet-wide driver rollout cannot stampede its own share.
On the container side: the compose stack never persisted the instance directory,
so a rebuild discarded plugins.json and every upload. It is a volume now, the
image ships instance/ owned by the app user so the mountpoint is writable, and
the database moves to MySQL 8.4 LTS, which the Windows runbook has recommended
since 8.0 went end of life. The image also could not build at all: the frontend
stage never copied the plugin staging script it runs.
Adds a topology migration guide covering IIS to Docker and back.
2026-08-20 07:46:35 -04:00
09e9d5f047
Carry the level everywhere a position is drawn, and gate it per occurrence
2026-08-18 09:37:29 -04:00