Commit Graph
100 Commits
Author SHA1 Message Date
Dan Cech 1884b03511 Provisioning: Look up provisioned folders by UID when possible (#87465)
look up provisioned folders by uid when possible
2024-05-07 15:38:53 -04:00
Dan Cech 41bee274fd Chore: Fix error handling in postDashboard, remove UserDisplayDTO, fix live redis client initialization (#87206)
* clean up error handling in postDashboard and remove UserDisplayDTO

* replace GetUserUID with GetUID and GetNamespacedUID, enforce namespace constant type

* lint fix

* lint fix

* more lint fixes
2024-05-06 14:17:34 -04:00
Dan Cech 5dfe4cf407 Storage: Watch tests (#85496)
* basic watch tests working

* refactor to read previous event within poller

* add watch test files

* cleanup

* watch tests passing

* debug cleanup

* special handling for canceled context

* cleanup

* fix wire

* fix sqlite_sequence cleanup issue

* move watch tests to integration, wait for provisioned dashboards

* handle context deadline exceeded and eof errors

* add comment about sleep
2024-04-08 11:42:12 -04:00
Dan Cech 9c46e71d5a Storage: Support continue at specified resource version (#84868)
* support continue at specified resource version

* detect whether list continue pages need to use entity_history, remove BatchRead, expand selectQuery helper

* refactor continue token handling

* fix tests, increase history chunk size

* lint fix
2024-04-08 09:57:02 -04:00
Dan Cech ef26fe95dc Storage: GuaranteedUpdate fix & other improvements (#85206)
make GuaranteedUpdate work when ignoring not found errors, increase poll frequency, fix Delete
2024-03-27 10:38:49 -04:00
Dan CechandDiego Augusto Molina 89f3b70e17 Storage: Add support for listing resource history (#84331)
* add support for listing resource history

* make watch handle custom label selectors properly

* fix tests

* Apply suggestions from code review

Co-authored-by: Diego Augusto Molina <diegoaugustomolina@gmail.com>

* properly handle special characters in json label matcher

* tidy up

---------

Co-authored-by: Diego Augusto Molina <diegoaugustomolina@gmail.com>
2024-03-15 19:17:54 -04:00
Dan Cech 0fa0cede75 Storage: streamline context handling (#84319)
streamline context handling
2024-03-14 17:12:20 -04:00
Dan Cech 1ffd1cc8f4 Storage: Support listing deleted entities (#84043)
* support listing deleted entities

* fold listDeleted into List
2024-03-11 13:59:54 -04:00
Dan Cech 7e4badff1d Storage: Use our own key format and support unnamespaced objects (#83929)
* use our own key format and support unnamespaced objects

* fix tests
2024-03-05 16:31:39 -05:00
Dan Cech 9fa9eaab44 Storage: Support get with resourceversion (#83849)
support getting old resourceversion, return explicit resource version in list
2024-03-05 10:57:32 -05:00
Dan CechandIgor Suleymanov 7b4925ea37 Storage: Watch support (#82282)
* initial naive implementation

* Update pkg/services/store/entity/sqlstash/sql_storage_server.go

Co-authored-by: Igor Suleymanov <radiohead@users.noreply.github.com>

* tidy up

* add action column, batch watch events

* initial implementation of broadcast-based watcher

* fix up watch init

* remove batching, it just adds needless complexity

* use StreamWatcher

* make broadcaster generic

* add circular buffer to replay recent events to new watchers

* loop within poll until all events are read

* add index on entity_history.resource_version to support poller

* increment r.Since when we send events to consumer

* switch broadcaster and cache to use channels instead of mutexes

* cleanup

---------

Co-authored-by: Igor Suleymanov <radiohead@users.noreply.github.com>
2024-03-05 10:14:38 -05:00
Dan Cech 790e1feb93 Chore: Update test database initialization (#81673)
* streamline initialization of test databases, support on-disk sqlite test db

* clean up test databases

* introduce testsuite helper

* use testsuite everywhere we use a test db

* update documentation

* improve error handling

* disable entity integration test until we can figure out locking error
2024-02-09 09:35:39 -05:00
Dan Cech 1f1461734c Storage: Add support for sortBy selector (#80680)
* add support for sortBy field selector

* use label selectors instead of field selectors

* set entity_labels on create & update

* make entity server integration tests work

* test fixes

* be more consistent with handling of empty body, meta or status

* workaround for database is locked errors during migration

* fix double import of sqlite3

* rename functions and tidy up

* refactor update

* disable integration tests until we can fix the database locking issue
2024-02-07 15:05:10 -05:00
Dan Cech 156d7ae194 use in-process grpc client instead of wrapping server interface (#81926)
* use in-process grpc client instead of wrapping server interface

* comment out jwt token checks until we're ready to validate the token
2024-02-07 13:17:02 -05:00
Dan CechandRyan McKinley d76defe517 K8s: Move GrafanaMetaAccessor into grafana-apiserver and remove usage of kinds metadata (#79602)
* move GrafanaMetaAccessor into pkg/apis, add support for Spec.Title & Spec.Name

* K8s: Move GrafanaMetaAccessor (PR into another) (#79728)

* access titles

* remove title

* remove title

* remove kinds metadata accessor

* remove kinds metadata accessor

* fixes

* error handling

* fix tests

---------

Co-authored-by: Ryan McKinley <ryantxu@gmail.com>
2024-01-12 16:18:14 -05:00
Dan Cech 771fc6c78d Fix issue registering dashboard summary resource (#80402) 2024-01-11 16:59:12 -05:00
Dan Cech b2b4d89501 Storage: Support grafana.app/folder field selector & label selectors (#79816)
* support grafana.app/folder field selector & label selectors

* lint fix
2023-12-21 18:08:01 -05:00
Dan Cech 7613ab7a5b Storage: store full k8s object in body column (#79480)
store full k8s object in body column
2023-12-19 11:34:57 -05:00
Dan Cech 0c1d1c6b6e Storage: raise errors when timestamps cannot be parsed (#79405)
* raise errors when timestamps cannot be parsed

* return partial origin info if timestamp parsing fails
2023-12-12 15:55:10 -05:00
Dan Cech d146f4cbc7 Storage: rename uid to name and name to title (#79418)
rename uid to name and name to title
2023-12-12 15:14:55 -05:00
Dan Cech 3482658975 Storage: Add readme for storage server (#79366)
add readme for storage server
2023-12-12 09:24:14 -05:00
Dan CechandRyan McKinley 9f6144059a Storage: Switch from tenant to namespace & remove GRN (#79250)
* remove GRN and switch tenant to namespace

* clean up remaining references

* simplify and remove inconsistency in With* parameters

* parse listing keys so we can use db index

* bump the schema version

---------

Co-authored-by: Ryan McKinley <ryantxu@gmail.com>
2023-12-11 12:26:05 -05:00
Dan CechandRyan McKinley c4c9bfaf2e Storage: Unified Storage based on Entity API (#71977)
* first round of entityapi updates

- quote column names and clean up insert/update queries
- replace grn with guid
- streamline table structure

fixes

streamline entity history

move EntitySummary into proto

remove EntitySummary

add guid to json

fix tests

change DB_Uuid to DB_NVarchar

fix folder test

convert interface to any

more cleanup

start entity store under grafana-apiserver dskit target

CRUD working, kind of

rough cut of wiring entity api to kube-apiserver

fake grafana user in context

add key to entity

list working

revert unnecessary changes

move entity storage files to their own package, clean up

use accessor to read/write grafana annotations

implement separate Create and Update functions

* go mod tidy

* switch from Kind to resource

* basic grpc storage server

* basic support for grpc entity store

* don't connect to database unless it's needed, pass user identity over grpc

* support getting user from k8s context, fix some mysql issues

* assign owner to snowflake dependency

* switch from ulid to uuid for guids

* cleanup, rename Search to List

* remove entityListResult

* EntityAPI: remove extra user abstraction (#79033)

* remove extra user abstraction

* add test stub (but

* move grpc context setup into client wrapper, fix lint issue

* remove unused constants

* remove custom json stuff

* basic list filtering, add todo

* change target to storage-server, allow entityStore flag in prod mode

* fix issue with Update

* EntityAPI: make test work, need to resolve expected differences (#79123)

* make test work, need to resolve expected differences

* remove the fields not supported by legacy

* sanitize out the bits legacy does not support

* sanitize out the bits legacy does not support

---------

Co-authored-by: Ryan McKinley <ryantxu@gmail.com>

* update feature toggle generated files

* remove unused http headers

* update feature flag strategy

* devmode

* update readme

* spelling

* readme

---------

Co-authored-by: Ryan McKinley <ryantxu@gmail.com>
2023-12-06 15:21:21 -05:00
Dan Cech 647f576359 Server: Automatically generate a self-signed TLS cert if needed (#78243)
generate a self-signed cert when running in https or http2 mode without a provided cert
2023-12-05 10:04:39 -05:00
Dan Cech 318f51eaee Chore: Remove unused CacheService dependency from sqlstore (#78507)
remove unused CacheService dependency from sqlstore
2023-12-04 10:00:45 -05:00
Dan CechandMarcus Efraimsson 3c89e68fc1 Chore: Fix timeout issues when gathering prometheus datasource stats (#74618)
* fix timeout issues when gathering prometheus flavor stats

* workaround data race in sdk tracing middleware

* cap concurrency at 10

---------

Co-authored-by: Marcus Efraimsson <marcus.efraimsson@gmail.com>
2023-11-29 16:01:54 -05:00
Dan Cech c330b7d18d Chore: Update settings to support k8s needs (#78235)
use util.SplitString, implement DynamicSection KeysHash
2023-11-15 15:26:28 -05:00
Dan Cech 67b2972052 Chore: add/update sqlstore-related helper functions (#77408)
* add/update sqlstore-related helper functions

* add documentation & tests for InsertQuery and UpdateQuery, make generated SQL deterministic by sorting columns

* remove old log line
2023-11-03 10:30:52 -04:00
Dan Cech e01d096ce2 add resource group to grn (#77396) 2023-10-30 17:08:46 -04:00
Dan Cech db6035a843 Chore: update kind annotation names to grafana.app/* (#77401)
* update kind annotation names to grafana.app/*
2023-10-30 17:08:31 -04:00
Dan Cech 91cf4f0c1c Revert "Plugins: Update PDC pattern from latest plugin SDK changes" (#76565)
Revert "Plugins: Update PDC pattern from latest plugin SDK changes (#76036)"

This reverts commit 151f6d6216.
2023-10-13 12:35:16 -04:00
Dan Cech d003ffe439 Update origin annotation names (#76301)
* Update origin annotation names

k8s does not support annotation names with multiple slashes in them, so this PR updates the origin annotations to match the format for updated and created annotations.

* fix tests
2023-10-11 18:28:26 -04:00
Dan Cech 85a207fceb Chore: Replace entity GRN with infra/grn GRN (#74198)
replace entity GRN with infra/grn GRN
2023-08-31 15:43:35 -04:00
Dan Cech dd97038b00 Slug: Combine various slugify fixes for special character handling (#73164)
* combine various slugify fixes for special character handling

* a couple more test cases

* update more tests

* goimports
2023-08-10 16:12:50 -04:00
Dan Cech a6279b2d62 Database: Make dialects independent of xorm Engine (#69955)
* make dialects independent of xorm Engine

* goimports
2023-06-14 16:13:36 -04:00
Dan CechandRyan McKinley 7572988305 add uid to team table (#66920)
* add uid to team table

* concat

* add prefix to transition uids

---------

Co-authored-by: Ryan McKinley <ryantxu@gmail.com>
2023-05-09 13:03:28 -04:00
Dan Cech 7e765c870a Utils: Reimplement util.GetRandomString to avoid modulo bias (#64481)
* reimplement GetRandomString, add tests that results are unbiased
2023-04-20 10:24:02 -04:00
Dan Cech d49b79fb24 add workaround for intercom iframe background being non-transparent in dark mode (#66329) 2023-04-12 11:46:13 -04:00
Dan Cech d072b62960 Packaging: Remove chkconfig dependency (#65887)
Remove chkconfig dependency

This dependency prevents installation on recent opensuse as they no longer provide chkconfig.

As far as I can tell we don't use it anywhere so it shouldn't be required under any modern linux using systemd,
2023-04-04 07:05:35 -04:00
Dan Cech cc5211119b switch from github.com/gofrs/uuid to github.com/google/uuid (#65016)
* switch from github.com/gofrs/uuid to github.com/google/uuid

* add golangci rule to prevent inadvertent reintroduction
2023-03-21 06:31:29 -04:00
Dan Cech 9276f11388 Chore: Add stat for remote cache config (#64276)
* add stat for remote cache config
2023-03-07 09:24:04 -05:00
Dan Cech 0c8a2bbfd5 copy .github folder into golang build container since we rely on codeowners (#62122)
* copy .github folder into golang build container since we rely on codeowners

* remove .github for .dockerignore
2023-01-25 10:31:16 -05:00
Dan Cech 9c4051bfa1 Switch grafana server command to use urfave/cli/v2 (#60684)
* switch grafana server to use urfave/cli/v2

* autocomplete support

* lint fix
2022-12-24 22:33:18 -05:00
Dan Cech fe3ae49cce Backend: Consistently use context RemoteAddr function to determine remote address. (#60201)
consistently use context RemoteAddr function to determine remote address
2022-12-13 09:33:05 -05:00
Dan Cech 440d8a3d88 Build: Drone starlark file cleanup (#59919)
* format drone starlark files with black

* clean up unused params

* more simplification

* more cleanup

* more cleanup
2022-12-07 09:13:57 +02:00
Dan Cech 1dbc22d18b Build: don't remove grafana-server and grafana-cli binaries from deb and rpm packages (#59890)
* don't remove grafana-server and grafana-cli binaries from /usr/share/grafana/bin in deb and rpm packages

* don't add config overrides in /usr/sbin/grafana-server
2022-12-06 10:36:43 -05:00
Dan CechandChristopher Moyer c4bb9d637e Build: Unify custom dockerfiles, fix missing semicolon (#59615)
* unify custom dockerfiles, fix missing semicolon

* tweak verbiage

Co-authored-by: Christopher Moyer <35463610+chri2547@users.noreply.github.com>

* update example description

Co-authored-by: Christopher Moyer <35463610+chri2547@users.noreply.github.com>
2022-12-01 11:08:31 -05:00
Dan Cech 7436872dab Build: Unified dockerfile for all builds (#59173)
* unified dockerfile for all builds

* update builder

* include docker commands and output in logs

* quiet docker build

* quiet gsutil
2022-11-28 16:18:53 -05:00
Dan Cech 3377575788 fix pr-commands.json by removing trailing comma (#59437) 2022-11-28 15:19:01 -05:00
Dan Cech 9fec54df2d Build: Streamline and sync dockerfiles (#58101)
* streamline and sync dockerfiles

* improve go dependency cacheability

* unify alpine and ubuntu Dockerfiles

* include glibc support in locally-built alpine images
2022-11-28 14:43:42 -05:00
Dan Cech ed72b02b27 Chore: update vscode "Run Server" config for single-binary (#59237)
update vscode "Run Server" config for single-binary
2022-11-23 11:32:42 -05:00
Dan Cech de99ce139c Server: Switch from separate server & cli to a unified grafana binary (#58286)
* avoid the need for a second bulky binary for grafana-cli

* look for grafana-server in $PATH as well as same directory

* implement unified "grafana" command

* update dockerfiles, fix grafana-cli -v

* update packaging to work with single binary

- add wrapper scripts for grafana and grafana-server
- update and sync package files
- implement --sign flag of build package command
- stop packaging scripts folder, they are not useful for end users
- add support for --configOverrides in server command
- remove unused nfpm.yaml config file

* windows support
2022-11-22 11:53:43 -05:00
Dan Cech d593aede3d properly format new .drone.yml in verify-drone (#58436) 2022-11-08 10:27:57 -05:00
Dan Cech da9c646f24 Build: add explicit build step for go codeql (#58195)
* add explicit build step for go codeql

* support workflow_dispatch for codeql checks

* syntax fix

* enable on push to codeql-go branch

* test

* use go version from go.mod

* explicitly set go version

* tidy up, add workflow_dispatch support to all codeql actions
2022-11-04 10:20:08 -04:00
Dan Cech 9ea6a43089 Build: clean up and document integration test convention (#58170)
* clean up and document integration test convention

* clarify integration test conventions

* clean up integration tests that don't follow convention

* mark testIntegration* functions as helpers to avoid confusion
2022-11-04 10:14:21 -04:00
Dan Cech 6a4a10fa92 remove unneeded package updates (#58005) 2022-11-02 09:30:20 -04:00
Dan Cech 9350ab781c clean up duplicated user creation code (#50178)
* clean up duplicated user creation code

* remove unused duplicate getOrCreateOrg function

* fix up tests
2022-06-07 09:49:18 -04:00
Dan Cech f40248a06d fix broken alias due to #48635 (#49623) 2022-05-25 11:36:56 -04:00
Dan Cech 5c3308c6f3 add ability to pass builds flags/tags to go via make, update bra config (#46787) 2022-04-01 19:01:05 -04:00
Dan Cech 51cd6f3cc5 Configuration: Add ability to customize okta login button name and icon (#44079)
* add ability to customize okta login button name and icon

* update configs, add basic frontend test

* add icon to oauth settings type

* trigger tests

* fix typecheck
2022-02-16 11:35:00 -05:00
Dan Cech 1e89fc157d update snapshots server url (#44563)
* update snapshots server url
* update all old references to snapshot.raintank.io
2022-01-27 16:11:20 -05:00
Dan Cech 34f757ba5a switch to using featureEnabled for enterprise features (#41559)
* switch to using featureEnabled for enterprise features
2022-01-07 15:11:23 -05:00
Dan Cech 993cb80fea streamline kbn.addSlashes and add a test, streamline escaping in angular tip() function (#41066)
* streamline kbn.addSlashes and add a test, streamline escaping in angular tip() function
* switch to double-html-encoding when building intermediate string
2021-11-05 09:18:42 -04:00
878b54c83c update links in README.md (#33195)
* update links in README.md

* Switch links to use HEAD url

Co-authored-by: Richard Hartmann <RichiH@users.noreply.github.com>

Co-authored-by: Richard Hartmann <RichiH@users.noreply.github.com>
Co-authored-by: Torkel Ödegaard <torkel@grafana.com>
2021-09-21 10:21:27 -04:00
Dan Cech f8ae71af5b Usage Stats Updates (#39235)
* add randomly-generated anonymous id to usage reports
* include uptime in stats
* add last_sent tracking, remove metricsLogger
2021-09-15 11:47:44 -04:00
Dan Cech 9dfd469afc add daily active counts to stats (#38842)
* add daily active counts to stats

* standardize on int64, update tests
2021-09-13 10:29:35 -04:00
Dan CechandAlexander Emelin 681de1ea89 add key/value store service (#36868)
* add key/value store service

* don't export kvStoreSQL, consumers should interact with KVStore & NamespacedKVStore

* add del method, avoid ErrNotFound (#38627)

* switch value column to medium text

Co-authored-by: Alexander Emelin <frvzmb@gmail.com>
2021-08-31 11:05:45 -04:00
Dan Cech 5a56594f0c add instructions for managing redirects when moving docs pages around (#37113) 2021-07-22 13:46:40 -04:00
Dan Cech 50b7674b58 fix alerting docs aliases so we redirect instead of 404 old urls (#37037)
* fix alerting docs aliases so we redirect instead of 404 old urls

* add missing alias
2021-07-20 20:34:23 -04:00
Dan Cech 06061c8741 skip symlinks to directories when generating plugin manifest (#30721) 2021-01-29 08:51:37 -05:00
Dan Cech 4629c44d49 Toolkit: implement plugin signing in grafana-toolkit (#27907)
* implement plugin signing in grafana-toolkit
2020-10-05 11:27:43 -04:00
Dan Cech 53153c82fc add method to get usage report (#27555) 2020-09-15 09:01:15 -04:00
Dan Cech 66c6b20c4b Update cloud docs link (#25545) 2020-08-26 10:19:11 -04:00
Dan Cech 85f6addfd3 Update getting started link (#26374) 2020-07-16 11:27:08 -04:00
Dan Cech b5ca2381bc provide license token directly via plugin environment (#25987)
* provide license token directly via plugin environment
2020-07-01 13:02:53 -04:00
Dan Cech 66b7398fb6 expose metrics for the number of configured datasources (#24267) 2020-05-06 11:36:18 -04:00
Dan Cech 2ecc7f22b9 delete old dashboard versions in multiple batches (#23348) 2020-04-06 11:44:14 -04:00
Dan CechandDiana Payton 5addf9fafd docs: rename premium plugins to enterprise plugins (#21222)
* rename premium plugins to enterprise plugins

* Update docs/sources/enterprise/_index.md

Co-Authored-By: Diana Payton <52059945+oddlittlebird@users.noreply.github.com>
2019-12-20 18:40:25 -05:00
Dan Cech 302a1f06bc Docker: switch docker image to alpine base with phantomjs support (#18468)
* switch docker image to alpine base

* Docker: switch packaging image to alpine

* use alpine image for build containers

* switch base images in build script

* only try to set up phantomjs on x86_64, reduce number of layers

* phantomjs binary is bundled with grafana
2019-08-16 17:46:35 +02:00
Dan Cech 5e7537878e Security: Prevent csv formula injection attack (#17363)
* mitigate https://www.owasp.org/index.php/CSV_Injection

- prepend csv cell values that begin with -, +, = or @ with '
- trim trailing whitespace from all csv values

* test for csv formula injection mitigation
2019-05-30 07:07:19 +02:00
Dan Cech 3f85901c4a only update session in mysql database when required 2018-12-18 11:19:32 -05:00
Dan Cech 8a74fe2b76 add auth.proxy headers to sample.ini 2018-11-07 18:21:25 -05:00
Dan Cech 502290817a add auth.proxy headers to default.ini 2018-11-07 17:36:44 -05:00
Dan Cech 19b69a82af fmt 2018-10-11 15:26:06 -04:00
Dan Cech a4f90fd10d add admin page to show enterprise license status 2018-10-10 13:04:54 -04:00
Dan Cech d20b15834f add gopkg.in/square/go-jose.v2 to dependencies, update github.com/hashicorp/yamux 2018-10-08 17:11:24 -04:00
Dan Cech 124b21a6aa use pluginName consistently when upgrading plugins 2018-09-13 17:19:51 -04:00
Dan Cech 8d0a100b94 remove duplicated /tmp entry in .dockerignore 2018-08-09 09:10:53 +02:00
Dan Cech c025490518 move run script, update README 2018-08-09 09:10:53 +02:00
Dan Cech 96d6657b00 produce an image compatible with grafana-docker 2018-08-09 09:10:53 +02:00
Dan Cech 9b29a19609 update google auth config docs 2018-06-04 12:32:35 -04:00
Dan Cech 3fedcb1e4b cleanup, make sure users are always synced with ldap 2018-04-17 17:48:56 -04:00
Dan Cech 33760b5c3b make sure user's default org is kept up to date 2018-04-17 16:51:05 -04:00
Dan Cech 00e74990ed remove old comment 2018-04-17 14:06:25 -04:00
Dan Cech 857830d981 org role sync tests 2018-04-17 14:06:25 -04:00
Dan Cech 52503d9cb5 refactor authproxy & ldap integration, address comments 2018-04-17 14:06:25 -04:00
Dan Cech c8a0c1e6b8 pass DN in ldap test 2018-04-17 14:06:25 -04:00
Dan Cech daeba40b3b tests for user auth module 2018-04-17 14:06:25 -04:00
Dan Cech 59f83ca5d8 fix ldap test 2018-04-17 14:06:25 -04:00
Dan Cech e53e039b1b restructure GetUserByAuthInfo 2018-04-17 14:06:25 -04:00