The Tool Desk
Outbyte Driver Updater FREEScan for outdated or missing drivers - takes under a minuteDriver Scan →Outbyte PC Repair FREEClear out junk files and repair common Windows errorsFree Scan →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.
| 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.
#1 Best Overall
| 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.
Rank #2
- Export the current dashboard definition and keep the file, so you can restore the content if the deletion or adoption goes wrong.
- Commit the same definition to the Git repository that Git Sync reads, and confirm it is the version you intend to keep.
- Delete the unmanaged original.
- Confirm that Git Sync has taken ownership of the dashboard under the preserved UID.
- 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:
Rank #3
“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.”
Do these 3 things before closing this tab:
1Clear out junk files and repair common Windows errors2Fix the driver behind crashes, sound loss and screen glitches3Repair Windows errors before they cause bigger problemsSpecial 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.
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.
Best Value
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.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.
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:
Quick Recap
- Identify the target Grafana version and which API generation it serves.
- List every legacy
/apicall the script makes. - 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.
- 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.

