* Secrets: make the decrypt package a go work module
* Chore: add Operator Experience as codeowner for secrets apis
* Chore: move module up two folders
* wip: Create a proxy state manager to avoid complexity
* Read path redirecting
* add tests for unified dashboard API
* add tests
* Contemplate both formats in DashboardProxy
* Fix force old
* Fix tests for proxy
* catch errors
* Save as V2 when dynamic dashboard is enabled
* Improve tests
* Remove feature toggle
* Use kubernetesDashboards for e2e suite
* Fix issue when loading snapshots
* Fix typescript errors
* Integrate with backend conversion error
* Remove legacy annotation
* fix snapshot loading; lint
* Add missing hideTimeControls
* fix test
* make setupDashboardAPI to all suites
* refactor getDashboardAPI
* Add tests
* fix DashboardScenePage tests
* fix tests
* fix go tests
* Refactor to understand better the need of transforming to v2 to compare
* Fix detect changes logic
* yes status from schema gen
---------
Co-authored-by: alexandra vargas <alexa1866@gmail.com>
Co-authored-by: Haris Rozajac <haris.rozajac12@gmail.com>
* Provisioning: Define secrets service
* Provisioning: Create and store secrets service
* Provisioning: Define safepath
* Provisioning: Define the repository
* Identity: Support a provisioning service
* Provisioning: Define a job queue
* Chore: Regen code
* Provisioning: Show progress more often
Co-Authored-By: Ryan McKinley <ryantxu@gmail.com>
* Provisioning: Rename hash field to lastRef
Co-Authored-By: =?UTF-8?q?Roberto=20Jim=C3=A9nez=20S=C3=A1nchez?= <roberto.jimenez@grafana.com>
* Provisioning: Workflows as write access
Co-Authored-By: Ryan McKinley <ryantxu@gmail.com>
* Provisioning: Regen OpenAPI snapshot
* Provisioning: Update tests to match new fields
---------
Co-authored-by: Ryan McKinley <ryantxu@gmail.com>
Co-authored-by: =?UTF-8?q?Roberto=20Jim=C3=A9nez=20S=C3=A1nchez?= <roberto.jimenez@grafana.com>
* Provisioning: Remove S3
* Provisioning: Use URL for GitHub
Co-Authored-By: Ryan McKinley <ryantxu@gmail.com>
Co-Authored-By: Alex Khomenko <Clarity-89@users.noreply.github.com>
* Provisioning: Use workflow list
Co-Authored-By: =?UTF-8?q?Roberto=20Jim=C3=A9nez=20S=C3=A1nchez?= <roberto.jimenez@grafana.com>
* Provisioning: Model secrets
* Provisioning: Define a total in the job summary
* Provisioning: Generate code
* Provisioning: Update testdata
---------
Co-authored-by: Ryan McKinley <ryantxu@gmail.com>
Co-authored-by: Alex Khomenko <Clarity-89@users.noreply.github.com>
Co-authored-by: =?UTF-8?q?Roberto=20Jim=C3=A9nez=20S=C3=A1nchez?= <roberto.jimenez@grafana.com>
* Provisioning: Jobs: Define repository name field
* Provisioning: Jobs: Separate options per job type
* Provisioning: Define a sanitised settings resource
* Provisioning: Jobs: Define a job summary
* Provisioning: Remove linting
* Provisioning: Update docs for a few fields
* Provisioning: Remove HelloWorld
* Provisioning: Replace Repository with Message in job info
* Provisioning: Remove YAML support
* Provisioning: Remove custom folder specification
* Provisioning: Support read-only repositories
* Provisioning: Remove edit options
* Provisioning: Add sync options for repositories
* Provisioning: Add resource statistics
* Provisioning: Make slices atomic lists
* Provisioning: Message list needs to exist even if empty
If we don't do this, we can't clear the messages field, leading to buggy UX.
* Provisioning: Support incremental syncing
* Provisioning: Remove the 'items' subresource workaround
* Provisioning: Add resource list
* Provisioning: Reformat
* Provisioning: Declare new types
* OpenAPI: Generate openapi JSON spec from generated code
* Codegen: Generate OpenAPI spec
* Provisioning: Support generating frontend API
* Codegen: Generate Go code
* Provisioning: Define the base API
* Codegen: Generate frontend endpoints for provisioning
* Refactor: yarn prettier:write
* Provisioning: Tiger team takes ownership
* Chore: Remove dir we haven't added yet
* Provisioning: Remove frontend
* Test: Update example repositories
* add support for deleted query param
* support tag query param in modes 2 and below
* handle dashboardIds
* hhandle dashboardUIDs
* handle folderUIDs query param
* handle page query param when hitting legacy storage
* handle sort query param
* handle type query param
* re-enable search fallback
* remove folder search workaround and fix /api/search to return both folders and dashboards when no title or type is provided
---------
Co-authored-by: Stephanie Hingtgen <stephanie.hingtgen@grafana.com>
* Implement k8s count handler
* Fix endpoint
* Fix type converstions
* Add tests for foldercounts
* Add more tests
* Only use sql-fallback if no values in unistore
* Update gomod
* Fix test
* Update pkg/api/folder_test.go
Co-authored-by: Bruno Abrantes <bruno.abrantes@grafana.com>
* Go.mod
---------
Co-authored-by: Bruno Abrantes <bruno.abrantes@grafana.com>
* create notifications module and generate models
* switch template group to app models
* switch time intervals to use app models
* switch receiver to use app models
* switch routing tree to use app models
* move schema registration to resource packages
* fix package names to match app
* fix codeowners
* fix UI to use metadata.name instead of uid
* update dockerfile
* move generated models to pkg
* remove provenance from field selector
* move client factories to test files
* rename GenericClient to TypedClient
* Introduce new models RoutingTree, RouteDefaults and Route and api-server to serve them that is backed by provisioning notification policy service.
* update method UpdatePolicyTree of notification policy service to return route and new version
* declare new actions alert.notifications.routes:read and alert.notifications.routes:write and two corresponding fixed roles.
---------
Co-authored-by: Tom Ratcliffe <tom.ratcliffe@grafana.com>
Co-authored-by: Matthew Jacobson <matthew.jacobson@grafana.com>
* Extract a helper funtion to perform list with authorization checks
* Add k8s verb to utils package
* Construct default mapping when no custom mapping is passed
* Configure authorization checks for service accounts
* Fix helper and add filtering to service accounts
* Include access control metadata in k8s receiver List & Get
* Add tests for receiver access
* Simplify receiver access provisioning extension
- prevents edge case infinite recursion
- removes read requirement from create