* docs(pluginextensions): initial commit detailing how to add menu items to grafana
* docs(pluginextensions): initial commit detailing how to do cross plugin linking
* Update cross-plugin-linking.md
* Update extend-the-grafana-ui-with-links-and-commands.md
* style(pluginextensions): prettier fix for extend the grafana ui with links and commands
* Update docs/sources/developers/plugins/extend-the-grafana-ui-with-links-and-commands.md
Co-authored-by: Andres Martinez Gotor <andres.martinez@grafana.com>
* Update docs/sources/developers/plugins/cross-plugin-linking.md
Co-authored-by: Marcus Andersson <marcus.andersson@grafana.com>
* docs(pluginextensions): add info for placements and link to metadata
* docs(plugin-extensions): update metadata for new docs pages
* docs(plugin-extensions): pr feedback
* Update docs/sources/developers/plugins/cross-plugin-linking.md
Co-authored-by: Levente Balogh <balogh.levente.hu@gmail.com>
* docs(plugin-extensions): remove all mention of commands
* chore(plugin-extensions): rename extension doc to remove reference to commands
* docs(plugin-extensions): replace usage of placement with extension point
* docs(plugin-extensions): lowercase ID
---------
Co-authored-by: Joseph Perez <45749060+josmperez@users.noreply.github.com>
Co-authored-by: Andres Martinez Gotor <andres.martinez@grafana.com>
Co-authored-by: Marcus Andersson <marcus.andersson@grafana.com>
Co-authored-by: Levente Balogh <balogh.levente.hu@gmail.com>
* Use one sentence per line for better line based diffing
Signed-off-by: Jack Baldry <jack.baldry@grafana.com>
* Add missing and required description front matter
Signed-off-by: Jack Baldry <jack.baldry@grafana.com>
* Fix heading hierarchy
Signed-off-by: Jack Baldry <jack.baldry@grafana.com>
* Fix doc-validator linting errors
Signed-off-by: Jack Baldry <jack.baldry@grafana.com>
* Add doc-validator make target
Signed-off-by: Jack Baldry <jack.baldry@grafana.com>
* Fix nested lists
Signed-off-by: Jack Baldry <jack.baldry@grafana.com>
---------
Signed-off-by: Jack Baldry <jack.baldry@grafana.com>
* feat(plugins): introduce dashboard panel menu placement for adding menu items
* test: add test for getPanelMenu()
* added an unique identifier for each extension.
* added context to getPluginExtensions.
* wip
* Wip
* wiwip
* Wip
* feat: WWWIIIIPPPP 🧨
* Wip
* Renamed some of the types to align a bit better.
* added limit to how many extensions a plugin can register per placement.
* decreased number of items to 2
* will trim the lenght of titles to max 25 chars.
* wrapping configure function with error handling.
* added error handling for all scenarios.
* moved extension menu items to the bottom of the more sub menu.
* added tests for configuring the title.
* minor refactorings.
* changed so you need to specify the full path in package.json.
* wip
* removed unused type.
* big refactor to make things simpler and to centralize all configure error/validation handling.
* added missing import.
* fixed failing tests.
* fixed tests.
* revert(extensions): remove static extensions config in favour of registering via AppPlugin APIs
* removed the compose that didn't work for some reason.
* added tests just to verify that validation and error handling is tied together in configuration function.
* adding some more values to the context.
* draft validation.
* added missing tests for getPanelMenu.
* added more tests.
* refactor(extensions): move logic for validating extension link config to function
* Fixed ts errors.
* Update packages/grafana-data/src/types/app.ts
Co-authored-by: Levente Balogh <balogh.levente.hu@gmail.com>
* Update packages/grafana-runtime/src/services/pluginExtensions/extensions.test.ts
Co-authored-by: Levente Balogh <balogh.levente.hu@gmail.com>
* refactor(extensions): rename limiter -> pluginPlacementCount
* refactor(getpanelmenu): remove redundant continue statement
---------
Co-authored-by: Levente Balogh <balogh.levente.hu@gmail.com>
Co-authored-by: Marcus Andersson <marcus.andersson@grafana.com>
* Renamed target -> id and href -> path after feedback.
* fixed type issues in test page.
* chore(pluginschemajson): update extensions props target -> id
* this is the final.
* fixed typings...again...
---------
Co-authored-by: Jack Westbrook <jack.westbrook@gmail.com>
* added extensions to plugin.json and exposing it via frontend settings.
* added extensions to the plugin.json schema.
* changing the extensions in frontend settings to a map instead of an array.
* wip
* feat(pluginregistry): begin wiring up registry
* feat(pluginextensions): prevent duplicate links and clean up
* added test case for link extensions.
* added tests and implemented the getPluginLink function.
* wip
* feat(pluginextensions): expose plugin extension registry
* fix(pluginextensions): appease the typescript gods post rename
* renamed file and will throw error if trying to call setExtensionsRegistry if trying to call it twice.
* added reafactorings.
* fixed failing test.
* minor refactorings to make sure we only include extensions if the app is enabled.
* fixed some nits.
* Update public/app/features/plugins/extensions/registry.test.ts
Co-authored-by: Levente Balogh <balogh.levente.hu@gmail.com>
* Update packages/grafana-runtime/src/services/pluginExtensions/registry.ts
Co-authored-by: Levente Balogh <balogh.levente.hu@gmail.com>
* Update packages/grafana-runtime/src/services/pluginExtensions/registry.ts
Co-authored-by: Levente Balogh <balogh.levente.hu@gmail.com>
* Update public/app/features/plugins/extensions/registry.test.ts
Co-authored-by: Levente Balogh <balogh.levente.hu@gmail.com>
* Moved types for extensions from data to runtime.
* added a small example on how you could consume link extensions.
* renamed after feedback from levi.
* updated the plugindef.cue.
* using the generated plugin def.
* added tests for apps and extensions.
* fixed linting issues.
* wip
* wip
* wip
* wip
* test(extensions): fix up failing tests
* feat(extensions): freeze registry extension arrays, include type in registry items
* added restrictions in the pugindef cue schema.
* wip
* added required fields.
* added key to uniquely identify each item.
* test(pluginextensions): align tests with implementation
* chore(schema): refresh reference.md
---------
Co-authored-by: Jack Westbrook <jack.westbrook@gmail.com>
Co-authored-by: Levente Balogh <balogh.levente.hu@gmail.com>
* Adds a description field to plugin.json's pages:role field
There's no description of what a page object's "role" setting does. It
controls whether a page will appear in the navigation menu for a user
with a given role.
* Update plugindef.cue with comments to match documentation.
* make gen-cue
* Replace ambiguous relrefs with partial URIs to prevent 404s
Signed-off-by: Jack Baldry <jack.baldry@grafana.com>
* Fix local builds that depend on latest content
Signed-off-by: Jack Baldry <jack.baldry@grafana.com>
* Fix broken relref
Signed-off-by: Jack Baldry <jack.baldry@grafana.com>
---------
Signed-off-by: Jack Baldry <jack.baldry@grafana.com>
Grafana would forward the X-Grafana-User header to backend plugin request when
dataproxy.send_user_header is enabled. In addition, X-Grafana-User will be automatically
forwarded in outgoing HTTP requests for core/builtin HTTP datasources.
Use grafana-plugin-sdk-go v0.147.0.
Fixes#47734
Co-authored-by: Will Browne <wbrowne@users.noreply.github.com>
* Use relative aliases for all non-current Grafana aliases
Prevents non-latest documentation "stealing" the page away from latest
and through permanent redirects for latest pages that no longer exist.
The redirected pages are indexed by search engines but our robots.txt
forbids them crawling the non-latest page.
Signed-off-by: Jack Baldry <jack.baldry@grafana.com>
* Remove aliases from shared pages
Signed-off-by: Jack Baldry <jack.baldry@grafana.com>
* Rewrite all current latest aliases to be next
Signed-off-by: Jack Baldry <jack.baldry@grafana.com>
* Fix typo in latest alias
Signed-off-by: Jack Baldry <jack.baldry@grafana.com>
* Remove all current page aliases
find docs/sources -type f -name '*.md' -exec sed -z -i 's#\n *- /docs/grafana/next/[^\n]*\n#\n#' {} \;
find docs/sources -type f -name '*.md' -exec sed -Ez -i 's#\n((aliases:\n *-)|aliases:\n)#\n\2#' {} \;
Signed-off-by: Jack Baldry <jack.baldry@grafana.com>
* Prettier
Signed-off-by: Jack Baldry <jack.baldry@grafana.com>
Signed-off-by: Jack Baldry <jack.baldry@grafana.com>
* chore(grafana-ui): export prop types for queryfield, modal and field components
* docs(migration-guide): add notes for react peerdependencies and additional type exposure
* Update docs/sources/developers/plugins/migration-guide.md
Co-authored-by: Timur Olzhabayev <timur.olzhabayev@grafana.com>
Co-authored-by: Timur Olzhabayev <timur.olzhabayev@grafana.com>
* refactors config panels and visualizations, corrects relrefs
* adds an alias
* Remove some old content
* moves visualizations topic to the root
* moves out panels and visualization topics to the root
* adds move and resize panel to add/organize panel; creates a create dashboard topic under build dashboards; adjusts context of add a panel to be from within an existing dashboard
* updates aliases
* creates search at root, moves dashboard preview to search, creates standalone search dashboard topic
* moves Set dashboard time range to use-dashboards, creates modify dashboard settings and adds moves Modify dashboard time settings to that topic
* moves existing query-options topic from working with panels to configure-panel-visualizations, moves panel time overrides and timeshift content to query options
* Moving things to better category, fixing links, improving ordering
* Move panel inspector to main panel topic
* completes partial fix of relrefs
* relref fixes con't
* restructures remaining panels topics
* more relref fixes
* Minor fix
* Minor tweak
* finishes fixing relrefs
Co-authored-by: Torkel Ödegaard <torkel@grafana.com>
Co-authored-by: Jack Baldry <jack.baldry@grafana.com>