Add Server Buddy desktop app with local Linux assessment and reporting
This commit is contained in:
34
docs/PLATFORMS.md
Normal file
34
docs/PLATFORMS.md
Normal file
@@ -0,0 +1,34 @@
|
||||
# Platform support and collection plan
|
||||
|
||||
## Current functionality
|
||||
|
||||
| Desktop | Windows inventory reporting | RHEL-based inventory reporting | Live collection |
|
||||
| --- | --- | --- | --- |
|
||||
| Linux Mint, Python 3.11+ | Synthetic demo and schema-validated local JSON import | Synthetic demo and schema-validated local JSON import | Local read-only Linux collector on Linux; no remote collection |
|
||||
| Windows 10/11, Python 3.11+ | Same application code; Windows desktop testing pending | Same application code; Windows desktop testing pending | Not implemented |
|
||||
|
||||
**Update:** Local Linux Mint/RHEL-based collection is now implemented via `collectors/linux.py`, with direct GUI and headless CLI entry points. It uses RPM on hosts where RPM is available and dpkg on Mint. Mint-like package parsing and mocked RPM output are tested; real RHEL release validation remains pending. See README for exact coverage and missing checks. Windows live collection remains unimplemented.
|
||||
|
||||
Qt is a desktop dependency, not a dependency to install on assessed servers. Headless RHEL servers will produce JSON through a separate collector and do not need PySide6. Reporting does not require Windows administrative modules on Linux.
|
||||
|
||||
## Target collection support
|
||||
|
||||
Windows targets: Windows Server 2016 onward. Use read-only PowerShell compatible with Windows PowerShell 5.1 from an existing authorized Windows execution host. Linux Mint can import that execution host's JSON. A future transport to a Windows execution host must be explicit and authenticated; never run Windows administration modules natively on Linux. Feature availability and permissions vary, so every module reports complete/partial/failed/not_collected separately. Test each supported Windows Server release before claiming collection compatibility.
|
||||
|
||||
RHEL-based targets: RHEL and compatible distributions, initially validate supported enterprise 8/9/10 families individually; older versions require explicit compatibility testing. The offline local collector can run on the Linux execution host and export JSON for manual transfer. Future remote collection will use existing authorized SSH. No agent installation, automatic SSH enablement, privilege escalation or remote configuration. Windows desktop SSH support must be checked at runtime. Offline JSON remains the common fallback.
|
||||
|
||||
Linux inventory requirements:
|
||||
|
||||
- `/etc/os-release`, kernel, boot time, addresses, interfaces and directory integration evidence.
|
||||
- systemd services with state, unit path and execution identity; no secret-bearing environment or command arguments.
|
||||
- `ss` TCP observations, with unprivileged process attribution explicitly marked incomplete where necessary.
|
||||
- system and accessible user timers, cron/anacron schedules; inaccessible accounts and application schedulers remain missing evidence.
|
||||
- RPM package inventory; never install or alter packages.
|
||||
- mounts, local/remote filesystems, free space, NFS exports and Samba shares. Distinguish remote mounts from exported storage and avoid reading protected configuration secrets.
|
||||
- Configured public certificate metadata from explicit locations. Linux has no single Windows-style machine certificate store; do not claim full certificate coverage or inspect private keys.
|
||||
|
||||
Common analysis must distinguish observations, inferred workloads and unknowns. Windows roles and Linux package/service workload hints are not equivalent evidence. NFS, Samba and SMB exports all require dependency review; listing a share does not prove active consumers. Account and critical infrastructure rule mappings need OS-specific coverage before production deployment.
|
||||
|
||||
## Validation remaining
|
||||
|
||||
Windows GUI and collection tests; Windows Server release matrix; RHEL/compatible distribution matrix; SSH authentication and host-key checks; PowerShell transport; timeout/cancellation and output bounds; incomplete permissions; production field redaction; signed packaging. No real enterprise server is contacted during development without an explicit target and authorization.
|
||||
Reference in New Issue
Block a user