Repository structure & where things belong
Purpose: Decide the correct home for code, config and content, and understand ownership of each top-level path.
Who this page is for
| Audience | Why it matters to you |
|---|
| All engineers | Prevents the most common review comments |
The map
| Path | Contains | Owner | Mutable in prod? |
|---|
| /apps | Your components, models (as bundles), templates' code side, overlays | Dev (git) | No — deploy-only |
| /libs | Adobe product code | Adobe | Never touch |
| /content | Pages, site content | Authors | Yes (that's the product) |
| /content/dam | Assets | Authors/DAM team | Yes |
| /conf | Editable templates, policies, CF models, workflow models | Governed (authors+devs) | Controlled |
| /etc | Legacy config, some tooling remains | Mixed | Avoid growing |
| /var | Runtime state: workflows, audit, statistics | System | System-managed |
| /home | Users & groups | Platform | Via user admin |
| /oak:index | Index definitions | Dev (git) | Deploy-only |
Overlays: customising product UI
To change product behaviour (e.g. hide a Sites console action), copy the relevant /libs path into /apps at the same relative path — the search path checks /apps first. Overlay minimally: copy the single node you change, not whole trees, or upgrades become painful.
"Where does X go?" quick answers
| Thing | Home |
|---|
| New component | /apps/phi-academy/components/… (via ui.apps in git) |
| OSGi config | /apps/phi-academy/osgiconfig/config.<runmode>/ |
| Editable template | /conf/phi-academy/settings/wcm/templates (authored, promoted via packages) |
| Content Fragment model | /conf/phi-academy/settings/dam/cfm/models |
| Custom index | /oak:index/… (via repo init or package, code-reviewed) |
| Site content | /content/phi/… (authored, never in git) |