07 · 4 layers
Profiles, bundles and layers
What your machine boots is not a fixed program, it is a tree of pieces composed in four layers.
- Profile A named configuration Lists which bundles it stacks, keeps the external plugins you installed and holds your own settings
- Bundle A package of pieces The way to distribute a set of pieces together with the configuration that mounts them
The order of application is always the same, and understanding that order avoids most surprises.
| Order | Layer | Where it comes from |
|---|---|---|
| 1 | The bundles | In the order they are declared |
| 2 | Your profile settings | The profile you picked |
| 3 | Your machine settings | The general configuration of the machine |
| 4 | What you pass at launch | The command arguments |
What to know before touching anything
The arguments you pass at launch are not another configuration layer, even though they look like one. They are a different thing, and the pieces that need them read them on their own.
Technical detail optional
The three bundles that ship by default are the base one, which brings model adapters, tools, persistence, isolation, settings and credentials; the web application one; and the headless execution one. The base one is always the first layer of any profile. Each bundle declares itself in its package.json under the dsh key.