How items line up between environments
Mochi matches your configuration up between environments by name, not by internal id. That's why your environments don't have to be copies of each other.
Every item in an Aprimo instance has an internal id, and the same item has a different id in every instance. A field called Asset Description has one id in your sandbox and another in production, even though it's the same field to you.
That matters as soon as one item points at another: a picker rooted at a category, a field that belongs to a group, a rule that acts on a category. Those connections are stored as ids, and an id copied from one environment means nothing in the next one.
Mochi matches by name
So Mochi doesn't move the ids. When it reads an environment, it notes what each connection points at by name. When it writes to another environment, it looks up that name there and uses whatever id it has locally.
Only connections are translated like this. Everything else (labels, help text, lengths, options, validation) is delivered exactly as you captured it.
What this means for you
- Your environments don't need to be copies. If you've been keeping a sandbox as a restore of production so that things line up, you don't need to for Mochi's sake. Environments that grew up separately work fine.
- Nothing is guessed. If the name isn't in the target environment, Mochi stops and tells you what's missing rather than picking something that looks close. See When a delivery doesn't finish.
- Already there is fine. The target only has to have the thing being pointed at. It doesn't have to be something you track, and it doesn't have to have come from Mochi.
What counts as the name
For most things it's the name you'd expect: a field, a group, a content type, a rule. For a category it's the whole path down the tree, so a Status under Assets and a Status under DAM stay two separate things, as they should.
