Subchapter 25.31
prepare/references/naming-patterns.mdMarkdown5 KBView on GitHub
Per-resource naming rules for AppOnboard-generated Azure resources. Apply in Step 7 (Generate naming).
Reference: Azure naming conventions (opens in a new tab) — link, don’t duplicate. Check docs for updates.
Also bundled
PHASEdeploy{abbreviation}-{resourcePrefix}Where resourcePrefix = {project}-{env}-{suffix} (generated once in prepare Step 7, stored in prepare-plan.json.naming.resourcePrefix).
{project} — app name from context.json.app.name (lowercase, alphanumeric + hyphens){env} — dev / staging / prod (from intent or default dev){suffix} — first 4 chars of session UUID (e.g., a1d5). Generated once, stored in naming.suffix{abbreviation} — short service prefix from the table below (e.g., app, kv, rg)Examples with resourcePrefix = myapp-dev-a1d5:
rg-myapp-dev-a1d5app-myapp-dev-a1d5kv-myapp-dev-a1d5stmyappdeva1d5 (alphanumeric only)⛔ No redundancy. The resource name is
{abbr}-{resourcePrefix}— NOT{project}-{abbr}-{project}-{env}-{suffix}. The project name appears ONCE in the prefix.⛔ Scaffold reads naming from the plan — does NOT generate or modify resource names.
Override via context.json.overrides[] with key: "naming.pattern".
| Resource | Abbreviation | Max Length | Allowed Chars | Globally Unique? | Example |
|---|---|---|---|---|---|
| Resource Group | rg | 90 | Alphanumeric, hyphens, underscores, periods, parens | No (but include suffix to avoid cross-session collisions) | rg-myapp-dev-a1d5 |
| App Service | app | 60 | Alphanumeric, hyphens | Yes | app-myapp-dev-a1d5 |
| Container App | ca | 32 | Lowercase alphanumeric, hyphens | No (within env) | ca-myapp-dev-a1d5 |
| Container Registry | cr | 50 | Alphanumeric only | Yes | crmyappdeva1d5 |
| Azure SQL Server | sql | 63 | Lowercase alphanumeric, hyphens | Yes | sql-myapp-dev-a1d5 |
| Cosmos DB | cosmos | 44 | Lowercase alphanumeric, hyphens | Yes | cosmos-myapp-dev-a1d5 |
| Storage Account | st | 24 | Lowercase alphanumeric only | Yes | stmyappdeva1d5 |
| Key Vault | kv | 24 | Alphanumeric, hyphens | Yes | kv-myapp-dev-a1d5 |
| Log Analytics | log | 63 | Alphanumeric, hyphens | No (within RG) | log-myapp-dev-a1d5 |
| App Insights | appi | 260 | Most chars | No (within RG) | appi-myapp-dev-a1d5 |
| Service Bus | sb | 50 | Alphanumeric, hyphens | Yes | sb-myapp-dev-a1d5 |
| Functions | func | 60 | Alphanumeric, hyphens | Yes | func-myapp-dev-a1d5 |
| Static Web Apps | swa | 40 | Alphanumeric, hyphens | No (suffix still required — Rule 1) | swa-myapp-dev-a1d5 |
| Redis Cache | redis | 63 | Alphanumeric, hyphens | Yes | redis-myapp-dev-a1d5 |
CAF deviation: Azure Cloud Adoption Framework uses
sbnsfor Service Bus namespace. AppOnboard usessbfor brevity — either is acceptable.
{suffix} — including resource groups. This prevents cross-session naming collisions when the same app is deployed multiple times. The suffix is a 4-char random string generated once per session.('cr' + resourcePrefix).replace(/-/g,'').toLowerCase(), truncate to ≤50 (ACR) / ≤24 (Storage). Worked example: resourcePrefix = bezkoder-dev-18a3 → cr + bezkoderdev18a3 → crbezkoderdev18a3. Copy the pattern; do not spell out the concatenation.{project}: 24 - len(abbreviation) - len(env) - len(suffix) - 3 - 2 (separators + healing reserve). For kv + dev: 10 chars max. The 2-char reserve ensures room for a healing suffix (e.g., edd6 → edd602) on region fallback. Truncation when over budget:
broken-web-app at 10 → broken-web)admin, login, root, test)naming.resources[] in prepare-plan.json with concrete names after validation