feat(promote): resolve pre-existing entities by business key (#entity:field=value)
#24
Reference in New Issue
Block a user
Delete Branch "claude/dolibarr-promote-lookup"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Closes the last promote gap: a manifest can now reference records it does not create.
A value like
#thirdparty:name=KissMetrics(or:code=CL0007) is looked up on the target at apply time and resolved to that target's id — so the same manifest is portable (sandbox id on--target sandbox, prod id on--target prod). Combined with@ref(created entities), arbitrary change-sets replay cleanly.promote-apply.shresolve()gains a#branch + alookup()helper querying the target via the GET wrapper withsqlfilters. Supportsthirdparty(name/code/supplier_code) andinvoice/supplierinvoice(ref/ref_supplier).Proven live
So "invoice the existing client KissMetrics and record its payment" is now expressible and portable across sandbox→prod. That completes the promote flow.
🤖 Generated with Claude Code