"description":"The plugin.json file is required for all plugins. When Grafana starts, it scans the plugin folders and mounts every folder that contains a plugin.json file unless the folder contains a subfolder named dist. In that case, Grafana mounts the dist folder instead.",
"description":"Grafana Enterprise specific features",
"additionalProperties":true,
"properties":{
"healthDiagnosticsErrors":{
"type":"boolean",
"description":"Enable/Disable health diagnostics errors. Requires Grafana >=7.5.5.",
"default":false
}
}
},
"executable":{
"type":"string",
"description":"The first part of the file name of the backend component executable. There can be multiple executables built for different operating system and architecture. Grafana will check for executables named `<executable>_<$GOOS>_<lower case $GOARCH><.exe for Windows>`, e.g. `plugin_linux_amd64`. Combination of $GOOS and $GOARCH can be found here: https://golang.org/doc/install/source#environment."
},
"hideFromList":{
"type":"boolean",
"description":"[internal only] Excludes the plugin from listings in Grafana's UI. Only allowed for `builtIn` plugins."
},
"includes":{
"type":"array",
"description":"Resources to include in plugin.",
"items":{
"type":"object",
"additionalItems":false,
"properties":{
"uid":{
"type":"string",
"description":"Unique identifier of the included resource"
"description":"(Legacy) The Angular component to use for a page."
},
"role":{
"type":"string",
"description":"The minimum role a user must have to see this page in the navigation menu.",
"enum":["Admin","Editor","Viewer"]
},
"path":{
"type":"string",
"description":"Used for app plugins."
},
"addToNav":{
"type":"boolean",
"description":"Add the include to the navigation menu."
},
"defaultNav":{
"type":"boolean",
"description":"Page or dashboard when user clicks the icon in the side menu."
},
"icon":{
"type":"string",
"description":"Icon to use in the side menu. For information on available icon, refer to [Icons Overview](https://developers.grafana.com/ui/latest/index.html?path=/story/docs-overview-icon--icons-overview)."
}
}
}
},
"logs":{
"type":"boolean",
"description":"For data source plugins, if the plugin supports logs. It may be used to filter logs only features."
},
"metrics":{
"type":"boolean",
"description":"For data source plugins, if the plugin supports metric queries. Used to enable the plugin in the panel editor."
},
"pascalName":{
"type":"string",
"description":"[internal only] The PascalCase name for the plugin. Used for creating machine-friendly identifiers, typically in code generation. If not provided, defaults to name, but title-cased and sanitized (only alphabetical characters allowed).",
"pattern":"^([A-Z][a-zA-Z]{1,62})$"
},
"preload":{
"type":"boolean",
"description":"Initialize plugin on startup. By default, the plugin initializes on first use. Useful for app plugins that should load without user interaction."
"description":"For data source plugins. Proxy routes used for plugin authentication and adding headers to HTTP requests made by the plugin. For more information, refer to [Authentication for data source plugins](/docs/grafana/latest/developers/plugins/authentication/).",
"description":"For data source plugins. Proxy routes used for plugin authentication and adding headers to HTTP requests made by the plugin. For more information, refer to [Authentication for data source plugins](/docs/grafana/latest/developers/plugins/authentication/).",
"description":"For data source plugins. Route method matches the HTTP verb like GET or POST. Multiple methods can be provided as a comma-separated list."
"description":"Impersonation describes the permissions that the external service will have on behalf of the user.",
"properties":{
"enabled":{
"type":"boolean",
"description":"Enabled allows the service to request access tokens to impersonate users using the jwtbearer grant"
},
"groups":{
"type":"boolean",
"description":"Groups allows the service to list the impersonated user's teams."
},
"permissions":{
"type":"array",
"description":"Permissions are the permissions that the external service needs when impersonating a user. The intersection of this set with the impersonated user's permission guarantees that the client will not gain more privileges than the impersonated user has.",
"items":{
"type":"object",
"additionalProperties":false,
"properties":{
"action":{
"type":"string"
},
"scope":{
"type":"string"
}
}
}
}
}
},
"self":{
"type":"object",
"description":"Self describes the permissions that the external service will have on behalf of itself",
"properties":{
"enabled":{
"type":"boolean",
"description":"Enabled allows the service to request access tokens for itself using the client_credentials grant"
},
"permissions":{
"type":"array",
"description":"Permissions are the permissions that the external service needs its associated service account to have",