This setup supports FlowTime development on aiwf v3. For workflow guidance, see
CLAUDE.mdand theaiwf-extensionsplugin.
To avoid port conflicts and ensure stable development, each service has a dedicated port:
| Service | Port | Purpose |
|---|---|---|
| FlowTime API | 8080 |
Main FlowTime engine API |
| FlowTime UI | 5219 |
Blazor WebAssembly UI |
| FlowTime.Sim API | 8081 |
Synthetic data simulation API (separate repo) |
cd /workspaces/flowtime-vnext
dotnet run --project src/FlowTime.API --urls http://localhost:8080cd /workspaces/flowtime-vnext
dotnet run --project ui/FlowTime.UI --urls http://localhost:5219cd /workspaces/flowtime-vnext
dotnet run --project src/FlowTime.Cli -- run examples/hello/model.yaml --out out/hello --verbose- Command-line arguments (highest priority)
- Environment variables
- Configuration files (
appsettings.json,appsettings.Development.json) - Defaults
Environment Variables:
export ASPNETCORE_URLS="http://localhost:8080"
export ASPNETCORE_ENVIRONMENT="Development"Configuration File (src/FlowTime.API/appsettings.Development.json):
{
"Urls": "http://localhost:8080",
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft.AspNetCore": "Warning"
}
}
}Port Configuration (ui/FlowTime.UI/Properties/launchSettings.json):
{
"profiles": {
"http": {
"commandName": "Project",
"dotnetRunMessages": true,
"launchBrowser": true,
"applicationUrl": "http://localhost:5219",
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
}
}
}
}API Clients (ui/FlowTime.UI/Program.cs):
- FlowTime API:
http://localhost:8080(for engine operations) - FlowTime.Sim API:
http://localhost:8081(for simulation operations)
- FlowTime data:
/workspaces/flowtime-vnext/data/- Runs:
/workspaces/flowtime-vnext/data/run_*/ - Artifacts: JSON files and series data
- Runs:
- Examples:
/workspaces/flowtime-vnext/examples/ - Output:
/workspaces/flowtime-vnext/out/(configurable via--outparameter)
Environment Variable:
export FLOWTIME_OUTPUT_DIR="/custom/output/path"Command Line:
dotnet run --project src/FlowTime.Cli -- run model.yaml --out /custom/output/pathThe repository includes VS Code launch configurations in .vscode/launch.json:
- ".NET Launch FlowTime.API" - Starts API on http://localhost:8080
- ".NET Launch FlowTime.UI" - Starts UI on http://localhost:5219
- ".NET Launch FlowTime.Cli (hello)" - Runs CLI with hello example
Available tasks in .vscode/tasks.json:
- build -
dotnet build - test -
dotnet test --nologo - run: hello - Runs CLI with hello example
dotnet run --project src/FlowTime.API --urls http://localhost:8080dotnet run --project ui/FlowTime.UI --urls http://localhost:5219# Run a simulation
dotnet run --project src/FlowTime.Cli -- run examples/hello/model.yaml --out out/hello --verbose
# View results
ls out/hello/- API: http://localhost:8080
- UI: http://localhost:5219
- API Health Check: http://localhost:8080/healthz
- Ensure only one service runs per port
- Use
lsof -i :8080andlsof -i :5219to check port usage - Kill conflicting processes:
lsof -ti:8080 | xargs kill -9
# Clean and rebuild
dotnet clean
dotnet build
# Run tests
dotnet test --nologo# FlowTime API
curl http://localhost:8080/healthz
# FlowTime UI (check if responding)
curl -I http://localhost:5219- Check CLI logs for "Created artifacts at: {path}" messages
- Verify output directory permissions
- Use
--verboseflag for detailed CLI output
# Check environment variables
env | grep ASPNETCORE
env | grep FLOWTIME
# Verify configuration files
cat src/FlowTime.API/appsettings.Development.json
cat ui/FlowTime.UI/Properties/launchSettings.jsonIf you're also running FlowTime.Sim (separate repository), the UI can connect to both services:
# In separate terminal/repo
cd /workspaces/flowtime-sim-vnext
dotnet run --project src/FlowTime.Sim.Service --urls http://localhost:8081The UI uses a feature flag to switch between FlowTime API and FlowTime.Sim API. Check ui/FlowTime.UI/Services/FeatureFlags.cs for current configuration.