Branding
Branding
Branding is part of the unified
core.assets system. This page documents the filesystem contract and how to request branding assets via the public resolver.Overview
- Storage:
core.assets/assets/branding/holds the canonical files with two scopes:global/andregional/. - Resolution: the public resolver
core.assets/public/assets.phpserves assets directly from the filesystem viaAssetRouter.
Files & layout
Repository layout (branding subset):
core.assets/
└── assets/
└── branding/
├── global/<brand>/<asset>/{v1.svg, v2.svg, stable.md}
└── regional/<project>/<brand>/<asset>/{v1.svg, stable.md}Each final asset folder (e.g.
core.assets/assets/branding/global/universal/vector_logo/) contains versioned files (v1.svg, v2.svg) and an optional stable.md file that specifies the stable version by filename:v1.svgRuntime usage
Mount
core.assets/public/ as the document root of your core.assets subdomain (or route requests there). The public resolver handles both query-style and path-style requests.Path-style (recommended)
GET /branding/global/universal/vector_logo→ latest by modification timeGET /branding/global/universal/vector_logo?version=stable→ file named instable.mdGET /branding/global/universal/vector_logo?version=v2→ specific versionGET /branding/regional/my-project/my-brand/my-asset
Query-string style
GET /branding?name=global-universal-vector_logo&version=latestGET /branding?name=global-universal-vector_logo&version=stable
Version resolution
| Request | Behavior |
?version=stable | Read stable.md → serve that file. If stable.md doesn't exist → serve latest |
?version=latest | Serve newest file by modification time |
?version=<name> | Serve exact file match |
| (no param) | Serve latest file by modification time |
Response headers
- ETag — SHA1 hash of the file (supports
304 Not Modified) - Cache-Control — explicit versions:
immutable(1 year); aliases: short TTL (60s) - CORS — permissive headers for cross-origin usage
Adding or updating an asset
- Add the version file to the appropriate folder, e.g.
core.assets/assets/branding/global/universal/vector_logo/v4.svg. - Update the folder's
stable.mdif the stable version changes (just write the filename, e.g.v4.svg). - Deploy — the resolver picks up new files automatically from the filesystem.
Best practices
- Treat explicit version files as immutable once published.
- Use
stable.mdfor production-safe releases and letlatest(default) serve the newest file. - Place the
.htaccessfromcore.assets/public/in your Apache document root to enable clean URL routing.