Setup and Installation
Solution Components
FlowOn API is delivered as Dynamics 365 managed solutions. It depends on FlowOn Base and can optionally integrate with FlowOn Logic.
Solution Dependencies
┌─────────────────────────────────────────────────────────────────────┐
│ SOLUTION DEPENDENCIES │
├─────────────────────────────────────────────────────────────────────┤
│ │
│ ┌─────────────────────┐ │
│ │ FlowOn Base │ │
│ │ (Foundation) │ │
│ └──────────┬──────────┘ │
│ │ │
│ ┌──────────────────┼──────────────────┐ │
│ │ │ │ │
│ ▼ ▼ ▼ │
│ ┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐ │
│ │ FlowOn Logic │ │ FlowOn API │ │ FlowOn BPM │ │
│ │ (Optional) │ │ (Runtime) │ │ (Optional) │ │
│ └─────────────────┘ └────────┬────────┘ └─────────────────┘ │
│ │ │
│ ▼ │
│ ┌─────────────────┐ │
│ │ FlowOn API │ │
│ │ Studio │ │
│ │ (Designer) │ │
│ └─────────────────┘ │
│ │
└─────────────────────────────────────────────────────────────────────┘
Solution Details
| Solution | Description | Dependency |
|---|---|---|
| FlowOn Base | Core platform components shared across all FlowOn products | None (install first) |
| FlowOn API | The API runtime engine that dynamically generates REST endpoints | FlowOn Base |
| FlowOn API Studio | The visual designer for configuring API endpoints | FlowOn Base, FlowOn API |
Import Order
| Step | Solution | Required |
|---|---|---|
| 1 | FlowOn Base | Yes |
| 2 | FlowOn API | Yes |
| 3 | FlowOn API Studio | Design environments only |
Environment Recommendations
| Environment | FlowOn Base | FlowOn API | FlowOn API Studio |
|---|---|---|---|
| Development | ✅ Required | ✅ Required | ✅ Required |
| Test/UAT | ✅ Required | ✅ Required | ⚠️ Optional |
| Production | ✅ Required | ✅ Required | ❌ Not Required |
Security Configuration
FlowOn API Customizer Security Role
When you import the FlowOn API solutions, a security role called FlowOn API Customizer is automatically created. This role grants permissions to design and manage API configurations.
Deployment
FlowOn API can be deployed to any environment that supports .NET 9 runtime. The API runtime is distributed as a NuGet package.
Prerequisites
| Requirement | Details |
|---|---|
| Runtime | .NET 9 |
| Package | FlowOn.Xrm.Api.AspNetCore.Rest |
| Source | nuget.org/profiles/FlowOn |
Installation
Add the FlowOn API package to your ASP.NET Core project:
<PackageReference Include="FlowOn.Xrm.Api.AspNetCore.Rest" Version="1.0.218" />
Or via .NET CLI:
dotnet add package FlowOn.Xrm.Api.AspNetCore.Rest --version 1.0.218
Deployment Options
FlowOn API can be hosted on any platform supporting .NET 9:
┌─────────────────────────────────────────────────────────────────────┐
│ 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 9 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 FlowOn.Xrm.Api.AspNetCore.Rest;
var builder = WebApplication.CreateBuilder(args);
// Add FlowOn API services
builder.Services.AddFlowOnApi(options =>
{
options.ConnectionString = builder.Configuration["Dataverse:ConnectionString"];
});
var app = builder.Build();
// Map FlowOn API endpoints
app.MapFlowOnApi();
app.Run();
Configuration
Configure the API runtime via appsettings.json:
{
"Dataverse": {
"ConnectionString": "AuthType=ClientSecret;Url=https://org.crm.dynamics.com;ClientId=...;ClientSecret=..."
},
"FlowOnApi": {
"ApiName": "CustomerPortalAPI",
"Version": "1.0"
}
}