Add local Windows Server inventory collection and validation; include core package

This commit is contained in:
2026-10-30 11:24:40 -07:00
parent 967b2bd46a
commit f65ade9fff
35 changed files with 2200 additions and 56 deletions

View File

@@ -12,7 +12,7 @@ Samsara is a Windows Server and enterprise Linux retirement assessment tool. Des
- `samsara/models`: reserved for typed collection models.
- `samsara/assets`: labeled synthetic fixtures.
- `schemas`: versioned collection JSON contract.
- `powershell`: Windows collection requirements; scripts pending.
- `powershell`: Windows PowerShell 5.1 local inventory modules, shared safe-error helpers and JSON driver.
- `tests`: core, parsing, detection, worker, UI and export tests.
## Implemented
@@ -23,10 +23,14 @@ Linux collection provides read-only OS, service, timer calendar, system cron, TC
## Remaining phases
1. Independent Windows inventory scripts for system/roles, services, TCP/processes, tasks, registry software, storage/shares and public certificate metadata. Do not use Win32_Product. Optional AD enrichment must not become a prerequisite.
1. Validate the implemented local Windows inventory on authorized Server hosts (2016/2019/2022/2025) before marking the milestone complete. Synthetic Windows contracts pass; native execution remains pending. Optional AD enrichment must not become a prerequisite.
2. Authorized Windows execution-host remoting and Linux SSH transport, explicit targets/authentication, host verification, bounded output, timeouts and cancellation. No infrastructure configuration.
3. Expand Linux inventory for user schedulers and remaining cron/anacron coverage, identities, share exports, disk usage and application-specific public certificates with least-privilege access.
4. Validate OS-specific application/critical infrastructure rules, observed versus inferred relationships and historical/manual verification workflows. No automatic retirement approval.
5. Production schemas, redaction, Windows/RHEL platform testing, packaging and signed releases.
The original empty repository had no existing application or project instructions. All current collection is local or offline; no enterprise targets are contacted in development.
## Windows local collection milestone
Added independent read-only PowerShell modules and the local Python backend, without replacing the existing application. OS identity is accepted only for known Server build/product-type combinations. The existing QThread routes Windows auto-detect/profile choices to the backend and retains the same result, history and reporting flow. Python runs each fixed local section in a separate supervised PowerShell process, with cancellation, per-section/overall budgets, output bounds and cleanup. Per-check UTC timestamps, sanitized errors, scope and permission limitations extend schema v1 additively; old fixtures remain valid. The real-host validation tool produces full private evidence and a separate metadata-only summary for review. Remote Windows collection is not part of this milestone.