- 03-01-SUMMARY.md: documents printer/client CRUD, Alpine.js port derivation, HTMX partials, test isolation fix, and PRNT-01 through PRNT-09 requirements - STATE.md: updated position, decisions, metrics, session record - ROADMAP.md: phase 03 progress updated (1/2 plans complete) - REQUIREMENTS.md: PRNT-01 through PRNT-09 marked complete
5.1 KiB
5.1 KiB
Requirements: ImpTune
Defined: 2026-04-10 Core Value: Generate a complete, working printer deployment package (script + drivers + icon) in minutes instead of manually scripting each printer setup.
v1 Requirements
Requirements for initial release. Each maps to roadmap phases.
Driver Management
- DRV-01: User can upload a driver package (ZIP containing INF + supporting files)
- DRV-02: System parses uploaded INF files and extracts valid driver names (DriverDesc)
- DRV-03: User can select driver name from parsed INF dropdown (no free-text)
- DRV-04: Driver packages are persisted on Docker volume across container restarts
- DRV-05: System flags unused files in driver packages to help reduce package size
Printer Configuration
- PRNT-01: User can set printer display name
- PRNT-02: User can set printer IP address or hostname
- PRNT-03: System auto-suggests port name from IP (user can override)
- PRNT-04: User can set duplex mode (one-sided, long-edge, short-edge)
- PRNT-05: User can set color vs. grayscale default
- PRNT-06: User can set paper size (A4, Letter, Legal at minimum)
- PRNT-07: User can set collate on/off
- PRNT-08: User can assign printer to a client/tenant label
- PRNT-09: Printer configurations are persisted in SQLite across sessions
- PRNT-10: User can regenerate a package from saved config without re-uploading drivers
Script Generation
- SCRPT-01: System generates PowerShell install script (pnputil staging + Add-PrinterPort + Add-PrinterDriver + Add-Printer + Set-PrintConfiguration)
- SCRPT-02: System generates PowerShell uninstall script (Remove-Printer + Remove-PrinterDriver + Remove-PrinterPort)
- SCRPT-03: System generates Intune detection script (registry check for printer name)
- SCRPT-04: Generated install script detects SYSTEM vs. user context and self-elevates via UAC when run by user
- SCRPT-05: Generated install script includes 64-bit WOW64 relaunch guard for Intune's 32-bit execution context
Package Export
- PKG-01: User can export a complete .intunewin package (script + drivers + detection + metadata)
- PKG-02: .intunewin is generated natively in Python (no IntuneWinAppUtil.exe dependency)
- PKG-03: User can export a NinjaRMM ZIP package (install script + driver folder)
- PKG-04: User can upload a custom PNG icon for Intune app display (256x256, max 750KB)
- PKG-05: User can preview and copy Intune install/uninstall command strings before export
Infrastructure
- INFRA-01: Application runs as a single Docker container
- INFRA-02: Application has minimal runtime dependencies (no Node.js, no external DB)
v2 Requirements
Deferred to future release. Tracked but not in current roadmap.
Bulk Operations
- BULK-01: User can import multiple printers from CSV
- BULK-02: User can export all printers for a client as a batch
Advanced Features
- ADV-01: Package version history per printer
- ADV-02: API / CLI mode for CI/CD integration
- ADV-03: Print server migration path (Printbrm import)
Out of Scope
| Feature | Reason |
|---|---|
| User authentication / logins | Internal tool on private network; simplicity over security |
| Direct Intune API push | Requires per-tenant OAuth, multi-tenant app registration — scope explosion |
| Direct NinjaRMM API push | Same as Intune API push — keep the tool as a package generator |
| Real-time printer status / monitoring | Requires SNMP polling and network access to client sites — different product |
| Universal Print integration | Different deployment model, requires Azure subscription |
| Mobile / tablet UI | Target users are at workstations; no validated demand |
| Multi-language / localization | English only for v1; no demand signal |
| Full audit log / deployment history | MSPs already have Intune/RMM logs |
Traceability
Which phases cover which requirements. Updated during roadmap creation.
| Requirement | Phase | Status |
|---|---|---|
| INFRA-01 | Phase 1 | Complete |
| INFRA-02 | Phase 1 | Complete |
| DRV-01 | Phase 2 | Complete |
| DRV-02 | Phase 2 | Complete |
| DRV-03 | Phase 2 | Complete |
| DRV-04 | Phase 2 | Complete |
| DRV-05 | Phase 2 | Complete |
| PRNT-01 | Phase 3 | Complete |
| PRNT-02 | Phase 3 | Complete |
| PRNT-03 | Phase 3 | Complete |
| PRNT-04 | Phase 3 | Complete |
| PRNT-05 | Phase 3 | Complete |
| PRNT-06 | Phase 3 | Complete |
| PRNT-07 | Phase 3 | Complete |
| PRNT-08 | Phase 3 | Complete |
| PRNT-09 | Phase 3 | Complete |
| PRNT-10 | Phase 3 | Pending |
| SCRPT-01 | Phase 4 | Pending |
| SCRPT-02 | Phase 4 | Pending |
| SCRPT-03 | Phase 4 | Pending |
| SCRPT-04 | Phase 4 | Pending |
| SCRPT-05 | Phase 4 | Pending |
| PKG-01 | Phase 5 | Pending |
| PKG-02 | Phase 5 | Pending |
| PKG-03 | Phase 5 | Pending |
| PKG-04 | Phase 5 | Pending |
| PKG-05 | Phase 5 | Pending |
Coverage:
- v1 requirements: 27 total
- Mapped to phases: 27
- Unmapped: 0
Requirements defined: 2026-04-10 Last updated: 2026-04-10 after roadmap creation