Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

iTechGuides is reader-supported. When you buy through links on our site, we may earn an affiliate commission. As an Amazon Associate I earn from qualifying purchases. Learn more

A Grafana dashboard JSON file is a definition of one dashboard. It holds the layout, variables, styles, data source references and queries, and that is the limit of what it describes. Importing or copying the file does not move the Grafana instance around it. Alert rules, library panels, data source connections, plugins, and the provisioning arrangement that decides which copy is authoritative all need their own decisions.

The useful migration question is therefore not “can I export this dashboard?” but “which parts of its environment must move, and what identity, ownership and version choices come with each method?” The sections below take those choices in the order you will meet them.

What a dashboard JSON export contains

Grafana documents its dashboard JSON export as containing the dashboard’s configuration: layout, variables, styles, data sources and queries. The export is offered in two models, Classic and V2 Resource, and the V2 Resource model can be written as either JSON or YAML. Grafana presents the output as the dashboard’s definition, not as a backup of a Grafana environment.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Item Carried by the dashboard JSON? What it means for a migration
Layout, variables, styles, queries Yes, as documented for the export These travel with the file and need no separate step.
Data source references Yes, as references A reference is not a connection. Importing the JSON does not establish that data source configuration or credentials are recreated, so the target instance must already have the data sources the queries use.
Alert rules No, not part of the dashboard definition Alerting is a separate resource type and needs its own route.
Library panels Not established Plan for them as a separate resource (see the tooling section below).
Plugins Not stated in the export documentation Confirm the target has the plugins the dashboard uses.
Folder placement and ownership Not stated in the export documentation Set by the deployment method you choose (see the next sections).
Provisioning state No Determined by how the target instance loads dashboards.

Pick the schema model before you export

Grafana documents three dashboard schema models: V2 Resource, V1 Resource and Classic. V2 Resource is described as the current schema and supports features such as advanced layouts and conditional rendering. Classic remains useful for compatibility with Grafana v12.4 or older in the provisioning export flow.

Model Documented position Typical fit
V2 Resource Current schema; supports advanced layouts and conditional rendering; exports as JSON or YAML Target instances that support the model, especially dashboards that use V2 features
V1 Resource Documented as a separate model; its feature differences from V2 are not detailed in the material used here Workflows that expect this model; confirm the details in Grafana’s schema documentation for your target version
Classic Compatibility with Grafana v12.4 or older in the provisioning export flow Source or target instances on v12.4 or older

Record the model in your migration plan next to the source and target versions. The same dashboard exported in a different model is a different artifact for the target.

Choice one: keep the UID or keep a copy

A dashboard’s UID is the identifier its links resolve against. Git Sync documents two ways to bring an existing dashboard under management, and they handle that identifier differently.

Adopting the dashboard in place

Git Sync’s dashboard migration can preserve the UID. Taking over that UID requires removing the original unmanaged dashboard so that Git Sync can take ownership. Links that address the UID then point to the Git-managed dashboard. The order of operations matters:

Free tools Windows power users keep installed

One-click scans. No signup required.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
  1. Export the current dashboard definition and keep the file, so you can restore the content if the deletion or adoption goes wrong.
  2. Commit the same definition to the Git repository that Git Sync reads, and confirm it is the version you intend to keep.
  3. Delete the unmanaged original.
  4. Confirm that Git Sync has taken ownership of the dashboard under the preserved UID.
  5. Open several existing links to the dashboard and confirm they load the managed version.

Copying under a new UID

Copying is documented as the less disruptive path. The original stays where it is, and the copy receives a new UID. Existing links continue to address the original, so any link you want users to follow has to be changed by hand. Until one of the two dashboards is retired, both exist and can drift apart.

Axis Adopt in place (preserve UID) Copy (new UID)
Original dashboard Deleted so Git Sync can take ownership Left in place
Existing links Keep addressing the same UID, now Git-managed Keep addressing the original
Parallel dashboards None Two, until one is retired
Work you take on Deletion and validation of the adopted dashboard Link updates and a retirement plan
Disruption, as the documentation compares them Higher Lower

Choice two: provisioning files as the source of truth

With file-based provisioning, Grafana loads dashboard definitions from configured paths. UI edits do not write back to those files automatically, so the file and the database copy Grafana serves can diverge.

What happens when a UI edit meets a later file update

The provisioning file is the authority. Grafana’s provisioning documentation states:

“If you save a provisioned dashboard in the UI and then later update the provisioning source, Grafana always overwrites the database dashboard with the one from the provisioning file.”

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Source: Grafana Labs, Provision Grafana documentation. The same documentation notes that the JSON version property is ignored in this overwrite case, so a higher version number in the saved dashboard will not stop the file from replacing it. Keeping allowUiUpdates set to false for a provider removes this conflict, because UI edits are not the path the dashboard changes through.

Removing a provisioning source

Removing a provisioning source can delete the dashboards it loaded, unless deletion is disabled. Set disableDeletion to true on the provider to prevent that. A minimal provider entry showing the settings discussed here looks like this; the path is an example:

apiVersion: 1
providers:
  - name: dashboards
    orgId: 1
    folder: ''
    type: file
    disableDeletion: true
    allowUiUpdates: false
    options:
      path: /var/lib/grafana/dashboards

Choice three: match the tool to the resource

Each tool covers a different slice of an instance. Read its scope before assuming that moving a dashboard will carry its surroundings with it.

Git Sync

Git Sync manages dashboards and folders. It does not manage alerts, data sources or library panels, so those need another route during a Git Sync rollout.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Manual migration with command-line utilities and the HTTP API

Grafana’s migration guide for moving from OSS or Enterprise to Grafana Cloud describes a manual route that uses command-line utilities and the HTTP API for the entire instance. This is the route to plan around when a dashboard depends on alerts, data sources or library panels that must move with it.

Cloud Migration Assistant

The same guide describes an automated Cloud Migration Assistant that covers dashboards, folders, data sources, app and panel plugins, library panels, and Grafana Alerting resources. Its status depends on the Grafana version. According to the guide, as of October 2026:

  • v11.2 to v11.6: public preview, enabled through a feature toggle
  • v11.5 and later: enabled by default
  • v12: generally available

The ranges overlap, so confirm the status for your exact version before you plan around the assistant.

Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

API versions and migration scripts

The dashboard API reference describes the new API structure, served under /apis, as available in Grafana 12 and later. Grafana’s API migration page states that legacy /api routes are deprecated starting in Grafana 13. The same page cautions that the migration is still in progress and that an exact /apis match may not exist for every legacy API.

What’s actually slowing this PC down?

Pick the symptom - the matching free tool is one click away.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

That makes a find-and-replace on endpoint paths unsafe. Review a script against the target version and run it against the API that version actually serves:

  1. Identify the target Grafana version and which API generation it serves.
  2. List every legacy /api call the script makes.
  3. For each call, look for its replacement on the API migration page. Where no one-to-one replacement is listed, mark the call for manual review rather than rewriting it.
  4. Run the revised script against a non-production instance on the target version and check the results before pointing it at production.

Checklist before choosing a path

  • The source and target Grafana versions, and the schema model each side will use.
  • Whether existing links must keep resolving. If they must, the UID decision comes first.
  • Who edits the dashboard afterwards: UI users, a provisioning file, or a Git repository.
  • Which dependencies sit outside the JSON: data sources, alert rules, library panels, plugins and folders.
  • Which tool covers each of those dependencies, and whether that tool is available on your version.
  • How you will restore the dashboard if an import, deletion or sync goes wrong.

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.