* Add 'JSON' field type to ConvertFieldTypeTransformer
I've been playing around with #41994 and found that it requires fields
to contain array values, which can't be sent from a backend plugin. This
PR adds the ability for the ConvertFieldTypeTransformer to parse
JSON values and store the result in the transformed field.
The main use case for this right now is so that a field
containing a JSONified array can be transformed into a field
containing an actual array, which can in
turn be used for the table charts in #41994.
Supersedes #42521.
* Add second option to complex field conversion to increase flexibility
This avoids falsely equating 'JSON' with FieldType.other, and instead
allows multiple parsers to be used if the 'Complex' type is selected.
Currently only JSON parsing is implemented, but others could be
supported easily in future.
* Revert "Add second option to complex field conversion to increase flexibility"
This reverts commit 6314ce35eb.
* Improve test for object parsing of complex field transformer
Co-authored-by: Ryan McKinley <ryantxu@gmail.com>
* Use the api to login in cypress by default
* export getBaseUrl
* Revert "export getBaseUrl"
This reverts commit ae7eecea37.
* just use BASE_URL from the env
* fix exemplars test
* move into separate functions
* SelectOrgPage: migrate API function calls to Redux
* used a much better approach
* writes test for getUserOrganizations action
* writes test for userOrganizationsLoaded reducer
* change userOrg to plural
* chore: add a script for detecting breaking changes
* chore: add a temporary binary for POC3
* chore: add a Github Action workflow for detecting breaking changes
* chore: remove unused variables from the script
* chore: rename the POC3 executable script
* chore: add a label if there is a breaking change
* chore: remove "breaking change" label if all is passing
* chore: rename steps
* fix: only remove the label if there were no breaking changes
* chore: jump to the correct step
* chore: skip `@grafana/toolkit`
* chore: add a message for opening links in a new tab
* chore: update comment message
* chore: use Node 16 for the breaking changes workflow
* chore: install Yarn separately
* chore: use @grafana/levitate
* refactor: remove the unused levitate.js bundle
* fix: handle error when trying to remove a label that does not exist
* chore: delete the comment if there are no breaking changes
* chore: add reviewers automatically
* fix: use double-quote in shell script
* TEMPORARY: introduce a breaking change in `@grafana/data`
* fix: use correct line number for the breaking changes
* Revert "TEMPORARY: introduce a breaking change in `@grafana/data`"
This reverts commit 986ac9ab82.
* chore: remove unnecessary line from .eslintignore
* I18N: Add Core Lingui framework for translating the UI
* Make FieldSet accept ReactNode for the label, so it can be translated
* Translate a phrase in the User profile edit form
* Translate phrase
* run lingui compile before webpack builds
* init i18n more lazily
* i1n:compile in drone lint step
* wip for getting tests to work
* Use mock lingui/macros because its too hard to use the real macros in Jest...
* mock messages for tests
* use specific lingui version
* add comment for test helper
* we actually don't need the i18n setup in tests because we mock out <Trans />
* update package.json
* remove unneded imports
* revert back babel core version
* Create a I18nProvider wrapper
* AccessControl: Provide scope to frontend
* Covering datasources with accesscontrol metadata
* Write benchmark tests for GetResourcesMetadata
* Add accesscontrol util and interface
* Add the hasPermissionInMetadata function in the frontend access control code
* Use IsDisabled rather that performing a feature toggle check
Co-authored-by: Karl Persson <kalle.persson@grafana.com>
* WIP: move user/using api call to redux
* WIP: use redux instead in NewOrgPage component
* moved all the createOrg logic into redux
* type the redux state and action creators automatically
* adds test for setUserOrganization thunk
* update selectOrgPage to use Redux instead
* removes unnecessary dispatch call
* add permission structure to signedinuser
* add middleware to load user permissions into signedinuser struct
* apply LoadPermissionsMiddleware to http server
* check for permissions in signedinuser struct
Co-authored-by: Emil Tullstedt <emil.tullstedt@grafana.com>
* WIP
* wip
* wip
* wip
* refactor: new return of the create service accoutn
* refactor: change to have correct role
* refactor: ability to create service accounts
* make public
* refactor: make ints instead
* refactor: remove location sprintf
* refactor: added back named constants
* Add basic implementation
* Split import/export query interface
* Rename abstract query type
* Rename abstract query type
* Split loki/prom parsing
* Update docs
* Test importing abstract queries to Elastic
* Test exporting abstract queries from Graphite
* Test Prom and Loki query import/export
* Give better control to import/export all queries to data sources
* Fix unit test
* Fix unit test
* Filter out non-existing labels when importing queries to Loki
* Fix relative imports, names and docs
* Fix import type
* Move toPromLike query to Prometheus code
* Dedup label operator mappings
* importAbstractQueries -> importFromAbstractQueries
* Fix unit tests
* Add remove milestone action
* Update name
* Chore: use main branch from github action repository
Co-authored-by: Alexandra Vargas <alexa1866@gmail.com>