service

package
v0.0.0-...-f457e4c Latest Latest
Warning

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

Go to latest
Published: Aug 18, 2025 License: Apache-2.0 Imports: 19 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	BaseTemplates models.BaseTemplates                 = models.BaseTemplates{}
	WidgetMapping models.WidgetModuleFederationMapping = models.WidgetModuleFederationMapping{
		models.ExploreCapabilities: models.ModuleFederationMetadata{
			Scope:    "landing",
			Module:   "./ExploreCapabilities",
			Defaults: models.BaseWidgetDimensions.InitDimensions(models.BaseWidgetDimensions{}, 3, 5, 10, 1),
			Config: models.WidgetConfiguration{
				Icon:  models.RocketIcon,
				Title: "Explore capabilities",
			},
		},
		models.Edge: models.ModuleFederationMetadata{
			Scope:    "landing",
			Module:   "./EdgeWidget",
			Defaults: models.BaseWidgetDimensions.InitDimensions(models.BaseWidgetDimensions{}, 1, 4, 10, 1),
			Config: models.WidgetConfiguration{
				Icon:  models.EdgeIcon,
				Title: "Edge Management",
			},
		},
		models.ImageBuilder: models.ModuleFederationMetadata{
			Scope:    "landing",
			Module:   "./ImageBuilderWidget",
			Defaults: models.BaseWidgetDimensions.InitDimensions(models.BaseWidgetDimensions{}, 1, 4, 10, 1),
			Config: models.WidgetConfiguration{
				Icon:  models.RhelIcon,
				Title: "Image Builder",
			},
		},
		models.Ansible: models.ModuleFederationMetadata{
			Scope:    "landing",
			Module:   "./AnsibleWidget",
			Defaults: models.BaseWidgetDimensions.InitDimensions(models.BaseWidgetDimensions{}, 1, 4, 10, 1),
			Config: models.WidgetConfiguration{
				Icon:  models.AnsibleIcon,
				Title: "Ansible Automation Platform",
			},
		},
		models.Rhel: models.ModuleFederationMetadata{
			Scope:       "landing",
			Module:      "./RhelWidget",
			FeatureFlag: "widget.rhel.enable",
			Defaults:    models.BaseWidgetDimensions.InitDimensions(models.BaseWidgetDimensions{}, 1, 4, 10, 1),
			Config: models.WidgetConfiguration{
				Icon:  models.RhelIcon,
				Title: "Red Hat Enterprise Linux",
			},
		},
		models.OpenShift: models.ModuleFederationMetadata{
			Scope:       "landing",
			Module:      "./OpenShiftWidget",
			FeatureFlag: "widget.openshift.enable",
			Defaults:    models.BaseWidgetDimensions.InitDimensions(models.BaseWidgetDimensions{}, 1, 4, 10, 1),
			Config: models.WidgetConfiguration{
				Icon:  models.OpenShiftIcon,
				Title: "Red Hat OpenShift",
			},
		},
		models.Quay: models.ModuleFederationMetadata{
			Scope:    "landing",
			Module:   "./QuayWidget",
			Defaults: models.BaseWidgetDimensions.InitDimensions(models.BaseWidgetDimensions{}, 1, 4, 10, 1),
			Config: models.WidgetConfiguration{
				Icon:  models.QuayIcon,
				Title: "Quay.io",
			},
		},
		models.Acs: models.ModuleFederationMetadata{
			Scope:    "landing",
			Module:   "./AcsWidget",
			Defaults: models.BaseWidgetDimensions.InitDimensions(models.BaseWidgetDimensions{}, 1, 4, 10, 1),
			Config: models.WidgetConfiguration{
				Icon:  models.ACSIcon,
				Title: "Advanced Cluster Security",
			},
		},
		models.OpenShiftAi: models.ModuleFederationMetadata{
			Scope:    "landing",
			Module:   "./OpenShiftAiWidget",
			Defaults: models.BaseWidgetDimensions.InitDimensions(models.BaseWidgetDimensions{}, 1, 4, 10, 1),
			Config: models.WidgetConfiguration{
				Icon:  models.OpenShiftAiIcon,
				Title: "Red Hat OpenShift AI",
			},
		},
		models.RecentlyVisited: models.ModuleFederationMetadata{
			Scope:       "landing",
			Module:      "./RecentlyVisited",
			FeatureFlag: "widget.recentlyVisited.enable",
			Defaults:    models.BaseWidgetDimensions.InitDimensions(models.BaseWidgetDimensions{}, 1, 7, 10, 1),
			Config: models.WidgetConfiguration{
				Icon:  models.HistoryIcon,
				Title: "Recently visited",
			},
		},
		models.FavoriteServices: models.ModuleFederationMetadata{
			Scope:       "chrome",
			Module:      "./DashboardFavorites",
			FeatureFlag: "widget.favoriteServices.enable",
			Defaults:    models.BaseWidgetDimensions.InitDimensions(models.BaseWidgetDimensions{}, 1, 6, 10, 1),
			Config: models.WidgetConfiguration{
				HeaderLink: models.WidgetHeaderLink{
					Title: "View all services",
					Href:  "/allservices",
				},
				Icon:  models.StarIcon,
				Title: "My favorite services",
			},
		},
		models.NotificationsEvents: models.ModuleFederationMetadata{
			Scope:       "notifications",
			Module:      "./DashboardWidget",
			FeatureFlag: "widget.notifications.enable",
			Defaults:    models.BaseWidgetDimensions.InitDimensions(models.BaseWidgetDimensions{}, 1, 3, 10, 1),
			Config: models.WidgetConfiguration{
				HeaderLink: models.WidgetHeaderLink{
					Title: "View event log",
					Href:  "/settings/notifications/eventlog",
				},
				Icon:  models.BellIcon,
				Title: "Events",
				Permissions: []models.WidgetPermission{
					models.WidgetPermission{
						Method: models.OrgAdmin,
					},
				},
			},
		},
		models.LearningResources: models.ModuleFederationMetadata{
			Scope:       "learningResources",
			Module:      "./BookmarkedLearningResourcesWidget",
			FeatureFlag: "widget.learningResources.enable",
			Defaults:    models.BaseWidgetDimensions.InitDimensions(models.BaseWidgetDimensions{}, 2, 4, 10, 1),
			Config: models.WidgetConfiguration{
				HeaderLink: models.WidgetHeaderLink{
					Title:       "View all",
					Href:        "/learning-resources?tab=all",
					FeatureFlag: "platform.learning-resources.global-learning-resources",
				},
				Icon:  models.OutlinedBookmarkIcon,
				Title: "Bookmarked learning resources",
			},
		},
		models.SupportCases: models.ModuleFederationMetadata{
			Scope:    "landing",
			Module:   "./SupportCaseWidget",
			Defaults: models.BaseWidgetDimensions.InitDimensions(models.BaseWidgetDimensions{}, 2, 4, 10, 1),
			Config: models.WidgetConfiguration{
				HeaderLink: models.WidgetHeaderLink{
					Title: "Open a support case",
					Href:  "https://access.redhat.com/support/cases/#/case/new/get-support?caseCreate=true",
				},
				Icon:  models.HeadsetIcon,
				Title: "My support cases",
			},
		},
		models.Subscriptions: models.ModuleFederationMetadata{
			Scope:    "subscriptionInventory",
			Module:   "./SubscriptionsWidget",
			Defaults: models.BaseWidgetDimensions.InitDimensions(models.BaseWidgetDimensions{}, 4, 4, 10, 1),
			Config: models.WidgetConfiguration{
				HeaderLink: models.WidgetHeaderLink{
					Title: "Manage subscriptions",
					Href:  "/subscriptions/inventory",
				},
				Icon:  models.CreditCardIcon,
				Title: "Subscriptions",
				Permissions: []models.WidgetPermission{
					models.WidgetPermission{
						Method: models.FeatureFlag,
						Args: []any{
							"chrome-service.subscriptions-widget.enabled",
							true,
						},
					},
					models.WidgetPermission{
						Method: models.HasPermissions,
						Args: []any{
							[]string{"subscriptions:products:read"},
						},
					},
				},
			},
		},
		models.Integrations: models.ModuleFederationMetadata{
			Scope:    "sources",
			Module:   "./IntegrationsWidget",
			Defaults: models.BaseWidgetDimensions.InitDimensions(models.BaseWidgetDimensions{}, 2, 4, 10, 1),
			Config: models.WidgetConfiguration{
				HeaderLink: models.WidgetHeaderLink{
					Title: "Explore integrations",
					Href:  "/settings/integrations",
				},
				Icon:  models.IntegrationsIcon,
				Title: "Integrations",
				Permissions: []models.WidgetPermission{
					models.WidgetPermission{
						Method: models.FeatureFlag,
						Args: []any{
							"chrome-service.integrations-widget.enabled",
							true,
						},
					},
					models.WidgetPermission{
						Method: models.LoosePermissions,
						Args: []any{
							[]string{"sources:*:read", "integrations:endpoints:read"},
						},
					},
				},
			},
		},
	}
)

Functions

func AddVisitedBundle

func AddVisitedBundle(user models.UserIdentity, bundle string) (models.UserIdentity, error)

Set visited bundle

func ChangeDefaultTemplate

func ChangeDefaultTemplate(accountId uint, dashboardId uint) (models.DashboardTemplate, error)

func CheckIfExistsInDB

func CheckIfExistsInDB(allFavoritePages []models.FavoritePage, newFavoritePage models.FavoritePage) (bool, uint)

func ConvertToJson

func ConvertToJson(items []models.GridItem) datatypes.JSONType[[]models.GridItem]

func CopyDashboardTemplate

func CopyDashboardTemplate(accountId uint, dashboardTemplateId uint) (models.DashboardTemplate, error)

func CreateIdentity

func CreateIdentity(userId string, skipCache bool) (models.UserIdentity, error)

Create the user object and add the row if not already in DB

func DecodeDashboardTemplate

func DecodeDashboardTemplate(encoded string) (models.DashboardTemplate, error)

func DeleteOrUpdateFavoritePage

func DeleteOrUpdateFavoritePage(favoritePage models.FavoritePage) error

func DeleteTemplate

func DeleteTemplate(accountId uint, dashboardTemplateId uint) error

func EncodeDashboardTemplate

func EncodeDashboardTemplate(accountId uint, templateId uint) (string, error)

func ForkBaseTemplate

func ForkBaseTemplate(userId uint, dashboard models.AvailableTemplates) (models.DashboardTemplate, error)

func GetAllBaseTemplates

func GetAllBaseTemplates() []models.BaseDashboardTemplate

func GetAllUserDashboardTemplates

func GetAllUserDashboardTemplates(userId uint) ([]models.DashboardTemplate, error)

func GetAllUserFavoritePages

func GetAllUserFavoritePages(userID uint) ([]models.FavoritePage, error)

func GetDashboardTemplate

func GetDashboardTemplate(userId uint, dashboard models.AvailableTemplates) ([]models.DashboardTemplate, error)

func GetDashboardTemplateBase

func GetDashboardTemplateBase(dashboard models.AvailableTemplates) (models.BaseDashboardTemplate, error)

func GetSelfReport

func GetSelfReport(accountID uint) (models.SelfReport, error)

func GetUserActiveFavoritePages

func GetUserActiveFavoritePages(userID uint) ([]models.FavoritePage, error)

func GetUserArchivedFavoritePages

func GetUserArchivedFavoritePages(userID uint) ([]models.FavoritePage, error)

func GetUserDashboardTemplate

func GetUserDashboardTemplate(userId uint, dashboard models.AvailableTemplates) ([]models.DashboardTemplate, error)

func GetUserIdentityData

func GetUserIdentityData(user models.UserIdentity) (models.UserIdentity, error)

Get user data complete with it's related tables.

func GetVisitedBundles

func GetVisitedBundles(user models.UserIdentity) (map[string]bool, error)

func HandleNewSelfReport

func HandleNewSelfReport(accountID uint, newSelfReport *models.SelfReport) error

func HandlePostLastVisitedPages

func HandlePostLastVisitedPages(recentPages []models.VisitedPage, user *models.UserIdentity) error

HandlePostLastVisitedPages inserts the most recent pages from chrome. Once they are added, all older entries are removed from the table.

func LoadBaseLayout

func LoadBaseLayout()

func MarkPreviewSeen

func MarkPreviewSeen(identity *models.UserIdentity) error

func ResetDashboardTemplate

func ResetDashboardTemplate(accountId uint, dashboardId uint) (models.DashboardTemplate, error)

func SaveRecentlyUsedWorkspaces

func SaveRecentlyUsedWorkspaces(user *models.UserIdentity, recentlyUsedWorkspaces []models.Workspace) error

SaveRecentlyUsedWorkspaces saves a user's recently used workspaces in the database.

func SaveUserFavoritePage

func SaveUserFavoritePage(userID uint, accountId string, newFavoritePage models.FavoritePage) error

func UpdateActiveWorkspace

func UpdateActiveWorkspace(identity *models.UserIdentity, workspace string) error

func UpdateDashboardTemplate

func UpdateDashboardTemplate(templateId uint, userId uint, dashboardTemplate models.DashboardTemplate) (models.DashboardTemplate, error)

func UpdateUserPreview

func UpdateUserPreview(identity *models.UserIdentity, preview bool) error

Types

type IntercomApp

type IntercomApp string
const (
	OpenShift           IntercomApp = "openshift"
	Acs                 IntercomApp = "acs"
	Ansible             IntercomApp = "ansible"
	AnsibleDashboard    IntercomApp = "ansibleDashboard"
	AutomationHub       IntercomApp = "automationHub"
	AutomationAnalytics IntercomApp = "automationAnalytics"
	DBAAS               IntercomApp = "dbaas"
	ActivationKeys      IntercomApp = "activationKeys"
	Advisor             IntercomApp = "advisor"
	Compliance          IntercomApp = "compliance"
	Connector           IntercomApp = "connector"
	ContentSources      IntercomApp = "contentSources"
	Dashboard           IntercomApp = "dashboard"
	ImageBuilder        IntercomApp = "imageBuilder"
	Inventory           IntercomApp = "inventory"
	Malware             IntercomApp = "malware"
	Patch               IntercomApp = "patch"
	Policies            IntercomApp = "policies"
	Registration        IntercomApp = "registration"
	Remediations        IntercomApp = "remediations"
	Ros                 IntercomApp = "ros"
	Tasks               IntercomApp = "tasks"
	Vulnerability       IntercomApp = "vulnerability"
)

func (IntercomApp) IsValidApp

func (ib IntercomApp) IsValidApp() error

type IntercomPayload

type IntercomPayload struct {
	Prod string `json:"prod,omitempty"`
	Dev  string `json:"dev,omitempty"`
}

func GetUserIntercomHash

func GetUserIntercomHash(userId string, namespace IntercomApp) (IntercomPayload, error)

Jump to

Keyboard shortcuts

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