notifications

package
v1.26.0 Latest Latest
Warning

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

Go to latest
Published: Feb 10, 2026 License: GPL-3.0 Imports: 9 Imported by: 5

README

notifications

import "github.com/greenbone/opensight-golang-libraries/pkg/notifications"

Package Notifications provides a client to communicate with the OpenSight Notification Service github.com/greenbone/opensight\-notification\-service

Index

type Client

Client can be used to send notifications

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

func NewClient
func NewClient(httpClient *http.Client, config Config, authCfg auth.KeycloakConfig) *Client

NewClient returns a new Client with the notification service address (host:port) set. As httpClient you can use e.g. [http.DefaultClient].

func (*Client) CreateNotification
func (c *Client) CreateNotification(ctx context.Context, notification Notification) error

CreateNotification sends a notification to the notification service. It is retried up to the configured number of retries with an exponential backoff, So it can take some time until the functions returns.

type Config

Config configures the notification service client

type Config struct {
    Address      string
    MaxRetries   int
    RetryWaitMin time.Duration
    RetryWaitMax time.Duration
}

type Level

Level describes the severity of the notification

type Level string

const (
    LevelInfo    Level = "info"
    LevelWarning Level = "warning"
    LevelError   Level = "error"
)

type Notification

type Notification struct {
    // omit property `Id` here, as it is read only
    Origin           string    // name of the origin, e.g. `SBOM - React`
    OriginClass      string    // unique identifier for the class of origins, e.g. `/vi/SBOM`
    OriginResourceID string    // optional, together with class it can be used to provide a link to the origin, e.g. `<id of react sbom object>`
    Timestamp        time.Time // client will set timestamp if not set
    Title            string    // can also be seen as the 'type'
    Detail           string
    Level            Level
    CustomFields     map[string]any // optional, can contain arbitrary structured information about the notification
}

Generated by gomarkdoc

Documentation

Overview

Package Notifications provides a client to communicate with the OpenSight Notification Service github.com/greenbone/opensight-notification-service

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Client

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

Client can be used to send notifications

func NewClient

func NewClient(httpClient *http.Client, config Config, authCfg auth.KeycloakConfig) *Client

NewClient returns a new Client with the notification service address (host:port) set. As httpClient you can use e.g. http.DefaultClient.

func (*Client) CreateNotification

func (c *Client) CreateNotification(ctx context.Context, notification Notification) error

CreateNotification sends a notification to the notification service. It is retried up to the configured number of retries with an exponential backoff, So it can take some time until the functions returns.

type Config

type Config struct {
	Address      string
	MaxRetries   int
	RetryWaitMin time.Duration
	RetryWaitMax time.Duration
}

Config configures the notification service client

type Level

type Level string

Level describes the severity of the notification

const (
	LevelInfo    Level = "info"
	LevelWarning Level = "warning"
	LevelError   Level = "error"
)

type Notification

type Notification struct {
	// omit property `Id` here, as it is read only
	Origin           string    // name of the origin, e.g. `SBOM - React`
	OriginClass      string    // unique identifier for the class of origins, e.g. `/vi/SBOM`
	OriginResourceID string    // optional, together with class it can be used to provide a link to the origin, e.g. `<id of react sbom object>`
	Timestamp        time.Time // client will set timestamp if not set
	Title            string    // can also be seen as the 'type'
	Detail           string
	Level            Level
	CustomFields     map[string]any // optional, can contain arbitrary structured information about the notification
}

Jump to

Keyboard shortcuts

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