Edit

Resource naming guidelines for Microsoft Discovery

Microsoft Discovery includes multiple resource types, some with dependencies on resources in other resource providers. By understanding resource naming constraints, you can improve clarity, prevent conflicts, enable automation, and support governance and security.

Distinguish Azure Resource Manager (ARM) resource names from onboarding-tool inputs and data-plane names. They can have different limits.

General naming guidelines

Guideline Recommendation
Uniqueness Check the resource's actual scope. Projects are children of a workspace; storage containers are resource-group resources.
Predictability Use a consistent pattern for environment, purpose, and ownership.
Case Prefer lowercase for scripts and endpoint names. The ARM API doesn't impose a universal lowercase-only constraint.
Characters Use ASCII letters and digits, with hyphens where the resource permits them. Don't use spaces or other punctuation.
Length Follow the limits for the API, onboarding tool, and backing service used by your deployment.
Separators Avoid consecutive hyphens. The recommended regexes below reject them; this isn't an additional ARM API restriction.

Managed resource group naming conventions

When certain Discovery resources are created, corresponding Managed Resource Groups (MRGs) are automatically provisioned to host the service components required to support those resources. The following naming conventions apply to these MRGs:

Resource type Naming convention Example
Microsoft Discovery Workspace mrg-dwsp-<customer-provided-name>-<6-char-random-sequence> mrg-dwsp-testworkspace-abcdef
Microsoft Discovery Bookshelf mrg-dbksf-<customer-provided-name>-<6-char-random-sequence> mrg-dbksf-testbookshelf-lmnopq
Microsoft Discovery Supercomputer mrg-dscmp-<customer-provided-name>-<6-char-random-sequence> mrg-dscmp-testsc-abcxyz

These names are generated by the service, not selected through the onboarding name fields.

Resource-specific naming rules

The 2026-06-01 ARM API specification specifies ^[a-zA-Z0-9-]{3,24}$ for workspaces, projects, supercomputers, node pools, tools, bookshelves, chat model deployments, storage containers, and storage assets. This pattern permits uppercase letters, digits at the start, leading or trailing hyphens, and consecutive hyphens. It doesn't establish endpoint availability or acceptance by every backing service. Check the versioned resource reference when using another API version.

The following recommended patterns combine the onboarding configuration schema's length limits with character and start/end conventions for local validation. The schema defines these input lengths but doesn't define character regexes for the name fields. The character, start/end, and separator restrictions below are recommendations, not additional ARM rules or verified data-plane limits. Bookshelf and chat model deployment lengths use the ARM limits because they don't have corresponding onboarding name fields.

Resource Length Characters Start and end Recommended regex Examples
Workspace 3-24 Lowercase letters, digits, hyphens Start with a letter; end with a letter or digit ^(?!.*--)[a-z][a-z0-9-]{1,22}[a-z0-9]$ workspace01, workspace-main
Project 3-12 Lowercase letters, digits, hyphens Start with a letter; end with a letter or digit ^(?!.*--)[a-z][a-z0-9-]{1,10}[a-z0-9]$ ai-project, adhesives01
Supercomputer 3-24 Lowercase letters, digits, hyphens Start with a letter; end with a letter or digit ^(?!.*--)[a-z][a-z0-9-]{1,22}[a-z0-9]$ quantum-supercomputer, supercomputer01
Node pool 3-12 Lowercase letters and digits; no hyphens Start with a letter; end with a letter or digit ^[a-z][a-z0-9]{2,11}$ nodepool01, gpunodes
Tool 3-24 Uppercase or lowercase letters, digits, hyphens Start with a letter; end with a letter or digit ^(?!.*--)[A-Za-z][A-Za-z0-9-]{1,22}[A-Za-z0-9]$ adft-tool, mol-toolkit
Agent 3-63 Uppercase or lowercase letters, digits, hyphens Start and end with a letter or digit ^(?!.*--)[A-Za-z0-9][A-Za-z0-9-]{1,61}[A-Za-z0-9]$ search-agent, crawler-agent
Storage container 3-24 Lowercase letters, digits, hyphens Start and end with a letter ^(?!.*--)[a-z][a-z0-9-]{1,22}[a-z]$ contoso-datacontainer, archivecontainer
Storage asset 3-24 Lowercase letters, digits, hyphens Start with a letter; end with a letter or digit ^(?!.*--)[a-z][a-z0-9-]{1,22}[a-z0-9]$ input-molecules-01, outputdata
Investigation 1-20 Lowercase letters, digits, hyphens Start and end with a letter ^(?!.*--)[a-z](?:[a-z0-9-]{0,18}[a-z])?$ chem-investigation, anomaly-study
Bookshelf 3-24 Lowercase letters, digits, hyphens Start with a letter; end with a letter or digit ^(?!.*--)[a-z][a-z0-9-]{1,22}[a-z0-9]$ research-bookshelf
Chat model deployment 3-24 Lowercase letters, digits, hyphens Start with a letter; end with a letter or digit ^(?!.*--)[a-z][a-z0-9-]{1,22}[a-z0-9]$ gpt-5-4
Resource-specific distinction Guidance
Workspace Its name is also used in the workspace endpoint. A local regex check doesn't establish endpoint-name availability.
Project Its name is scoped to the workspace. The ARM API allows up to 24 characters, but onboarding names.project allows up to 12.
Node pool The ARM API allows 3-24 characters, but onboarding names.nodePool allows 3-12. The no-hyphen pattern above is a recommendation, not an ARM restriction; review backing-service requirements for your deployment.
Agent and investigation These are data-plane/onboarding names, not ARM resource names covered by the common pattern. The lengths above come from onboarding inputs, not a verified data-plane contract. Follow the API for your creation path; don't apply these limits to every shared-session display name.
Storage container The Discovery resource name is separate from the backing Azure Blob container name.
Storage asset The asset resource name is separate from its blob path or filename.

Internationalization and localization

Use English terms and ASCII characters for all resource names to ensure maximum compatibility across systems and global regions. If localization is necessary, use a mapping table or metadata field rather than encoding localized names directly in the resource name.

Validation and error handling

Check What to verify
Local syntax Match the entire name against the appropriate regex. The ^ and $ anchors delimit the name; use full-string matching and reject line breaks.
Deployment constraints Run the onboarding configuration task and review the applicable API and backing-service requirements. A regex match doesn't prove Azure will accept the deployment.
Live availability Check uniqueness in the resource's actual scope. Review skipped or unavailable Azure checks rather than treating local success as name availability.
Generated names Review tool-specific derivation rules, including the default project storage-container name.
Rejected input Follow the failing API or tool check's requirement; don't apply a different resource's naming rule.