Files
ColaFlow/colaflow-api/LICENSE-KEYS-SETUP.md
Yaojia Wang fe8ad1c1f9
Some checks failed
Code Coverage / Generate Coverage Report (push) Has been cancelled
Tests / Run Tests (9.0.x) (push) Has been cancelled
Tests / Docker Build Test (push) Has been cancelled
Tests / Test Summary (push) Has been cancelled
In progress
2025-11-03 11:51:02 +01:00

4.8 KiB

License Keys Setup Guide

This document explains how to configure license keys for MediatR 13.x and AutoMapper 15.x.

Overview

ColaFlow API uses commercial versions of:

  • MediatR 13.1.0 - Requires a license key
  • AutoMapper 15.1.0 - Requires a license key (if used)

Configuration Methods

This is the most secure method for local development:

cd colaflow-api/src/ColaFlow.API

# Set MediatR license key
dotnet user-secrets set "MediatR:LicenseKey" "your-actual-mediatr-license-key-here"

# Set AutoMapper license key (if you use AutoMapper)
dotnet user-secrets set "AutoMapper:LicenseKey" "your-actual-automapper-license-key-here"

Advantages:

  • Secrets are stored outside the project directory
  • Never accidentally committed to Git
  • Scoped per-user, per-project

Option 2: appsettings.Development.json (Quick Setup)

For quick local setup, you can directly edit the configuration file:

  1. Open colaflow-api/src/ColaFlow.API/appsettings.Development.json

  2. Replace the placeholder values:

{
  "MediatR": {
    "LicenseKey": "your-actual-mediatr-license-key-here"
  },
  "AutoMapper": {
    "LicenseKey": "your-actual-automapper-license-key-here"
  }
}

Warning: Be careful not to commit actual license keys to Git!

Option 3: Environment Variables (Production)

For production environments, use environment variables:

# Windows (PowerShell)
$env:MediatR__LicenseKey = "your-actual-mediatr-license-key-here"
$env:AutoMapper__LicenseKey = "your-actual-automapper-license-key-here"

# Linux/Mac (Bash)
export MediatR__LicenseKey="your-actual-mediatr-license-key-here"
export AutoMapper__LicenseKey="your-actual-automapper-license-key-here"

Note: Use double underscores __ to represent nested configuration keys.

Option 4: Azure Key Vault (Production - Most Secure)

For production on Azure, store license keys in Azure Key Vault:

// In Program.cs
builder.Configuration.AddAzureKeyVault(
    new Uri($"https://{keyVaultName}.vault.azure.net/"),
    new DefaultAzureCredential()
);

Then create secrets in Azure Key Vault:

  • MediatR--LicenseKey
  • AutoMapper--LicenseKey

Verification

After setting up the license keys, verify the configuration:

1. Build the project

cd colaflow-api
dotnet clean
dotnet restore
dotnet build

Expected: No license warnings in the build output.

2. Run the API

cd src/ColaFlow.API
dotnet run

Expected: API starts without license warnings in the console.

3. Check the logs

Look for startup logs - there should be no warnings about missing or invalid license keys.

Troubleshooting

Warning: "No license key configured for MediatR"

Solution: Ensure the license key is correctly configured using one of the methods above.

Warning: "Invalid license key for MediatR"

Possible causes:

  1. The license key is incorrect or expired
  2. The license key contains extra whitespace (trim it)
  3. The license key is for a different version

Solution: Verify the license key with the vendor.

Configuration not loading

Check:

  1. User secrets are set for the correct project
  2. appsettings.Development.json is valid JSON
  3. Environment variables use double underscores __ for nested keys
  4. The application is running in the expected environment (Development/Production)

Getting License Keys

MediatR License

AutoMapper License

Security Best Practices

  1. Never commit license keys to Git

    • Use .gitignore to exclude sensitive files
    • Use User Secrets for local development
    • Use environment variables or Key Vault for production
  2. Rotate keys regularly

    • Update license keys when they expire
    • Remove old keys from all environments
  3. Limit access

    • Only share keys with authorized team members
    • Use separate keys for development and production if possible
  4. Monitor usage

    • Track which applications use which license keys
    • Audit key usage regularly

Configuration Priority

.NET configuration uses the following priority (highest to lowest):

  1. Command-line arguments
  2. Environment variables
  3. User secrets (Development only)
  4. appsettings.{Environment}.json
  5. appsettings.json

Later sources override earlier ones.

Support

If you encounter issues with license key configuration:

  1. Check this guide for troubleshooting steps
  2. Verify your license key validity with the vendor
  3. Contact the development team for assistance

Last Updated: 2025-11-03 ColaFlow Version: 1.0.0 MediatR Version: 13.1.0 AutoMapper Version: 15.1.0