Deployment
Configuration is a directory of files. Deploying zips it and uploads it; the platform diffs it against the workspace and applies the difference.
The loop
Section titled “The loop”polymesa retrieve ./config # pull current state# edit, commitpolymesa deploy ./config --dry-runpolymesa deploy ./configWhat moves
Section titled “What moves”| Folder | Contents |
|---|---|
groups/ | Groups and hierarchy |
entities/ | Entity and field definitions |
guest_files/ | Triggers, jobs, controllers, views |
automations/ | Automation definitions |
share_rules/ | Model-level sharing rules |
email_senders/ | Sender addresses |
Plus pages/_meta.json when custom pages exist.
Records never move with a deploy. Neither do user accounts or manual record shares.
Dry runs
Section titled “Dry runs”polymesa deploy ./config --dry-runValidates and reports per-folder change counts without committing. Make it a required step in CI — it is the only place an unintended delete is visible before it happens.
Promoting between environments
Section titled “Promoting between environments”Aliases make this mechanical: retrieve from one, deploy to another.
polymesa retrieve ./config --alias stagingpolymesa deploy ./config --alias prod --dry-runpolymesa deploy ./config --alias prodSince users are not configuration, promoting never disturbs accounts in the target.
Use a connected app rather than a password, and environment variables rather than flags:
export POLYMESA_API_URL=https://api.polymesa.comexport POLYMESA_TOKEN="$(cat token.txt)"
polymesa deploy ./config --dry-runpolymesa deploy ./configPin the CLI version in CI so a release cannot change deploy behavior underneath you:
curl -fsSLO https://dl.polymesa.com/cli/1.0.0/polymesa-x86_64-unknown-linux-gnuSeeding data
Section titled “Seeding data”Data is a separate step, on purpose:
polymesa upsert --entity __user --file ./users.csvpolymesa upsert --entity Component --file ./components.csvupsert never deletes. To remove records, use delete with an explicit CSV of
keys — and note it has no dry run.