* feat(featuremgmt): introduce feature toggle for enabling sri checks
* feat(frontend): use assetSriChecks feature toggle to inject integrity hash into script tags
* chore(webpack): align sri algorithms across dev and prod builds
* docs(featuremgmt): update assetSriChecks to pass CI
* docs(featuremgmt): fix more spelling complaints with assetSriChecks
* Add crossorigin attribute
* chore(webpack): add subresource-integrity plugin
* build(webpack): wrap webpack jsonp loader integrity checks in feature flag checks
* revert(index.html): remove crossorigin attribute if assertSriChecks is disabled
---------
Co-authored-by: Kristian Bremberg <kristian.bremberg@grafana.com>
* Restore feature: wip
* Refactor modal to separate component
* fix restoring from the drawer
* rename components folder to version-history, and move version-utils.file there
* skip fetching rule when uid is empty, add returnTo when restoring manually
* Fix drawer fetching infinitely
* Move drawer to separate file
* add tracking for restore success and restore failure
* Fix name of error interaction
* Add `compare` to each row in version history
* Add warning when manually restoring and trigger form validation
* Fix initial validation for contact point selector
* Wait for successful fetch before potential error
* Add disabled state when loading
* Fix loading check for contact point selector
* Fix typo
* Move hook to separate file and move other method into utils
* Update imports and remove manual state management
* Fix infinite render
* Remove onError from dep array
* Use separate flag for showing manual restore alert
* Rename to createdAt
* add and use ability to restore to check if retore is allowed
* Fix test and add isGrafanaManagedAlertRule to the ability check
* Address PR feedback
* Change to isManualRestore for trigger check
* udpate AlertRuleAction.Restore ability
* make the alertingRuleVersionHistoryRestore ff , enabled by default
* fix ff
---------
Co-authored-by: Tom Ratcliffe <tom.ratcliffe@grafana.com>
* RBAC: Remove accessControlOnCall feature toggle
* Leave the other one in place
* Tests
* frontend
* Readd empty ft to frontend test
* Remove legacy RBAC check
* Fix test
* no need for context
* Remove unused variable
* Remove unecessary param
* remove unecessary param from tests
* More tests :D
* Add alertingRuleVersionHistory feature toggle
* WIP: Add version history tab
* revert temp change in index.ts
* wip2
* --wip--
* sync code with the BE changes in the endpoint
* add translations
* Add translations
* use ff only for restore feature
* WIP: Add tracking, make version required, and start mapping dif results
Co-authored-by: Tom Ratcliffe <tom.ratcliffe@grafana.com>
* Tweak more translations and improve types
* Add button to show/hide JSON diff
* update type for top level rule fields
* Create types
* Make updated_by/version properties optional
* Update mocks to remove updated by and version
* add comments to restore code
* rename fetature flag, as we use this one only for the restore feature
* Update version history to handle special cases
* Add diff numbers
* Fix conflicts
* Move generic computeVersionDiff to a utils file
* Update DOM structure of version summary and tidy up types
* Add tests for version comparison logic
* Lint fix utils file
* Rename props and add docs
* Change to EmptyState and log when no versions
* Remove CreatedBy component and simplify
* Add missing i18n for version history
* add test for computeVersionDiff
* update test
* fix number diff order and add a test
* fix prettier
* fix prettier
* Add promise resolve back in
* Rename to humanReadableDiff and tweak translation
* Show tab for recording rules as well
* Split components out to separate files
* Add optional interval seconds
* Update i18n
* Remove commented code
* Remove value
* Remove unneeded version
* Consistent rendering of updated by
* Mode parseVersionInfo to a separate pure function
* update invalidate/provide tags for getAlertVersionHistory
* Use checkedVersions state only in the parent component
* update getSpecialUidMap name and create an interface
* Fix prettier
* update tab description
* use set instead of map for checkedVersions
---------
Co-authored-by: Tom Ratcliffe <tom.ratcliffe@grafana.com>
* Add Jira integration to cloud AMs
* Add alertingJiraIntegration feature toggle for jira integration
* Update integration name to Jira Service Management
* address pr comments
* gen ff
* add project to the getReceiverDescription for jira
* Update getReceiverDescription for jira
* update text
* update texts and add required option
* Add conversion for fields jira integration to JSON format in the dto and viceversa
* add tests
* Add translation for jira receiver summary
* Add placeholder for Jira duration option
* move logic cheking integrtion type outside the conversion method
---------
Co-authored-by: Tom Ratcliffe <tom.ratcliffe@grafana.com>
* Under feature flag `sqlExpressions` and is experimental
* Excluded from arm32
* Will not work with the Query Service yet
* Does not have limits in place yet
* Does not working with alerting yet
* Currently requires "prepare time series" Transform for time series viz
---------
Co-authored-by: Sam Jewell <sam.jewell@grafana.com>
* create new toggle
* add survey link behind feature toggle
* fix translations
* better theme structure
* add all the themes back
* update matrix
* fix mars contrast
* fix color contrast probs with tron
* fix a11y issues with synthwave/victorian themes
* fix aubergine/zen
* rename green + gold
* rename to space
* rename, only enable 4 for grafanacon
* add survey link
* fix info color in sapphiredusk
* handle extra themes in storybook
* Create base components
* Create measurement service
* Add container for list
* Use measurement to render virtualized log lines
* Match rendered styles in 2d context for measuring
* Improve virtualization initialization and handle resize
* Introduce log line processing
* Virtualization: fix measurement of lines with line endings
* Virtualization: include scrollbar width in calculation
* Remove logs
* Virtualization: optimize text measurement
* Add support for forceEscape
* Log line: properly style wrapped/unwrapped lines
* Virtualization: handle possible overflows
* Improve overflow handling
* LogList: remove scroll position ref
* Remove logs
* Remove log
* Add top/bottom navigation buttons
* Add timestamp to pre-processing
* Add showtime support
* Fix imports
* Chore: simplify dedup
* Show level
* Refactor measurement and measure level and timestamp
* Virtualization: skip unnecessary measurements
* Improve measurements to minimize overflow chance
* Introduce logline colors
* Update palette
* Remove pretiffying
* Add comment
* Remove unused variable
* Add color for info level
* Fix dependencies
* Refactor overflow to account for smaller estimations
* Debounce resizing
* Fix imports
* Further optimize height calculation
* Remove outline
* Unused import
* Use less under/overflow method
* Respond to height changes
* Refactor size adjustment to account for layout changes
* Add Logs Panel support
* Add margin bottom to log lines
* Remove unused option
* LogList: container div should never be null
Bad API design
* Log List: make app not undefined and update containerElement usages
* New Logs Panel: Create as new visualization (#99427)
* Logs Panel: clean up old panel
* Logs Panel New: create as new visualization
* Plugin: mark as alpha
* Logs panel new: hold container in a state variable
* Logs panel: fix no data state
* Create newLogsPanel feature flag
* Logs: use new feature flag
* Prettier
* Add new panel to code owners
* Logs Navigation: add translations
* Address betterer issues
* Fix import
* Extract translations
* Update virtualization.ts
* Virtualization: add DOM fallback for text measurement
* Run gen-cue
* plugins_integration_test: add logs-new to expected plugins
* add feature flag
* puts search permission filtering behind a feature flag
* fixes issue with doc match id. When the match is for an in-memory index, the internal id is a string (this is what we expected). However, when its a file-based index, the internal id is a binary encoded int64 that point to something internally. So to get the id, we need to use ExternalID() instead of relying on the indexInternalID to be the correct format.
* adds debug log
* update comment
* formatting
* feat: datasource connections tab in plugin detail page
* test: no ds defined test added
* feat: configure feature toggle
* chore: i18n extract
* test: added unit tests for page and list
* add two dummy feature toggles to use for testing potential AB testing setup
* update betterer
* update auto generated files
* fix camelcase test case