D365FO Deploy Portal — New Version: Bidirectional Conversion, License Injection, Parallel Deploy, REST API
February 11, 2026
by SIMS Tech7 min readD365FO Deploy Portal — New Version: Bidirectional Conversion, License Injection, Parallel Deploy
We're excited to announce a major update to D365FO Deploy Portal — our web-based tool for deploying Microsoft Dynamics 365 Finance & Operations packages to Power Platform and Dataverse environments.
This release transforms Deploy Portal into a full automation platform — with bidirectional LCS↔Unified conversion, license injection into Unified packages, parallel PAC CLI deployment, Unified package merge, REST API, CLI, and CI/CD pipeline integration.
What's New
Bidirectional LCS↔Unified conversion, license injection into Unified packages, parallel PAC CLI deployment, Unified package merge, full REST API with Swagger, CLI for headless conversion, and CI/CD pipeline integration.
Why This Update Matters
The original Deploy Portal solved a clear pain point: replacing manual command-line deployment with a browser-based GUI. But teams told us they need more:
- D365FO developers needed bidirectional conversion (LCS→Unified and Unified→LCS), license injection, and package merging for both formats
- DevOps engineers wanted parallel deployment to all environments at once, not sequential
- Release managers needed CI/CD pipeline integration and REST API access
- Technical Delivery Managers needed API-level access and Unified package merge for custom automation
This release addresses all of these needs.
New Feature: Bidirectional Conversion — LCS↔Unified
Convert in Both Directions
Convert LCS packages to Unified format for Power Platform deployment — or convert Unified packages back to LCS format when you need the original format for LCS-based workflows.
Both directions are available from:
- Web UI — select a package, click Convert, choose the target format
- REST API —
POST /api/packages/{id}/convertwith format parameter - CLI —
docker run --rm -v /path:/data vglu/d365fo-deploy-portal:latest convert /data/input.zip /data/output.zip
New Feature: License Injection into Unified Packages
Put License Into Unified Package
Inject license files directly into Unified packages before deployment. No manual ZIP manipulation, no XML editing — upload the license, select the target package, and the tool embeds it automatically.
Available via the web UI and REST API — perfect for automating license management in deployment workflows.
New Feature: Parallel PAC CLI Deployment
All Environments Deploy at the Same Time
Select multiple target environments and click Deploy — PAC CLI runs in parallel to all selected environments simultaneously. No sequential waiting. If you have 10 environments, all 10 deploy at the same time.
Real-time log streaming via SignalR shows progress for each environment independently — monitor all parallel deployments from a single dashboard.
New Feature: Unified Package Merge
Merge LCS and Unified Packages
Package merging now works for both LCS and Unified package types. Select 2+ packages of either format and combine them into a single merged package. Perfect for ISV modules that need to be deployed together.
New Feature: Full REST API with Swagger
Every Operation Available via HTTP
The portal now exposes a complete REST API — the same operations available in the web UI are now accessible from any HTTP client, script, or pipeline.
Available API operations:
- List packages —
GET /api/packages— retrieve all uploaded packages with metadata - Upload package —
POST /api/packages— upload LCS, Unified, or any ZIP package - Convert LCS→Unified —
POST /api/packages/{id}/convert— convert LCS package to Unified format - Convert Unified→LCS —
POST /api/packages/{id}/convert-to-lcs— convert Unified package to LCS format - Merge packages —
POST /api/packages/merge— combine multiple LCS or Unified packages into one - Inject license —
POST /api/packages/{id}/put-license— inject license file into Unified package - Download package —
GET /api/packages/{id}/download— download the original or converted package
Interactive API documentation is available at /swagger — try endpoints directly in the browser, see request/response schemas, copy curl commands.
New Feature: CLI for Headless Conversion
Convert Without the Web Server
Run the Docker container or .NET app with the convert command to convert packages in either direction (LCS↔Unified) — no web UI, no browser, just input and output.
Docker CLI example:
docker run --rm \
-v /path/to/packages:/data \
vglu/d365fo-deploy-portal:latest \
convert /data/MyLcsPackage.zip /data/MyUnifiedPackage.zip
.NET CLI example:
dotnet run -- convert ./MyLcsPackage.zip ./MyUnifiedPackage.zip
This is especially useful for:
- Build agents — convert packages as a pipeline step without running the web server
- Local scripts — quick one-off conversion on a developer's machine
- Automated workflows — chain conversion with other tools in bash/PowerShell scripts
New Feature: CI/CD Pipeline Integration
Fits Into Your Existing Pipelines
Call the REST API from Azure DevOps, GitLab CI, GitHub Actions, or any CI/CD system. Convert packages as a pipeline step — upload artifact, convert to Unified, download result.
Azure DevOps pipeline example (conceptual):
# Upload build artifact to Deploy Portal
curl -X POST http://deploy-portal:5000/api/packages \
-F "file=@$(Build.ArtifactStagingDirectory)/package.zip"
Convert LCS → Unified
curl -X POST http://deploy-portal:5000/api/packages/{id}/convert
Download converted Unified package
curl -o unified-package.zip http://deploy-portal:5000/api/packages/{id}/download
This pattern works with any CI/CD system — GitLab CI, GitHub Actions, Jenkins, Octopus Deploy — any tool that can make HTTP requests.
New Feature: License Management Within Packages
View Licenses
See all licenses embedded within D365FO packages through a visual interface — no more digging through XML files manually.
Refresh Licenses
Update license information within packages via the UI or REST API. Keep license data current without repackaging manually.
Recap: What D365FO Deploy Portal Does
For those new to Deploy Portal, here's the full picture. Deploy Portal replaces the manual D365FO package deployment pipeline:
Before: Download from LCS → manual conversion → PAC CLI auth → deploy to env #1 → wait → repeat for env #2, #3, #4...
After: Upload → Convert (LCS↔Unified) → Inject License → Select environments → Parallel Deploy → Watch real-time logs
Core capabilities:
- Drag-and-drop upload with auto-detection of LCS, Unified, and other package types
- Bidirectional LCS↔Unified converter — convert in both directions from UI, API, or CLI
- License injection — inject license files into Unified packages
- Parallel PAC CLI deployment — deploy to all Dataverse environments simultaneously, in parallel
- Package merging (LCS & Unified) — combine multiple packages of either format into one
- Real-time log streaming via SignalR — watch every PAC CLI line live
- Full deployment history — searchable, filterable audit trail
- Azure AD Service Principal — non-interactive authentication, encrypted secrets
- Bulk environment import — paste Setup-ServicePrincipal.ps1 output to import 10+ environments
Three ways to use it:
- Web UI — browser-based dashboard for interactive use
- REST API — integrate from scripts, pipelines, or custom tools (
/swaggerfor docs) - CLI — headless conversion via Docker or .NET command line
Who Benefits From This Update
👨💻 D365FO Developers
Use the web UI for interactive deployments. Convert bidirectionally (LCS↔Unified), inject licenses into Unified packages, merge LCS or Unified packages, and deploy in parallel to all environments at once.
⚙️ DevOps Engineers
Integrate bidirectional LCS↔Unified conversion into Azure DevOps, GitLab CI, or GitHub Actions pipelines. Parallel deployment to all environments. REST API for full automation. CLI mode for build agents.
📋 Release Managers
Centralized deployment history across all Power Platform environments. Know who deployed what, where, when — with full log output. Plan releases with confidence using real-time deployment visibility.
🏗️ Technical Delivery Managers
Enterprise-grade deployment automation with encrypted credentials, Service Principal auth, and structured logging. Parallel deployment, Unified package merge, and license injection. API-level access for custom integration with your project's toolchain.
Quick Start
Getting started takes one command:
docker run -d -p 5000:5000 --name d365FOportal vglu/d365fo-deploy-portal:latest
Open http://localhost:5000 — you're in. Add environments, upload packages, and start deploying.
For API documentation, visit http://localhost:5000/swagger.
No Docker? Download the self-contained Windows build — no .NET installation required.
Learn More
Visit the D365FO Deploy Portal product page for complete documentation, API reference, and deployment options.
For licensing, pricing, or a demo:
- 📧 Email: vhlu@sims-service.com
- 🌐 Website: sims-service.com
- 💼 LinkedIn: Connect with us
🎯 Deploy Portal: bidirectional conversion, license injection, parallel deploy, full API.
One tool. LCS↔Unified. Inject licenses. Merge packages. Parallel deploy. Web UI + REST API + CLI.
D365FO Deploy Portal is proprietary software by SIMS tech. Contact us for licensing and deployment options.