service

package
v0.6.0 Latest Latest
Warning

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

Go to latest
Published: Mar 18, 2024 License: BSD-3-Clause-LBNL Imports: 57 Imported by: 0

Documentation

Index

Constants

View Source
const (
	CloudType  = "cloud_type"
	BucketName = "bucket_name"
	Prefix     = "prefix"
	Kind       = "kind"
	Custom     = "custom"
	AccessId   = "access_id"
	SecretKey  = "secret_key"
	Endpoint   = "endpoint"
	Region     = "region"
	SSLEnabled = "ssl_enabled"
	InitBucket = "init_bucket"
)
View Source
const (
	AdminUserPermission = 4
)
View Source
const StorageContext = ContextStorage("storage")

Variables

View Source
var (
	DefaultFolderName = "General"
	DefaultFolderId   = int64(0)
)

Functions

func BuildResourceFolder added in v0.5.2

func BuildResourceFolder(folderName string, resourceType config.ResourceType) string

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 AuthenticationApi

type AuthenticationApi interface {
	TokenApi
	ServiceAccountApi
	Login()
}

AuthenticationApi Contract definition

type CloudStorage

type CloudStorage struct {
	BucketRef   *blob.Bucket
	BucketName  string
	Prefix      string
	StorageName string
}

func (*CloudStorage) FindAllFiles

func (s *CloudStorage) FindAllFiles(folder string, fullPath bool) ([]string, error)

func (*CloudStorage) Name

func (s *CloudStorage) Name() string

func (*CloudStorage) ReadFile

func (s *CloudStorage) ReadFile(filename string) ([]byte, error)

ReadFile read file from Cloud Provider and return byte array

func (*CloudStorage) WriteFile

func (s *CloudStorage) WriteFile(filename string, data []byte) error

WriteFile persists data to Cloud Provider Storage returning error if operation failed

type ConnectionPermissions added in v0.5.0

type ConnectionPermissions interface {
	// Permissions Enterprise only
	ListConnectionPermissions(filter filters.Filter) map[*models.DataSourceListItemDTO]*models.DataSourcePermissionsDTO
	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 ContextStorage

type ContextStorage string

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) 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) 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) 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) 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) map[*models.DataSourceListItemDTO]*models.DataSourcePermissionsDTO

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) 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) ListFolder

func (s *DashNGoImpl) ListFolder(filter filters.Filter) []*models.Hit

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

func (*DashNGoImpl) ListFolderPermissions added in v0.4.5

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

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

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)

Testing Only

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) UploadDashboards added in v0.5.0

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

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

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, pref *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 DashboardsApi

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

DashboardsApi Contract definition

type FoldersApi

type FoldersApi interface {
	ListFolder(filter filters.Filter) []*models.Hit
	DownloadFolders(filter filters.Filter) []string
	UploadFolders(filter filters.Filter) []string
	DeleteAllFolders(filter filters.Filter) []string
	//Permissions
	ListFolderPermissions(filter filters.Filter) map[*models.Hit][]*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 LocalStorage

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

LocalStorage default storage engine

func (*LocalStorage) FindAllFiles

func (s *LocalStorage) FindAllFiles(folder string, fullPath bool) ([]string, error)

func (*LocalStorage) Name

func (s *LocalStorage) Name() string

func (*LocalStorage) ReadFile

func (s *LocalStorage) ReadFile(filename string) ([]byte, error)

ReadFile returns a byte array of file content

func (*LocalStorage) WriteFile

func (s *LocalStorage) WriteFile(filename string, data []byte) error

WriteFile writes file to disk and returns an error if operation failed

type NewClientOpts added in v0.5.2

type NewClientOpts func(transportConfig *client.TransportConfig)

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 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 Storage

type Storage interface {
	WriteFile(filename string, data []byte) error                // WriteFile returns error or writes byte array to destination
	ReadFile(filename string) ([]byte, error)                    // ReadFile returns byte array or error with data from file
	FindAllFiles(folder string, fullPath bool) ([]string, error) // FindAllFiles recursively list all files for a given path
	Name() string                                                // Name of storage engine
}

TODO: pull all the cloud based interaction into a Plugin System

func NewCloudStorage

func NewCloudStorage(c context.Context) (Storage, error)

func NewLocalStorage

func NewLocalStorage(ctx context.Context) Storage

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