Setup and Installation
Solution Components
API Builder 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 │ │ API Builder │ │ Process Orchestrator │ │
│ │ (Optional) │ │ (Runtime) │ │ (Optional) │ │
│ └─────────────────┘ └────────┬────────┘ └─────────────────┘ │
│ │ │
│ ▼ │
│ ┌─────────────────┐ │
│ │ API Builder │ │
│ │ Studio │ │
│ │ (Designer) │ │
│ └─────────────────┘ │
│ │
└─────────────────────────────────────────────────────────────────────────────────┘
Solution Details
| Solution | Description | Dependency |
|---|---|---|
| Flowon Base | Core platform components shared across all Flowon products | None (install first) |
| API Builder | The API runtime engine that dynamically generates REST endpoints | Flowon Base |
| API Builder Studio | The visual designer for configuring API endpoints | Flowon Base, API Builder |
Import Order
| Step | Solution | Required |
|---|---|---|
| 1 | Flowon Base | Yes |
| 2 | API Builder | Yes |
| 3 | API Builder Studio | Design environments only |
Environment Recommendations
| Environment | Flowon Base | API Builder | API Builder Studio |
|---|---|---|---|
| Development | ✅ Required | ✅ Required | ✅ Required |
| Test/UAT | ✅ Required | ✅ Required | ⚠️ Optional |
| Production | ✅ Required | ✅ Required | ❌ Not Required |
Security Configuration
API Builder Customizer Security Role
When you import the API Builder solutions, a security role called API Builder Customizer is automatically created. This role grants permissions to design and manage API configurations.
Deployment
API Builder 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 API Builder 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
API Builder 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 API Builder 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=..."
}
}