Setup and Installation
Solution Components
Logic API is delivered as Dataverse managed solutions. It depends on Flowon Base and can optionally integrate with Logic Composer.
Solution Dependencies
┌─────────────────────────────────────────────────────────────────────────────────────┐
│ SOLUTION DEPENDENCIES │
├─────────────────────────────────────────────────────────────────────────────────────┤
│ │
│ ┌─────────────────────┐ │
│ │ Flowon Base │ │
│ │ (Foundation) │ │
│ └──────────┬──────────┘ │
│ │ │
│ ┌──────────────────┼──────────────────┐ │
│ │ │ │ │
│ ▼ ▼ ▼ │
│ ┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐ │
│ │ Logic Composer │ │ Logic API │ │ Logic Process Orchestrator │ │
│ │ (Optional) │ │ (Runtime) │ │ (Optional) │ │
│ └─────────────────┘ └────────┬────────┘ └─────────────────┘ │
│ │ │
│ ▼ │
│ ┌─────────────────┐ │
│ │ Logic API │ │
│ │ Studio │ │
│ │ (Designer) │ │
│ └─────────────────┘ │
│ │
└─────────────────────────────────────────────────────────────────────────────────────┘
Solution Details
| Solution | Description | Dependency |
|---|---|---|
| Flowon Base | Core platform components shared across all Logic Fabric products | None (install first) |
| Logic API | The API runtime engine that dynamically generates REST endpoints | Flowon Base |
| Logic API Studio | The visual designer for configuring API endpoints | Flowon Base, Logic API |
Import Order
| Step | Solution | Required |
|---|---|---|
| 1 | Flowon Base | Yes |
| 2 | Logic API | Yes |
| 3 | Logic API Studio | Design environments only |
Environment Recommendations
| Environment | Flowon Base | Logic API | Logic API Studio |
|---|---|---|---|
| Development | ✅ Required | ✅ Required | ✅ Required |
| Test/UAT | ✅ Required | ✅ Required | ⚠️ Optional |
| Production | ✅ Required | ✅ Required | ❌ Not Required |
Security Configuration
Logic API Customizer Security Role
When you import the Logic API solutions, a security role called Logic API Customizer is automatically created. This role grants permissions to design and manage API configurations.
Deployment
Logic API can be deployed to any environment that supports .NET 10 runtime. The API runtime is distributed as a NuGet package.
Prerequisites
| Requirement | Details |
|---|---|
| Runtime | .NET 10 |
| Package | Flowon.Xrm.Api.AspNetCore.Rest |
| Source | nuget.org/profiles/Flowon |
Installation
Add the Logic API package to your ASP.NET Core project:
<PackageReference Include="Flowon.Xrm.Api.AspNetCore.Rest" Version="1.1.1" />
Or via .NET CLI:
dotnet add package Flowon.Xrm.Api.AspNetCore.Rest --version 1.1.1
Deployment Options
Logic API can be hosted on any platform supporting .NET 10:
┌──────────────────────────────────────────────────────────────────────┐
│ DEPLOYMENT OPTIONS │
├──────────────────────────────────────────────────────────────────────┤
│ │
│ ┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐ │
│ │ Azure │ │ AWS │ │ On-Premise │ │
│ │ App Service │ │ Lambda/ECS │ │ IIS │ │
│ └─────────────────┘ └─────────────────┘ └─────────────────┘ │
│ │
│ ┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐ │
│ │ Docker │ │ Kubernetes │ │ Linux Service │ │
│ │ Container │ │ Cluster │ │ (systemd) │ │
│ └─────────────────┘ └─────────────────┘ └─────────────────┘ │
│ │
└──────────────────────────────────────────────────────────────────────┘
| Platform | Notes |
|---|---|
| Azure App Service | Native .NET 10 support, easy scaling |
| Azure Container Apps | Container-based deployment with auto-scaling |
| AWS Elastic Beanstalk | Managed .NET hosting |
| AWS ECS/Fargate | Container orchestration |
| Docker | Containerized deployment anywhere |
| Kubernetes | Enterprise container orchestration |
| IIS (Windows) | Traditional Windows hosting |
| Linux (systemd) | Direct Linux service hosting |
Minimal Deployment Example
// Program.cs
using Microsoft.PowerPlatform.Dataverse.Client;
var builder = WebApplication.CreateBuilder(args);
var connectionString = builder.Configuration["Dataverse:ConnectionString"];
// Register Logic API services and the REST server
builder.Services
.AddFlowOnApi(
projectName: "CustomerPortal",
apiName: "CustomerPortalAPI",
sp => new ServiceClient(connectionString))
.AddRestServer();
var app = builder.Build();
app.UseRouting()
.UseAuthentication()
.UseAuthorization()
.UseEndpoints(endpoints => endpoints.UseRestServer());
app.Run();
The project name and API name identify which published API configuration to load from Dataverse. See Runtime for the full hosting model, versioning strategies, user resolution, and Swagger/OpenAPI wiring.
Configuration
Provide the Dataverse connection string via appsettings.json:
{
"Dataverse": {
"ConnectionString": "AuthType=ClientSecret;Url=https://org.crm.dynamics.com;ClientId=...;ClientSecret=..."
}
}