# Export or import Buttons configuration

> Export a configuration archive to move or snapshot a Buttons install, import one to replace the current configuration, or reset to factory settings.

Exporting configuration produces a single archive you can use to move a Buttons setup to another machine, keep an ad-hoc snapshot outside the scheduled backup rules, or hand to support for troubleshooting. Importing replaces the current configuration with the contents of an archive. Before you begin Access to the Configuration Data page, under Settings → Configuration data . If exporting for someone else, awareness of exactly what's inside the archive: see below. Export configuration Open the Configuration Data page. Choose whether to check Include secrets . Select Export Configuration . The archive contains a version marker, a full database dump (connections, module configuration, and the license table among everything else), and role data. Unchecking Include secrets only removes the contents of the secret vault table: it does not remove licenses or anything else from the archive, and it doesn't remove the encryption key that protects secret values, which is stored separately and always included. Treat every exported archive as sensitive, whether or not secrets are included. A connection field bound to a secret keeps that reference in the archive either way: unchecking Include secrets doesn't blank the field out, it just means the secret it points to won't exist after a restore. See Store and rotate connection secrets for what that looks like and how to recover from it. Note A license is tied to the Machine ID of the computer it's assigned to, so a license restored from an archive onto a different computer is never valid there. To move a license to new hardware, release it on the old machine and assign it on the new one: see Example: moving a license to a new machine . Import configuration Open the Configuration Data page and select Import Configuration . Choose the archive file: the control shows Reading backup… while it inspects the file. Review the summary Buttons shows you: the archive's version, when it was exported, and whether it includes secrets. Confirm. The dialog is explicit that this replaces all current configuration with the backup contents . Wait through the restart: Buttons will be briefly unavailable while it applies the imported configuration and restarts. An import works the same way as restoring a scheduled backup: see Restore a backup and verify it for how a failed import leaves your current configuration untouched, and for what to check before returning to service. Buttons checks the archive's version compatibility before importing and refuses ones it can't safely apply: for example, an archive from a version too old to migrate automatically, or a beta version that isn't guaranteed compatible with this one. After a cross-account or cross-OS import If the archive came from a different Bitfocus account or a different operating system, refresh module versions after the import completes and restart Buttons, since module binaries and versions can differ between environments. Follow the same guidance if you moved between OS families (for example, Windows to Linux) even within the same account. Load modules from a local folder Local module paths , at the bottom of the same page, is for advanced users: it lets Buttons load connection modules that aren't in the module store yet, such as a module you're developing or an experimental build you've been given. Put the module on the machine running the Buttons server. Each module folder needs its companion/manifest.json ; a built package with its manifest under pkg/companion/manifest.json also works. In Local module paths , enter the folder's full path. To load several modules, separate the paths with commas, or enter a folder that contains module folders: Buttons then loads each subfolder that holds a module (up to 200 entries; hidden folders and node_modules are skipped). Select Save . Each folder must already exist and be readable by the Buttons server process: the path is on the server, not on the computer running your browser. If any path isn't an existing folder, nothing is saved and you see One or more paths not found or not directories . A loaded module appears in the module list with the version dev and a Dev tag, and the Only Dev filter shows just these modules when you add a connection. The dev version sorts above every released version, so it's the one offered by default for a new connection. Buttons watches the folder: when a .js , .mjs , .cjs , or .json file changes, it reloads the module and restarts the connections using it, so expect those connections to drop briefly each time you save a change. To stop using a local module, remove its path and select Save . The dev version is removed from the module list. The paths are stored with the rest of the configuration. After importing an archive on another machine, any path that doesn't exist there is skipped, so put the module folders in place and save the paths again. Reset to factory settings Delete Configuration on the same page wipes the current installation back to factory defaults and restarts the system. This is unrelated to importing a backup: there's no way to undo it afterward except by importing a configuration you'd already exported beforehand. If you get stuck What you see What to try Import is refused with a version-compatibility error. The archive is either too old to migrate automatically or a beta version not guaranteed compatible with this one: you'll need a compatible archive instead. A license doesn't work after importing an archive on a new machine. This is expected: the license belongs to the old machine's Machine ID. Release it on the old machine and assign it on this one, see Manage your Buttons license . If the old machine is gone, follow If the machine is gone . Modules behave oddly after importing from another account or OS. Refresh module versions and restart Buttons, as recommended for cross-account or cross-OS imports. You unchecked Include secrets but still worry about exposure. That option only removes the secret vault's contents: the rest of the archive (connections, module configuration, license data, and the encryption key that protects secrets) is still present, so handle the file as sensitive regardless. A connection field shows "Secret not found" after importing an archive. The archive was exported (or a prior restore was done) with Include secrets unchecked: re-bind the field to a secret that exists in this installation. A local module doesn't appear in the module list. Confirm the path is on the Buttons server, that the folder contains companion/manifest.json (or pkg/companion/manifest.json ), and that the Buttons server process can read it. You want to undo an import. Import a previously exported archive from before the change: there's no separate undo. Where to go next Store and rotate connection secrets , for what a secret reference does when its value wasn't included in an archive. Configure and monitor scheduled backups , for backups that happen automatically instead of one-off exports. Secure a Buttons deployment , for handling exported configuration securely. Update a connection's module safely , for switching a connection between module versions.
