docs: define v1 requirements
This commit is contained in:
@@ -0,0 +1,121 @@
|
||||
# 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 |
|
||||
|-------------|-------|--------|
|
||||
| DRV-01 | — | Pending |
|
||||
| DRV-02 | — | Pending |
|
||||
| DRV-03 | — | Pending |
|
||||
| DRV-04 | — | Pending |
|
||||
| DRV-05 | — | Pending |
|
||||
| PRNT-01 | — | Pending |
|
||||
| PRNT-02 | — | Pending |
|
||||
| PRNT-03 | — | Pending |
|
||||
| PRNT-04 | — | Pending |
|
||||
| PRNT-05 | — | Pending |
|
||||
| PRNT-06 | — | Pending |
|
||||
| PRNT-07 | — | Pending |
|
||||
| PRNT-08 | — | Pending |
|
||||
| PRNT-09 | — | Pending |
|
||||
| PRNT-10 | — | Pending |
|
||||
| SCRPT-01 | — | Pending |
|
||||
| SCRPT-02 | — | Pending |
|
||||
| SCRPT-03 | — | Pending |
|
||||
| SCRPT-04 | — | Pending |
|
||||
| SCRPT-05 | — | Pending |
|
||||
| PKG-01 | — | Pending |
|
||||
| PKG-02 | — | Pending |
|
||||
| PKG-03 | — | Pending |
|
||||
| PKG-04 | — | Pending |
|
||||
| PKG-05 | — | Pending |
|
||||
| INFRA-01 | — | Pending |
|
||||
| INFRA-02 | — | Pending |
|
||||
|
||||
**Coverage:**
|
||||
- v1 requirements: 27 total
|
||||
- Mapped to phases: 0
|
||||
- Unmapped: 27
|
||||
|
||||
---
|
||||
*Requirements defined: 2026-04-10*
|
||||
*Last updated: 2026-04-10 after initial definition*
|
||||
Reference in New Issue
Block a user