* dispatch GE release build when this one is triggered
* Add publish-artifact workflow
* workflow_call is its own job
* add needs section in publish
* fix workflow reference
* fix permissions
* Use pattern arg instead of name
* fix artifacts path
* log in to docker hub in build job
* remove duplicate key
* bucket_path -> bucket-path
* remove 'parent' input
* PATH -> ARTIFACT_PATH
* use find instead of rsync
* set min/maxdepth
* use cp -r
* Add publish-artifact.yml to CODEOWNERS
* refer to the workflow on main specifically
* fix: increase login_attempt.ip_address column length for IPv6 support
- Expand ip_address column from VARCHAR(30) to VARCHAR(50) to accommodate IPv6 addresses
- Add database migration with support for PostgreSQL, MySQL, and SQLite
- Add comprehensive integration tests for various IPv6 address formats
- Resolves 500 errors when login fails over IPv6, now returns proper 401 errors
Fixes#106362
* test: add missing test skip to TestIntegrationIPv6AddressSupport
Skip integration test when running with -short flag to separate unit and integration tests
* Update pkg/services/sqlstore/migrations/login_attempt_mig.go
Co-authored-by: Victor Cinaglia <victor@grafana.com>
* fix missing bracket
* fix: resolve PostgreSQL timestamp overflow in IPv6 test
- Use controlled time mock instead of time.Now() to avoid timestamp conversion issues
- Follow existing test patterns with xormStore and mock time functions
- Add proper Since parameter to GetIPLoginAttemptCount query
- Fixes PostgreSQL error: 'pq: value "-62135596800" is out of range for type integer'
* fix: resolve PostgreSQL UTF-8 encoding error in IPv6 test
Replace string(rune(i)) with fmt.Sprintf to avoid null bytes (0x00)
when i=0, which caused 'invalid byte sequence for encoding UTF8' error
---------
Co-authored-by: Victor Cinaglia <victor@grafana.com>
* Add kvstore interface
* add owner
* go lint
* remove comment
* update comment
* remove GetOptions
* add sortorder unspecified
* nit
* nit
* nit
* move txn
* use io.reader
* use io.reader
* change again the default order + comments
* change again the default order + comments
* use readcloser for Save
* markup timeseries panel edit
* mark up matchers ui
* mark up bar chart
* mark up stat panel
* mark up gauge
* mark up bar gauge
* mark up table component
* mark up pie chart
* mark up state timeline
* mark up heatmap
* mark up status history
* mark up histogram
* mark up text panel
* mark up alert list
* mark up dashboard list
* mark up news panel
* mark up annolist
* mark up logs panel
* mark up node-graph
* mark up traces
* mark up trend
* mark up xychart
* fix build
* wip
* use initScenesTranslations
* comment
* use just plain resource loaded from scenes lib
* update to the published scenes version
* rename loadPluginResources to loadNamespacedResources
* XYChart: Add support for x=time
* prettier
* Add time axis demo to provisioned dashboard for XY
* Add details about time fields to the documentation
---------
Co-authored-by: Kristina Durivage <kristina.durivage@grafana.com>
* LogList: memoize styles
* virtualization: refactor to support multiple instances
* LogList: refactor to support multiple virtualization instances
* Update tests
* LogLine: unfocus test
* virtualization: refactor class to use the provided font size
* LogLine: split component to reduce re-renders