service

package
v0.7.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 16, 2025 License: BSD-3-Clause-LBNL Imports: 49 Imported by: 0

Documentation

Index

Constants

View Source
const (
	AdminUserPermission = 4
)

Variables

View Source
var (
	DefaultFolderName = "General"

	SearchTypeFolder = "dash-folder"
)
View Source
var DefaultConfigProvider config.Provider = func() *config.Configuration {
	return config.Config()
}

Functions

func BuildResourceFolder added in v0.5.2

func BuildResourceFolder(folderName string, resourceType config.ResourceType, createDestination bool, clearOutput bool) string

func ConfigureStorage added in v0.7.2

func ConfigureStorage(provider config.Provider) (storage.Storage, error)

func GetNestedFolder added in v0.7.1

func GetNestedFolder(folderTitle, folderUID string, folders []*customTypes.FolderDetails) string

GetNestedFolder returns a nested path for a given folder. Public version of GetNestedFolder, do not call from within service, not optimized.

func GetSlug

func GetSlug(title string) string

func NewConnectionFilter added in v0.5.0

func NewConnectionFilter(name string) filters.Filter

NewConnectionFilter

func NewDashboardFilter

func NewDashboardFilter(entries ...string) filters.Filter

func NewFolderFilter

func NewFolderFilter() filters.Filter

func NewOrganizationFilter added in v0.6.0

func NewOrganizationFilter(args ...string) filters.Filter

func NewTeamFilter

func NewTeamFilter(entries ...string) filters.Filter

func NewUserFilter added in v0.4.5

func NewUserFilter(label string) filters.Filter

Types

type AlertingApi added in v0.7.2

type AlertingApi interface {
	ListContactPoints() ([]*models.EmbeddedContactPoint, error)
	DownloadContactPoints() (string, error)
	ClearContactPoints() ([]string, error)
	UploadContactPoints() ([]string, error)
}

type AuthenticationApi

type AuthenticationApi interface {
	TokenApi
	ServiceAccountApi
	Login()
}

AuthenticationApi Contract definition

type ConnectionPermissions added in v0.5.0

type ConnectionPermissions interface {
	// Permissions Enterprise only
	ListConnectionPermissions(filter filters.Filter) []customModels.ConnectionPermissionItem
	DownloadConnectionPermissions(filter filters.Filter) []string
	UploadConnectionPermissions(filter filters.Filter) []string
	DeleteAllConnectionPermissions(filter filters.Filter) []string
}

type ConnectionsApi added in v0.5.0

type ConnectionsApi interface {
	ListConnections(filter filters.Filter) []models.DataSourceListItemDTO
	DownloadConnections(filter filters.Filter) []string
	UploadConnections(filter filters.Filter) []string
	DeleteAllConnections(filter filters.Filter) []string
	ConnectionPermissions
}

ConnectionsApi Contract definition

type DashNGoImpl

type DashNGoImpl struct {
	// contains filtered or unexported fields
}

func NewDashNGoImpl

func NewDashNGoImpl() *DashNGoImpl

func (*DashNGoImpl) AddUserToOrg added in v0.5.0

func (s *DashNGoImpl) AddUserToOrg(role, orgSlug string, userId int64) error

func (*DashNGoImpl) ClearContactPoints added in v0.7.2

func (s *DashNGoImpl) ClearContactPoints() ([]string, error)

func (*DashNGoImpl) ClearDashboardPermissions added in v0.7.2

func (s *DashNGoImpl) ClearDashboardPermissions(filterReq filters.Filter) error

func (*DashNGoImpl) CreateAPIKey

func (s *DashNGoImpl) CreateAPIKey(name, role string, expiration int64) (*models.NewAPIKeyResult, error)

CreateAPIKey create a new key for the given role and expiration specified

func (*DashNGoImpl) CreateServiceAccount

func (s *DashNGoImpl) CreateServiceAccount(name, role string, expiration int64) (*models.ServiceAccountDTO, error)

func (*DashNGoImpl) CreateServiceAccountToken

func (s *DashNGoImpl) CreateServiceAccountToken(serviceAccountId int64, name string, expiration int64) (*models.NewAPIKeyResult, error)

func (*DashNGoImpl) DeleteAllConnectionPermissions added in v0.5.0

func (s *DashNGoImpl) DeleteAllConnectionPermissions(filter filters.Filter) []string

DeleteAllConnectionPermissions clear all non-default permissions from all connections

func (*DashNGoImpl) DeleteAllConnections added in v0.5.0

func (s *DashNGoImpl) DeleteAllConnections(filter filters.Filter) []string

DeleteAllConnections Removes all current datasources

func (*DashNGoImpl) DeleteAllDashboards

func (s *DashNGoImpl) DeleteAllDashboards(filter filters.Filter) []string

DeleteAllDashboards clears all current dashboards being monitored. Any folder not white listed will not be affected

func (*DashNGoImpl) DeleteAllFolders added in v0.5.0

func (s *DashNGoImpl) DeleteAllFolders(filter filters.Filter) []string

DeleteAllFolders deletes all the matching folders from grafana

func (*DashNGoImpl) DeleteAllLibraryElements

func (s *DashNGoImpl) DeleteAllLibraryElements(filter filters.Filter) []string

DeleteAllLibraryElements deletes all the Library Elements

func (*DashNGoImpl) DeleteAllServiceAccounts

func (s *DashNGoImpl) DeleteAllServiceAccounts() []string

func (*DashNGoImpl) DeleteAllTokens

func (s *DashNGoImpl) DeleteAllTokens() []string

DeleteAllTokens Deletes all known tokens

func (*DashNGoImpl) DeleteAllUsers

func (s *DashNGoImpl) DeleteAllUsers(filter filters.Filter) []string

DeleteAllUsers remove all users excluding admin or anything matching the filter

func (*DashNGoImpl) DeleteServiceAccountTokens

func (s *DashNGoImpl) DeleteServiceAccountTokens(serviceId int64) []string

func (*DashNGoImpl) DeleteTeam

func (s *DashNGoImpl) DeleteTeam(filter filters.Filter) ([]*models.TeamDTO, error)

DeleteTeam removes all Teams

func (*DashNGoImpl) DeleteUserFromOrg added in v0.5.0

func (s *DashNGoImpl) DeleteUserFromOrg(orgSlugName string, userId int64) error

func (*DashNGoImpl) DownloadConnectionPermissions added in v0.5.0

func (s *DashNGoImpl) DownloadConnectionPermissions(filter filters.Filter) []string

DownloadConnectionPermissions download permissions to local file system

func (*DashNGoImpl) DownloadConnections added in v0.5.0

func (s *DashNGoImpl) DownloadConnections(filter filters.Filter) []string

DownloadConnections will read in all the configured datasources. NOTE: credentials cannot be retrieved and need to be set via configuration

func (*DashNGoImpl) DownloadContactPoints added in v0.7.2

func (s *DashNGoImpl) DownloadContactPoints() (string, error)

func (*DashNGoImpl) DownloadDashboardPermissions added in v0.7.2

func (s *DashNGoImpl) DownloadDashboardPermissions(filterReq filters.Filter) ([]string, error)

func (*DashNGoImpl) DownloadDashboards added in v0.5.0

func (s *DashNGoImpl) DownloadDashboards(filter filters.Filter) []string

DownloadDashboards saves all dashboards matching query to configured location

func (*DashNGoImpl) DownloadFolderPermissions added in v0.5.0

func (s *DashNGoImpl) DownloadFolderPermissions(filter filters.Filter) []string

DownloadFolderPermissions downloads all the current folder permissions based on filter.

func (*DashNGoImpl) DownloadFolders added in v0.5.0

func (s *DashNGoImpl) DownloadFolders(filter filters.Filter) []string

DownloadFolders Download all the given folders matching filter

func (*DashNGoImpl) DownloadLibraryElements added in v0.5.0

func (s *DashNGoImpl) DownloadLibraryElements(filter filters.Filter) []string

DownloadLibraryElements downloads all the Library Elements

func (*DashNGoImpl) DownloadOrganizations added in v0.5.0

func (s *DashNGoImpl) DownloadOrganizations(filter filters.Filter) []string

DownloadOrganizations Download organizations

func (*DashNGoImpl) DownloadTeams added in v0.5.0

func (s *DashNGoImpl) DownloadTeams(filter filters.Filter) map[*models.TeamDTO][]*models.TeamMemberDTO

DownloadTeams fetches all teams for a given Org

func (*DashNGoImpl) DownloadUsers added in v0.5.0

func (s *DashNGoImpl) DownloadUsers(filter filters.Filter) []string

func (*DashNGoImpl) GetAdminClient added in v0.5.2

func (s *DashNGoImpl) GetAdminClient() *client.GrafanaHTTPAPI

GetAdminClient Returns the admin defaultClient if one is configured

func (*DashNGoImpl) GetBasicAuthClient added in v0.5.2

func (s *DashNGoImpl) GetBasicAuthClient() *client.GrafanaHTTPAPI

GetBasicAuthClient returns a basic auth grafana API Client

func (*DashNGoImpl) GetBasicClientWithOpts added in v0.7.1

func (s *DashNGoImpl) GetBasicClientWithOpts(opts ...NewClientOpts) *client.GrafanaHTTPAPI

func (*DashNGoImpl) GetClient added in v0.5.2

func (s *DashNGoImpl) GetClient() *client.GrafanaHTTPAPI

GetClient Returns a new defaultClient given token precedence over Basic Auth

func (*DashNGoImpl) GetOrgPreferences added in v0.6.0

func (s *DashNGoImpl) GetOrgPreferences(orgName string) (*models.Preferences, error)

GetOrgPreferences returns the preferences for a given Org orgName: The name of the organization whose preferences we should retrieve

func (*DashNGoImpl) GetServerInfo

func (s *DashNGoImpl) GetServerInfo() map[string]interface{}

GetServerInfo returns basic Grafana Server info

func (*DashNGoImpl) GetTokenOrganization added in v0.5.0

func (s *DashNGoImpl) GetTokenOrganization() *models.OrgDetailsDTO

GetTokenOrganization returns the organizations associated with the given token. (This property is immutable)

func (*DashNGoImpl) GetUserInfo added in v0.5.0

func (s *DashNGoImpl) GetUserInfo() (*models.UserProfileDTO, error)

GetUserInfo get signed-in user info, requires Basic authentication

func (*DashNGoImpl) GetUserOrganization added in v0.5.0

func (s *DashNGoImpl) GetUserOrganization() *models.OrgDetailsDTO

GetUserOrganization returns the organizations the user is a member of.

func (*DashNGoImpl) InitOrganizations added in v0.5.0

func (s *DashNGoImpl) InitOrganizations()

InitOrganizations will context switch to configured organization and invoke a different call depending on the access level.

func (*DashNGoImpl) IsEnterprise added in v0.7.1

func (s *DashNGoImpl) IsEnterprise() bool

IsEnterprise will return a valid response if the grafana version is running an enterprise version

func (*DashNGoImpl) LintDashboards added in v0.6.0

func (s *DashNGoImpl) LintDashboards(req types.LintRequest) []string

func (*DashNGoImpl) ListAPIKeys

func (s *DashNGoImpl) ListAPIKeys() []*models.APIKeyDTO

ListAPIKeys returns a list of all known API Keys and service accounts

func (*DashNGoImpl) ListConnectionPermissions added in v0.5.0

func (s *DashNGoImpl) ListConnectionPermissions(filter filters.Filter) []types.ConnectionPermissionItem

ListConnectionPermissions lists all connection permission matching the given filter

func (*DashNGoImpl) ListConnections added in v0.5.0

func (s *DashNGoImpl) ListConnections(filter filters.Filter) []models.DataSourceListItemDTO

ListConnections list all the currently configured datasources

func (*DashNGoImpl) ListContactPoints added in v0.7.2

func (s *DashNGoImpl) ListContactPoints() ([]*models.EmbeddedContactPoint, error)

func (*DashNGoImpl) ListDashboardPermissions added in v0.7.2

func (s *DashNGoImpl) ListDashboardPermissions(filterReq filters.Filter) ([]types.DashboardAndPermissions, error)

func (*DashNGoImpl) ListDashboards

func (s *DashNGoImpl) ListDashboards(filterReq filters.Filter) []*models.Hit

ListDashboards List all dashboards optionally filtered by folder name. If folderFilters is blank, defaults to the configured Monitored folders

func (*DashNGoImpl) ListFolderPermissions added in v0.4.5

func (s *DashNGoImpl) ListFolderPermissions(filter filters.Filter) map[*types.FolderDetails][]*models.DashboardACLInfoDTO

ListFolderPermissions retrieves all current folder permissions TODO: add concurrency to folder permissions calls

func (*DashNGoImpl) ListFolders added in v0.7.1

func (s *DashNGoImpl) ListFolders(filter filters.Filter) []*types.FolderDetails

ListFolders list the current existing folders that match the given filter.

func (*DashNGoImpl) ListLibraryElements

func (s *DashNGoImpl) ListLibraryElements(filter filters.Filter) []*models.LibraryElementDTO

func (*DashNGoImpl) ListLibraryElementsConnections

func (s *DashNGoImpl) ListLibraryElementsConnections(filter filters.Filter, connectionID string) []*models.DashboardFullWithMeta

func (*DashNGoImpl) ListOrgUsers added in v0.5.0

func (s *DashNGoImpl) ListOrgUsers(orgId int64) []*models.OrgUserDTO

func (*DashNGoImpl) ListOrganizations

func (s *DashNGoImpl) ListOrganizations(filter filters.Filter, withPreferences bool) []*types.OrgsDTOWithPreferences

ListOrganizations List all dashboards

func (*DashNGoImpl) ListServiceAccounts

func (s *DashNGoImpl) ListServiceAccounts() []*types.ServiceAccountDTOWithTokens

func (*DashNGoImpl) ListServiceAccountsTokens

func (s *DashNGoImpl) ListServiceAccountsTokens(id int64) ([]*models.TokenDTO, error)

func (*DashNGoImpl) ListTeams

func (s *DashNGoImpl) ListTeams(filter filters.Filter) map[*models.TeamDTO][]*models.TeamMemberDTO

List all Teams

func (*DashNGoImpl) ListUserOrganizations added in v0.6.0

func (s *DashNGoImpl) ListUserOrganizations() ([]*models.UserOrgDTO, error)

func (*DashNGoImpl) ListUsers

func (s *DashNGoImpl) ListUsers(filter filters.Filter) []*models.UserSearchHitDTO

ListUsers list all grafana users

func (*DashNGoImpl) Login

func (s *DashNGoImpl) Login()

Login sets admin flag and provisions the Extended API for calls unsupported by the OpenAPI spec.

func (*DashNGoImpl) PromoteUser

func (s *DashNGoImpl) PromoteUser(userLogin string) (string, error)

PromoteUser promote the user to have Admin Access

func (*DashNGoImpl) SetOrganizationByName added in v0.6.0

func (s *DashNGoImpl) SetOrganizationByName(name string, useSlug bool) error

func (*DashNGoImpl) SetStorage

func (s *DashNGoImpl) SetStorage(v storage.Storage)

func (*DashNGoImpl) SetUserOrganizations added in v0.5.0

func (s *DashNGoImpl) SetUserOrganizations(id int64) error

func (*DashNGoImpl) SwitchOrganizationByName added in v0.6.0

func (s *DashNGoImpl) SwitchOrganizationByName(orgName string) error

SwitchOrganizationByName switch organization context

func (*DashNGoImpl) UpdateCurrentOrganization added in v0.5.0

func (s *DashNGoImpl) UpdateCurrentOrganization(name string) error

func (*DashNGoImpl) UpdateUserInOrg added in v0.5.0

func (s *DashNGoImpl) UpdateUserInOrg(role, orgSlug string, userId int64) error

func (*DashNGoImpl) UploadConnectionPermissions added in v0.5.0

func (s *DashNGoImpl) UploadConnectionPermissions(filter filters.Filter) []string

UploadConnectionPermissions upload connection permissions

func (*DashNGoImpl) UploadConnections added in v0.5.0

func (s *DashNGoImpl) UploadConnections(filter filters.Filter) []string

UploadConnections exports all connections to grafana using the credentials configured in config file.

func (*DashNGoImpl) UploadContactPoints added in v0.7.2

func (s *DashNGoImpl) UploadContactPoints() ([]string, error)

func (*DashNGoImpl) UploadDashboardPermissions added in v0.7.2

func (s *DashNGoImpl) UploadDashboardPermissions(filterReq filters.Filter) ([]string, error)

func (*DashNGoImpl) UploadDashboards added in v0.5.0

func (s *DashNGoImpl) UploadDashboards(filterReq filters.Filter) error

UploadDashboards finds all the dashboards in the configured location and exports them to grafana. if the folder doesn't exist, it'll be created.

func (*DashNGoImpl) UploadFolderPermissions added in v0.5.0

func (s *DashNGoImpl) UploadFolderPermissions(filter filters.Filter) []string

UploadFolderPermissions update current folder permissions to match local file system. Note: This expects all the current users and teams to already exist.

func (*DashNGoImpl) UploadFolders added in v0.5.0

func (s *DashNGoImpl) UploadFolders(filter filters.Filter) []string

UploadFolders upload all the given folders to grafana TODO: handle setting parent

func (*DashNGoImpl) UploadLibraryElements added in v0.5.0

func (s *DashNGoImpl) UploadLibraryElements(filter filters.Filter) []string

UploadLibraryElements uploads all the Library Elements

func (*DashNGoImpl) UploadOrgPreferences added in v0.6.0

func (s *DashNGoImpl) UploadOrgPreferences(orgName string, preferenceRequest *models.Preferences) error

UploadOrgPreferences Updates the preferences for a given organization. Returns error if org is not found.

func (*DashNGoImpl) UploadOrganizations added in v0.5.0

func (s *DashNGoImpl) UploadOrganizations(filter filters.Filter) []string

UploadOrganizations Upload organizations to Grafana

func (*DashNGoImpl) UploadTeams added in v0.5.0

func (s *DashNGoImpl) UploadTeams(filter filters.Filter) map[*models.TeamDTO][]*models.TeamMemberDTO

Export Teams

func (*DashNGoImpl) UploadUsers added in v0.5.0

func (s *DashNGoImpl) UploadUsers(filter filters.Filter) []types.UserProfileWithAuth

type DashboardPermissionsApi added in v0.7.2

type DashboardPermissionsApi interface {
	ListDashboardPermissions(filterReq filters.Filter) ([]gdgType.DashboardAndPermissions, error)
	DownloadDashboardPermissions(filterReq filters.Filter) ([]string, error)
	ClearDashboardPermissions(filterReq filters.Filter) error
	UploadDashboardPermissions(filterReq filters.Filter) ([]string, error)
}

type DashboardsApi

type DashboardsApi interface {
	ListDashboards(filter filters.Filter) []*models.Hit
	DownloadDashboards(filter filters.Filter) []string
	UploadDashboards(filter filters.Filter) error
	DeleteAllDashboards(filter filters.Filter) []string
	LintDashboards(req types.LintRequest) []string
}

DashboardsApi Contract definition

type FoldersApi

type FoldersApi interface {
	ListFolders(filter filters.Filter) []*customModels.FolderDetails
	DownloadFolders(filter filters.Filter) []string
	UploadFolders(filter filters.Filter) []string
	DeleteAllFolders(filter filters.Filter) []string
	// Permissions
	ListFolderPermissions(filter filters.Filter) map[*customModels.FolderDetails][]*models.DashboardACLInfoDTO
	DownloadFolderPermissions(filter filters.Filter) []string
	UploadFolderPermissions(filter filters.Filter) []string
}

FoldersApi Contract definition

type LibraryElementsApi

type LibraryElementsApi interface {
	ListLibraryElements(filter filters.Filter) []*models.LibraryElementDTO
	ListLibraryElementsConnections(filter filters.Filter, connectionID string) []*models.DashboardFullWithMeta
	DownloadLibraryElements(filter filters.Filter) []string
	UploadLibraryElements(filter filters.Filter) []string
	DeleteAllLibraryElements(filter filters.Filter) []string
}

type LicenseApi added in v0.7.1

type LicenseApi interface {
	IsEnterprise() bool
}

type NewClientOpts added in v0.5.2

type NewClientOpts func(transportConfig *client.TransportConfig)

func GetOrgNameClientOpts added in v0.7.1

func GetOrgNameClientOpts(orgName string) NewClientOpts

type OrgPreferencesApi added in v0.6.0

type OrgPreferencesApi interface {
	GetOrgPreferences(orgName string) (*models.Preferences, error)
	UploadOrgPreferences(orgName string, pref *models.Preferences) error
}

OrgPreferencesApi Contract definition

type OrganizationsApi

type OrganizationsApi interface {
	OrgPreferencesApi
	InitOrganizations()
	// contains filtered or unexported methods
}

OrganizationsApi Contract definition

type PermissionType added in v0.7.1

type PermissionType string
const (
	ConnectionUserPermission PermissionType = "UserPermission"
	ConnectionTeamPermission PermissionType = "TeamPermission"
	ConnectionRolePermission PermissionType = "RolePermission"
)

type ServerInfoApi added in v0.6.0

type ServerInfoApi interface {
	GetServerInfo() map[string]interface{}
}

type ServiceAccountApi

type ServiceAccountApi interface {
	ListServiceAccounts() []*gdgType.ServiceAccountDTOWithTokens
	ListServiceAccountsTokens(id int64) ([]*models.TokenDTO, error)
	DeleteAllServiceAccounts() []string
	DeleteServiceAccountTokens(serviceId int64) []string
	CreateServiceAccountToken(name int64, role string, expiration int64) (*models.NewAPIKeyResult, error)
	CreateServiceAccount(name, role string, expiration int64) (*models.ServiceAccountDTO, error)
}

type TeamsApi

type TeamsApi interface {
	// Team
	DownloadTeams(filter filters.Filter) map[*models.TeamDTO][]*models.TeamMemberDTO
	UploadTeams(filter filters.Filter) map[*models.TeamDTO][]*models.TeamMemberDTO
	ListTeams(filter filters.Filter) map[*models.TeamDTO][]*models.TeamMemberDTO
	DeleteTeam(filter filters.Filter) ([]*models.TeamDTO, error)
}

type TokenApi

type TokenApi interface {
	ListAPIKeys() []*models.APIKeyDTO
	DeleteAllTokens() []string
	CreateAPIKey(name, role string, expiration int64) (*models.NewAPIKeyResult, error)
}

type UserPermission

type UserPermission models.PermissionType

type UsersApi

type UsersApi interface {
	// UserApi
	ListUsers(filter filters.Filter) []*models.UserSearchHitDTO
	DownloadUsers(filter filters.Filter) []string
	UploadUsers(filter filters.Filter) []gdgType.UserProfileWithAuth
	DeleteAllUsers(filter filters.Filter) []string
	// Tools
	PromoteUser(userLogin string) (string, error)
	GetUserInfo() (*models.UserProfileDTO, error)
}

UsersApi Contract definition

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL