Identifier Constraints Reference
This document describes the validation constraints and naming conventions for all identifier resources in Massdriver. These constraints are important for organizational design, naming standards, and deployment strategies.
Table of Contents
- Organization
- Project
- Environment (Target)
- Manifest
- Package
- Bundle
- Artifact Definition
- Artifact
- Bundle Deployment Metadata
Organization
Identifier Field: slug
Constraints
- Pattern:
^[a-z0-9-]+$- Lowercase letters, numbers, and hyphens only
- No underscores or other special characters
- Length: Minimum 2 characters, maximum 64 characters
- Uniqueness: Must be globally unique across all organizations
Examples
✅ Valid:
acme-corpengineering-teammy-org-123
❌ Invalid:
AcmeCorp(uppercase letters)my_org(underscores not allowed)admin(reserved slug)a(too short, minimum 2 characters)
Project
Identifier Field: slug
Projects are collections of manifests that compose an application or architecture. Project slugs are immutable once created.
Constraints
- Pattern:
^[a-z][a-z0-9]{0,6}$- Must start with a lowercase letter
- Can contain lowercase letters and numbers
- No hyphens or special characters
- Length: Minimum 1 character, maximum 7 characters
- Uniqueness: Unique within an organization
- Immutability: Once created, the slug cannot be changed
Examples
✅ Valid:
webappapidata1
❌ Invalid:
web-app(hyphens not allowed)WebApp(uppercase letters not allowed)1webapp(must start with a letter)verylongname(exceeds 7 character limit)
Environment (Target)
Identifier Field: slug
Environments represent named scopes for secrets and deployments within a project. Note: This resource was previously called "Target" and may occasionally be referenced that way for backwards compatibility - both terms refer to the same resource. Environment slugs are immutable once created.
Identifier Format: Environments use hierarchical slugs for API access. The full identifier format is {project-slug}-{environment-slug} (e.g., web-prod). You can use this hierarchical format in API calls, similar to how projects and packages are referenced.
Constraints
- Pattern:
^[a-z][a-z0-9]{0,6}$- Must start with a lowercase letter
- Can contain lowercase letters and numbers
- No hyphens or special characters
- Length: Minimum 1 character, maximum 7 characters
- Uniqueness: Unique within a project
- Immutability: Once created, the slug cannot be changed