flexapp-factory
High-level overview of the private Liquidware FlexApp packaging factory and application server evaluator (feature F24): inspects existing Windows application servers, joins Stratusphere UX / ux-assess telemetry to retire unused software, builds multi-step dependency DAGs, resolves installer media, and drives unattended FlexApp captures and headless smoke tests.
Private Companion RepoPython 3.10+PowerShell 7FlexApp Packaging Automation (FPA)AVD App Attach
Two Connected Jobs
1. Evaluate Existing Application Servers
Discovery & DAG
Export-ServerAppInventory.ps1 + flexapp-factory evaluate
- Deep Endpoint & RDSH Inspection: Collects Windows Registry Uninstall keys (
x64 and WOW6432Node), MSI Installer tables, App-V/MSIX packages, Windows Services, Kernel Drivers (.sys), Scheduled Tasks, COM classes, ODBC DSNs, installed runtimes (VC++, .NET, Java, WebView2), and cached MSIs.
- Telemetry-Driven Retirement: Joins Stratusphere UX /
ux-assess application usage data to separate active applications from unused software (retire).
- 3-Tier Classification & Dependency DAG: Classifies every app into
blocked-or-base-image (drivers, system services, or >80% user share), shared-runtime, or layerable / composite-layer (grouping app-specific runtimes, ODBC DSNs, and Office add-ins into multi-step composite recipes).
- 4-Step Installer Sourcing Cascade: Resolves silent installers in strict priority order:
- Customer media share
- Curated
recipes/catalog.json + Winget / Evergreen
- Server
InstallSource or full-CAB cached MSI
- Actionable Missing Media Checklist deliverable
2. Convert & Run Unattended Captures
Unattended Build
ConvertTo-FlexAppSource.ps1 + compile-queue + Invoke-FlexAppFactory.ps1
- Multi-Format Package Ingestion: Converts existing
.appv, .msix/.msixbundle, .intunewin, SCCM / PSAppDeployToolkit (Deploy-Application.ps1), and .msi/.exe bundles into normalized capture inputs.
- Deterministic Offline Build Queue: Compiles and validates
build-queue.json offline (zero cloud spend in Plan mode) before provisioning or touching any packaging VM.
- Dual Execution Planes: Drives either Single-VM CLI (
fpa-packager.exe + bundler.exe on an ephemeral packaging VM) or the Batch FPA Control Plane (Primary-Service.exe REST API on port 9075 / primary-client.exe).
- Headless Smoke Testing & Manifest Handoff: Runs post-capture verification (
Test-FlexAppPackage.ps1) and emits validated liquidware-ninja-flexapp-package/v1 manifests ready for avd-liquidware to register as AVD App Attach packages.
Public Reference Material in liquidware-ninja
While the flexapp-factory automation engine remains private, the candidate scoring rules (Test-LwFlexAppCandidate), manifest builder (New-LwFlexAppManifest), conflict detector (Get-LwAssignmentConflict), and packaging patterns are open-source in liquidware-ninja:
FlexApp Packaging & Delivery KB
PowerShell Candidate & Manifest Functions
Field Note: Operator-Registered App Attach