elsa-core/src/apps/Elsa.Server.Web/appsettings.json
Sipke Schoorstra 541218a37f
Add ingress rate limiting hooks (#7512)
* Add ingress rate limiting hooks

* Fix ingress rate limiting middleware setup

* Harden rate limiter policy validation

* Preserve routed endpoints during rate limiting

* Address rate limiting review feedback

* Address rate limiting Copilot feedback

* Register rate limiter services for external policies

* Address rate limiting review comments

* Keep rate limiter service detection best effort

* Address rate limiting review comments

* Remove brittle rate limiter validation

* Address rate limiting review feedback

* Address rate limiting nullable review

* Address rate limiting review feedback

* Assign ingress rate limit policies when enabled

* Refine ingress rate limiting middleware cleanup

* Address rate limiting review feedback

* Align rate limiting review feedback

* Clarify rate limiting policy semantics

* Stabilize rate limiting exception tests

* Fix rate limiting endpoint matching default
2026-05-22 00:13:11 +02:00

109 lines
2.4 KiB
JSON

{
"Logging": {
"LogLevel": {
"Default": "Warning",
"Microsoft.Hosting.Lifetime": "Information",
"Elsa": "Warning",
"Elsa.Workflows.ActivityRegistry": "Error",
"Elsa.Server.Web.ActivityHosts": "Information"
}
},
"HostBuilder": {
"reloadConfigOnChange": true
},
"AllowedHosts": "*",
"Multitenancy": {
"Tenants": [
{
"Id": null,
"Name": "Default",
"Configuration": {
"Http": {
"Prefix": "",
"Host": "localhost:5001"
},
"ConnectionStrings": {
"Sqlite": "Data Source=App_Data/elsa.sqlite.db;Cache=Shared;"
}
}
},
{
"Id": "tenant-1",
"Name": "Tenant 1",
"Configuration": {
"Http": {
"Prefix": "tenant-1",
"Host": "localhost:5001"
},
"ConnectionStrings": {
"Sqlite": "Data Source=App_Data/elsa.sqlite.db;Cache=Shared;"
}
}
},
{
"Id": "tenant-2",
"Name": "Tenant 2",
"Configuration": {
"Http": {
"Prefix": "tenant-2",
"Host": "localhost:5001"
},
"ConnectionStrings": {
"Sqlite": "Data Source=App_Data/elsa.sqlite.db;Cache=Shared;"
}
}
}
]
},
"Http": {
"BaseUrl": "https://localhost:5001",
"BasePath": "/workflows",
"ApiRoutePrefix": "elsa/api",
"AvailableContentTypes": [
"application/json",
"application/xml",
"text/plain",
"text/html"
]
},
"IngressRateLimiting": {
"Enabled": false,
"ApiPermitLimit": 120,
"ApiWindowSeconds": 60,
"ApiQueueLimit": 0,
"HttpWorkflowPermitLimit": 60,
"HttpWorkflowWindowSeconds": 60,
"HttpWorkflowQueueLimit": 0
},
"Identity": {
"Tokens": {
"SigningKey": "CHANGE_ME_TO_A_SECURE_RANDOM_KEY",
"AccessTokenLifetime": "1:00:00:00",
"RefreshTokenLifetime": "7:00:00:00"
},
"Roles": [
{
"Id": "admin",
"Name": "Administrator",
"Permissions": [
"*"
],
"TenantId": "default"
}
]
},
"Scripting": {
"CSharp": {
"AllowHostCodeExecution": false
},
"Python": {
"AllowHostCodeExecution": true,
"PythonDllPath": "",
"Scripts": [
"def greet(name): return f'Hello {name}!'",
"def say_hello_world(): return greet('World')"
]
}
}
}