From 65071525eba6f14a22e58acee49a8fa91b685310 Mon Sep 17 00:00:00 2001 From: enisn Date: Thu, 19 Feb 2026 20:57:20 +0300 Subject: [PATCH] Remove token config section; renumber items Delete the standalone "Token-Based Configuration Magic" and the duplicate "Tenant Resolution Priority Chain" sections from the article. Update the feature index/table to replace the Token Replacement entry with Tenant Resolution, and adjust the numbering/labels for Background Job Queue and Widgets so the list stays consistent. This cleans up duplicated content and fixes the section ordering. --- .../post.md | 38 ++----------------- 1 file changed, 4 insertions(+), 34 deletions(-) diff --git a/docs/en/Community-Articles/2026-02-19-ABP-Framework-Hidden-Magic/post.md b/docs/en/Community-Articles/2026-02-19-ABP-Framework-Hidden-Magic/post.md index 5a9e74e19c..6eb19b44bc 100644 --- a/docs/en/Community-Articles/2026-02-19-ABP-Framework-Hidden-Magic/post.md +++ b/docs/en/Community-Articles/2026-02-19-ABP-Framework-Hidden-Magic/post.md @@ -427,23 +427,6 @@ All configured automatically. --- -## 25. Token-Based Configuration Magic - -**The Magic:** Many settings support tokens that are resolved at runtime: - -```csharp -// These tokens are automatically replaced -"ConnectionStrings": { - "Default": "Server=localhost;Database=MyApp_{TENANT_ID}" -} -``` - -- `{TENANT_ID}` - Replaced with current tenant ID -- `{USER_ID}` - Replaced with current user ID -- `{CURRENT_TIME}` - Replaced with current datetime - ---- - ## 26. Localization Automatic Discovery **The Magic:** All `.json` localization files in the application are automatically discovered and loaded: @@ -514,19 +497,7 @@ No configuration needed beyond the package reference! --- -## 31. Tenant Resolution Priority Chain - -**The Magic:** ABP automatically resolves tenants in this order (first match wins): - -1. **Route** - From URL path (`/api/v1/[tenant]/...`) -2. **Query String** - From `__tenant` query parameter -3. **Header** - From `__tenant` header -4. **Cookie** - From `__tenant` cookie -5. **Subdomain** - From URL subdomain (`tenant.domain.com`) - ---- - -## 32. Background Job Queue Magic +## 31. Background Job Queue Magic **The Magic:** Background jobs are automatically retried with exponential backoff: @@ -569,14 +540,13 @@ No configuration needed beyond the package reference! | 22 | **Distributed Events** | Outbox pattern | Reliable messaging | | 23 | **Virtual Files** | Module merging | Embedded resources as virtual | | 24 | **JSON Settings** | Pre-configured | CamelCase, null handling | -| 25 | **Token Replacement** | Runtime resolution | `{TENANT_ID}`, `{USER_ID}` | +| 25 | **Tenant Resolution** | Multi-source chain | Route → Query → Header → Cookie → Subdomain | | 26 | **Localization** | Auto-discovery | JSON files in /Localization | | 27 | **API Versioning** | Default v1.0 | URL, header, query support | | 28 | **Health Checks** | Auto-registered | /health, /health/ready, /health/live | | 29 | **Swagger** | Auto-generated | With authorization support | -| 30 | **Tenant Resolution** | Multi-source chain | Route → Query → Header → Cookie | -| 31 | **Job Retries** | Auto with backoff | 3 retries default | -| 32 | **Widgets** | Auto-discovery | Implement `IWidget` | +| 30 | **Background Job Queue** | Auto with backoff | 3 retries default | +| 31 | **Widgets** | Auto-discovery | Implement `IWidget` | ---