120 lines
6.0 KiB
Markdown
120 lines
6.0 KiB
Markdown
# Requirements Archive: v1.0 ImpTune MVP
|
|
|
|
**Archived:** 2026-04-13 (milestone shipped)
|
|
**Originally 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.
|
|
|
|
> This is a frozen snapshot of requirements as they stood at v1.0 completion. The working `.planning/REQUIREMENTS.md` will be recreated fresh for v1.1.
|
|
|
|
## v1 Requirements — Final Status
|
|
|
|
**27/27 satisfied.** Audit re-ran 2026-04-13, status `passed`.
|
|
|
|
### Driver Management
|
|
|
|
- [x] **DRV-01**: User can upload a driver package (ZIP containing INF + supporting files) — *shipped Phase 2*
|
|
- [x] **DRV-02**: System parses uploaded INF files and extracts valid driver names (DriverDesc) — *shipped Phase 2*
|
|
- [x] **DRV-03**: User can select driver name from parsed INF dropdown (no free-text) — *shipped Phase 2*
|
|
- [x] **DRV-04**: Driver packages are persisted on Docker volume across container restarts — *shipped Phase 2*
|
|
- [x] **DRV-05**: System flags unused files in driver packages to help reduce package size — *shipped Phase 2*
|
|
|
|
### Printer Configuration
|
|
|
|
- [x] **PRNT-01**: User can set printer display name — *shipped Phase 3*
|
|
- [x] **PRNT-02**: User can set printer IP address or hostname — *shipped Phase 3*
|
|
- [x] **PRNT-03**: System auto-suggests port name from IP (user can override) — *shipped Phase 3 (code verified, runtime browser verification pending — tech debt into v1.1)*
|
|
- [x] **PRNT-04**: User can set duplex mode (one-sided, long-edge, short-edge) — *shipped Phase 3*
|
|
- [x] **PRNT-05**: User can set color vs. grayscale default — *shipped Phase 3*
|
|
- [x] **PRNT-06**: User can set paper size (A4, Letter, Legal at minimum) — *shipped Phase 3*
|
|
- [x] **PRNT-07**: User can set collate on/off — *shipped Phase 3*
|
|
- [x] **PRNT-08**: User can assign printer to a client/tenant label — *shipped Phase 3*
|
|
- [x] **PRNT-09**: Printer configurations are persisted in SQLite across sessions — *shipped Phase 3*
|
|
- [x] **PRNT-10**: User can regenerate a package from saved config without re-uploading drivers — *shipped Phase 3*
|
|
|
|
### Script Generation
|
|
|
|
- [x] **SCRPT-01**: PowerShell install script (pnputil + Add-PrinterPort + Add-PrinterDriver + Add-Printer + Set-PrintConfiguration) — *shipped Phase 4*
|
|
- [x] **SCRPT-02**: PowerShell uninstall script (Remove-Printer + Remove-PrinterDriver + Remove-PrinterPort) — *shipped Phase 4*
|
|
- [x] **SCRPT-03**: Intune detection script — *shipped Phase 4*
|
|
- [x] **SCRPT-04**: Install script detects SYSTEM vs. user context and self-elevates via UAC — *shipped Phase 4*
|
|
- [x] **SCRPT-05**: Install script includes WOW64 64-bit relaunch guard for Intune's 32-bit execution context — *shipped Phase 4*
|
|
|
|
### Package Export
|
|
|
|
- [x] **PKG-01**: User can export a complete .intunewin package — *shipped Phase 5*
|
|
- [x] **PKG-02**: .intunewin is generated natively in Python (no IntuneWinAppUtil.exe) — *shipped Phase 5*
|
|
- [x] **PKG-03**: User can export a NinjaRMM ZIP package — *shipped Phase 5*
|
|
- [x] **PKG-04**: User can upload a custom PNG icon and it is embedded in the .intunewin package — *shipped Phase 5 + wired in Phase 6 (gap closure)*
|
|
- [x] **PKG-05**: User can preview and copy Intune install/uninstall command strings before export — *shipped Phase 5*
|
|
|
|
### Infrastructure
|
|
|
|
- [x] **INFRA-01**: Application runs as a single Docker container — *shipped Phase 1*
|
|
- [x] **INFRA-02**: Application has minimal runtime dependencies (no Node.js, no external DB) — *shipped Phase 1*
|
|
|
|
## Out of Scope (v1.0 decisions — carry forward unless revisited)
|
|
|
|
| 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 — 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 |
|
|
|
|
## v2 Requirements (deferred — not touched in v1.0)
|
|
|
|
### 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)
|
|
|
|
## Traceability (final)
|
|
|
|
| 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 (runtime verification pending) |
|
|
| 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 | Complete |
|
|
| SCRPT-01 | Phase 4 | Complete |
|
|
| SCRPT-02 | Phase 4 | Complete |
|
|
| SCRPT-03 | Phase 4 | Complete |
|
|
| SCRPT-04 | Phase 4 | Complete |
|
|
| SCRPT-05 | Phase 4 | Complete |
|
|
| PKG-01 | Phase 5 | Complete |
|
|
| PKG-02 | Phase 5 | Complete |
|
|
| PKG-03 | Phase 5 | Complete |
|
|
| PKG-04 | Phase 5 + Phase 6 | Complete (Phase 6 gap closure) |
|
|
| PKG-05 | Phase 5 | Complete |
|
|
|
|
**Coverage:**
|
|
- v1 requirements: 27 total
|
|
- Satisfied: 27
|
|
- Unmapped: 0
|
|
|
|
---
|
|
*Archived 2026-04-13 on v1.0 milestone completion. See `.planning/milestones/v1.0-ROADMAP.md` for phase details and `.planning/milestones/v1.0-MILESTONE-AUDIT.md` for audit report.*
|