# Resources

Bindplane resources can be backed up using the CLI. This method should be used in addition to backing up Bolt Store or PostgreSQL.

### Prerequisites

* Bindplane **v1.25.0** or newer. If on an older version, upgrade before attempting a migration.

### Profile

The backup and restore process will require that you have configured your Bindplane CLI profile. The profile allows you to connect to the Bindplane server.

In this example, the Bindplane server has a remote URL of `http://192.168.1.10:3001` and the profile name is "example".

Configure Profile with username and password:

```bash
bindplane profile set "example" \
 --remote-url "http://192.168.1.10:3001" \
 --username "user" \
 --password "pass"

bindplane profile use "example"
```

If using Bindplane Enterprise with multi-project, you can use an API key instead of username and password:

```bash
bindplane profile set "example" \
 --remote-url "http://192.168.1.10:3001" \
 --api-key "xxx-xxx-xxx-xxx"

bindplane profile use "example"
```

### Backup

```bash
backup_file="migration-resources-$(date '+%Y-%m-%d_%H:%M:%S').yaml"

touch "$backup_file"

bindplane get destination -o yaml --export > "$backup_file"
bindplane get source -o yaml --export >> "$backup_file"
bindplane get processor -o yaml --export >> "$backup_file"
bindplane get configuration -o yaml --export >> "$backup_file"
```

After running the CLI commands, a file with the name `migration-resources-<date suffix>.yaml` will exist in your working directory.

It is recommended that the resource yaml file be moved to a remote system, such as a backup server or a secure object storage service like Google Cloud Storage or Amazon S3.

### Restore

Bindplane resources can be restored by using the `apply` command. After configuring your CLI profile, run the following command:

```bash
bindplane apply -f <path to resource yaml file>
```

Bindplane will create new resources, or update existing resources if they already exist.

{% hint style="info" %}
**NOTE**

If applying resources to an in-use system, configurations that are updated will have pending rollouts that must be triggered by the user.
{% endhint %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.bindplane.com/configuration/bindplane/backup-and-disaster-recovery/resources.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
