In progress
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

This commit is contained in:
Yaojia Wang
2025-11-03 11:51:02 +01:00
parent 24fb646739
commit fe8ad1c1f9
101 changed files with 26471 additions and 250 deletions

View File

@@ -0,0 +1,190 @@
# 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
### Option 1: User Secrets (Recommended for Development)
This is the **most secure** method for local development:
```bash
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:
```json
{
"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:
```bash
# 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:
```csharp
// 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
```bash
cd colaflow-api
dotnet clean
dotnet restore
dotnet build
```
**Expected:** No license warnings in the build output.
### 2. Run the API
```bash
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
- Purchase from: https://www.mediator.dev/licensing
- Contact: license@mediator.dev
### AutoMapper License
- Purchase from: https://www.automapper.org/
- Contact: support@automapper.org
## 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