The first two are your development loop. Everything from
release create down reaches
something real, and every one of those commands names its target on the command line: a bare
deploy never reaches your workspace or a tenant.
Replace, merge, or a new Xano branch
- Replace makes the target hold exactly what you sent. Anything it held that you did not
send is gone. An ephemeral is replaced on every deploy without
--keep-data, and a tenant is replaced on everytenant deploy, including an API that an earlierdeploy --to tenant:<name>merge added. - Merge writes what you send over what is there and leaves the rest alone. Objects are
added and updated. Nothing is deleted unless you ask with
--prune, and--prunedeletes only what this project landed on that target (see Merge path). - New Xano branch is what
promotedoes. The release lands on a Xano branch of its own, named after the release, and the live Xano branch keeps serving. Nothing serves the new branch until--set-liveorxanosdk workspace branch set-live. A promote never deletes an object.
deploy --to workspace --replace is the exception to all of the above: it wipes the whole
workspace, every Xano branch included, before it imports. Merge path
covers when it is refused.
Tables are shared by every Xano branch
A Xano branch holds logic: API groups, queries, functions, agents and toolsets. Tables and microservices are not per branch. Every Xano branch in a workspace reads the same tables and the same rows. So a table change reaches live the moment it lands, whichever Xano branch it lands on, and deleting that branch does not undo it.promote and deploy --to workspace --branch refuse a
release that alters a table (SDK_SHARED_SCHEMA_CHANGE, exit 2) until you pass
--allow-shared-schema-changes. New tables and new columns are additions and pass without the
flag. Switching back to an earlier Xano branch restores logic, never a dropped column or its
values. Schema changes covers how to change a table safely.
Rows
A release carries rows only when you cut it with
--seed. See Releases.
Env values are added, never overwritten
A deploy to an ephemeral replaces its env set.promote, tenant deploy and every merge are
add only: a name the target already holds keeps the target’s value, so a release cut from
dev never overwrites production’s secrets. (deploy --to workspace --replace is the exception,
since it rebuilds the workspace.) To change a value on your workspace or a tenant, set it there
with xanosdk env set. Env and secrets has the full table.
Next
Releases: cut the release thatpromote and tenant deploy land.