umbraco-cloud-archiver
v0.4.0
Published
Wizard-based CLI for archiving an Umbraco Cloud project (git, blob storage, database) to disk before shutdown.
Maintainers
Readme
umbraco-cloud-archiver
Wizard-based CLI for archiving an Umbraco Cloud project to local disk before shutting it down.
For each environment (e.g. live, stage, dev) the tool archives:
- Git repository - both a
--mirrorclone (full history) and a working copy you can browse - Blob storage - the contents of the environment's media blob container, via a SAS URL
- Database (optional) - a
.bacpacexport viasqlpackage, or a manual instructions file if you prefer to grab the backup from the Umbraco Cloud portal yourself
Usage
Requires Node.js 20+ and git in your PATH.
npx umbraco-cloud-archiver@latestThe tool walks you through a wizard:
- Pick an output base folder.
- Choose database backup mode (skip / use
sqlpackage). - For each environment: name, git clone URL, blob SAS URL, optionally DB credentials. Loop "add another?" until done.
- Confirm and run.
It will offer to download azcopy and sqlpackage into a per-user cache (~/.umbraco-cloud-archiver/bin/) when not found in PATH.
Output structure
<base>/
live/
git-mirror/ # bare clone, full history
repo/ # working copy (browseable)
blobs/ # blob storage contents
database/
<dbname>.bacpac # if sqlpackage was used
MANUAL_BACKUP_REQUIRED.txt # otherwise
stage/
...
archive-info.json # metadata about this runPrerequisites
- Node.js 20+
gitavailable in PATH- For DB export: SQL Server account with permissions to export, or grab the backup manually from the Cloud portal
- A container-level SAS URL per environment (Umbraco Cloud → environment → Storage)
Releasing (maintainers)
CI is GitHub Actions:
ci.ymlruns build/typecheck on push and PR.release.ymlruns on push tomain. It uses npm Trusted Publishing (OIDC, noNPM_TOKENsecret) and only publishes if the version inpackage.jsonis not already on npm.
To release: bump the version in package.json in a commit, merge to main, done.
One-time setup on npmjs.com: enable trusted publishing for this package, pointing at this repo + release.yml.
License
MIT
