Affected by GO-2022-0342
and 25 other vulnerabilities
GO-2022-0342 : Grafana XSS in Dashboard Text Panel in github.com/grafana/grafana
GO-2022-0707 : Grafana Authentication Bypass in github.com/grafana/grafana
GO-2024-2483 : Grafana XSS via adding a link in General feature in github.com/grafana/grafana
GO-2024-2510 : Grafana Cross-site Scripting (XSS) in github.com/grafana/grafana
GO-2024-2513 : Grafana information disclosure in github.com/grafana/grafana
GO-2024-2515 : Grafana XSS via the OpenTSDB datasource in github.com/grafana/grafana
GO-2024-2516 : Grafana XSS via a column style in github.com/grafana/grafana
GO-2024-2517 : Grafana XSS in header column rename in github.com/grafana/grafana
GO-2024-2519 : Grafana world readable configuration files in github.com/grafana/grafana
GO-2024-2520 : Grafana XSS via a query alias for the ElasticSearch datasource in github.com/grafana/grafana
GO-2024-2523 : Grafana stored XSS in github.com/grafana/grafana
GO-2024-2629 : Grafana's users with permissions to create a data source can CRUD all data sources in github.com/grafana/grafana
GO-2024-2661 : Arbitrary file read in github.com/grafana/grafana
GO-2024-2697 : Grafana: Users outside an organization can delete a snapshot with its key in github.com/grafana/grafana
GO-2024-2843 : Grafana Email addresses and usernames can not be trusted in github.com/grafana/grafana
GO-2024-2844 : Grafana User enumeration via forget password in github.com/grafana/grafana
GO-2024-2847 : Grafana Escalation from admin to server admin when auth proxy is used in github.com/grafana/grafana
GO-2024-2848 : Grafana when using email as a username can block other users from signing in in github.com/grafana/grafana
GO-2024-2851 : Grafana Data source and plugin proxy endpoints leaking authentication tokens to some destination plugins in github.com/grafana/grafana
GO-2024-2852 : Grafana account takeover via OAuth vulnerability in github.com/grafana/grafana
GO-2024-2854 : Grafana folders admin only permission privilege escalation in github.com/grafana/grafana
GO-2024-2855 : Grafana Plugin signature bypass in github.com/grafana/grafana
GO-2024-2856 : Grafana Race condition allowing privilege escalation in github.com/grafana/grafana
GO-2024-2857 : Grafana Stored Cross-site Scripting in Unified Alerting in github.com/grafana/grafana
GO-2024-2867 : Grafana Spoofing originalUrl of snapshots in github.com/grafana/grafana
GO-2024-3079 : Grafana plugin data sources vulnerable to access control bypass in github.com/grafana/grafana
Discover Packages
github.com/grafana/grafana
pkg
services
playlist
package
Version:
v0.0.0-cloud
Opens a new window with list of versions in this module.
Published: Mar 30, 2023
License: AGPL-3.0
Opens a new window with license information.
Imports: 3
Opens a new window with list of imports.
Imported by: 0
Opens a new window with list of known importers.
Documentation
Documentation
¶
View Source
var (
ErrPlaylistNotFound = errors .New ("Playlist not found")
ErrPlaylistFailedGenerateUniqueUid = errors .New ("failed to generate unique playlist UID")
ErrCommandValidationFailed = errors .New ("command missing required fields")
)
Typed errors
type CreatePlaylistCommand struct {
Name string `json:"name" binding:"Required"`
Interval string `json:"interval"`
Items []PlaylistItem `json:"items"`
OrgId int64 `json:"-"`
}
type DeletePlaylistCommand struct {
UID string
OrgId int64
}
type GetPlaylistByUidQuery struct {
UID string
OrgId int64
}
type GetPlaylistItemsByUidQuery struct {
PlaylistUID string
OrgId int64
}
type Playlist struct {
Id int64 `json:"id,omitempty" db:"id"`
UID string `json:"uid" xorm:"uid" db:"uid"`
Name string `json:"name" db:"name"`
Interval string `json:"interval" db:"interval"`
OrgId int64 `json:"-" db:"org_id"`
}
Playlist model
type PlaylistItem struct {
Id int64 `db:"id"`
PlaylistId int64 `db:"playlist_id"`
Type string `json:"type" db:"type"`
Value string `json:"value" db:"value"`
Order int `json:"order" db:"order"`
Title string `json:"title" db:"title"`
}
type Service interface {
Create(context .Context , *CreatePlaylistCommand ) (*Playlist , error )
Update(context .Context , *UpdatePlaylistCommand ) (*PlaylistDTO , error )
GetWithoutItems(context .Context , *GetPlaylistByUidQuery ) (*Playlist , error )
Get(context .Context , *GetPlaylistByUidQuery ) (*PlaylistDTO , error )
Search(context .Context , *GetPlaylistsQuery ) (Playlists , error )
Delete(ctx context .Context , cmd *DeletePlaylistCommand ) error
}
type UpdatePlaylistCommand struct {
OrgId int64 `json:"-"`
UID string `json:"uid"`
Name string `json:"name" binding:"Required"`
Interval string `json:"interval"`
Items []PlaylistItem `json:"items"`
}
Source Files
¶
Directories
¶
Click to show internal directories.
Click to hide internal directories.