activity

package
v0.0.11 Latest Latest
Warning

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

Go to latest
Published: Jun 5, 2024 License: BSD-3-Clause Imports: 3 Imported by: 0

Documentation

Index

Constants

View Source
const (
	SystemInitiator = "sys"
)

Variables

This section is empty.

Functions

func RegisterActivityMap

func RegisterActivityMap(codes map[Activity]Code)

RegisterActivityMap adds new codes to the activity map

Types

type Activity

type Activity int

Activity that triggered an Event

const (
	// PeerAddedByUser indicates that a user added a new peer to the system
	PeerAddedByUser Activity = 0
	// PeerAddedWithSetupKey indicates that a new peer joined the system using a setup key
	PeerAddedWithSetupKey Activity = 1
	// UserJoined indicates that a new user joined the account
	UserJoined Activity = 2
	// UserInvited indicates that a new user was invited to join the account
	UserInvited Activity = 3
	// AccountCreated indicates that a new account has been created
	AccountCreated Activity = 4
	// PeerRemovedByUser indicates that a user removed a peer from the system
	PeerRemovedByUser Activity = 5
	// RuleAdded indicates that a user added a new rule
	RuleAdded Activity = 6
	// RuleUpdated indicates that a user updated a rule
	RuleUpdated Activity = 7
	// RuleRemoved indicates that a user removed a rule
	RuleRemoved Activity = 8
	// PolicyAdded indicates that a user added a new policy
	PolicyAdded Activity = 9
	// PolicyUpdated indicates that a user updated a policy
	PolicyUpdated Activity = 10
	// PolicyRemoved indicates that a user removed a policy
	PolicyRemoved Activity = 11
	// SetupKeyCreated indicates that a user created a new setup key
	SetupKeyCreated Activity = 12
	// SetupKeyUpdated indicates that a user updated a setup key
	SetupKeyUpdated Activity = 13
	// SetupKeyRevoked indicates that a user revoked a setup key
	SetupKeyRevoked Activity = 14
	// SetupKeyOverused indicates that setup key usage exhausted
	SetupKeyOverused Activity = 15
	// GroupCreated indicates that a user created a group
	GroupCreated Activity = 16
	// GroupUpdated indicates that a user updated a group
	GroupUpdated Activity = 17
	// GroupAddedToPeer indicates that a user added group to a peer
	GroupAddedToPeer Activity = 18
	// GroupRemovedFromPeer indicates that a user removed peer group
	GroupRemovedFromPeer Activity = 19
	// GroupAddedToUser indicates that a user added group to a user
	GroupAddedToUser Activity = 20
	// GroupRemovedFromUser indicates that a user removed a group from a user
	GroupRemovedFromUser Activity = 21
	// UserRoleUpdated indicates that a user changed the role of a user
	UserRoleUpdated Activity = 22
	// GroupAddedToSetupKey indicates that a user added group to a setup key
	GroupAddedToSetupKey Activity = 23
	// GroupRemovedFromSetupKey indicates that a user removed a group from a setup key
	GroupRemovedFromSetupKey Activity = 24
	// GroupAddedToDisabledManagementGroups indicates that a user added a group to the DNS setting Disabled management groups
	GroupAddedToDisabledManagementGroups Activity = 25
	// GroupRemovedFromDisabledManagementGroups indicates that a user removed a group from the DNS setting Disabled management groups
	GroupRemovedFromDisabledManagementGroups Activity = 26
	// RouteCreated indicates that a user created a route
	RouteCreated Activity = 27
	// RouteRemoved indicates that a user deleted a route
	RouteRemoved Activity = 28
	// RouteUpdated indicates that a user updated a route
	RouteUpdated Activity = 29
	// PeerSSHEnabled indicates that a user enabled SSH server on a peer
	PeerSSHEnabled Activity = 30
	// PeerSSHDisabled indicates that a user disabled SSH server on a peer
	PeerSSHDisabled Activity = 31
	// PeerRenamed indicates that a user renamed a peer
	PeerRenamed Activity = 32
	// PeerLoginExpirationEnabled indicates that a user enabled login expiration of a peer
	PeerLoginExpirationEnabled Activity = 33
	// PeerLoginExpirationDisabled indicates that a user disabled login expiration of a peer
	PeerLoginExpirationDisabled Activity = 34
	// NameserverGroupCreated indicates that a user created a nameservers group
	NameserverGroupCreated Activity = 35
	// NameserverGroupDeleted indicates that a user deleted a nameservers group
	NameserverGroupDeleted Activity = 36
	// NameserverGroupUpdated indicates that a user updated a nameservers group
	NameserverGroupUpdated Activity = 37
	// AccountPeerLoginExpirationEnabled indicates that a user enabled peer login expiration for the account
	AccountPeerLoginExpirationEnabled Activity = 38
	// AccountPeerLoginExpirationDisabled indicates that a user disabled peer login expiration for the account
	AccountPeerLoginExpirationDisabled Activity = 39
	// AccountPeerLoginExpirationDurationUpdated indicates that a user updated peer login expiration duration for the account
	AccountPeerLoginExpirationDurationUpdated Activity = 40
	// PersonalAccessTokenCreated indicates that a user created a personal access token
	PersonalAccessTokenCreated Activity = 41
	// PersonalAccessTokenDeleted indicates that a user deleted a personal access token
	PersonalAccessTokenDeleted Activity = 42
	// ServiceUserCreated indicates that a user created a service user
	ServiceUserCreated Activity = 43
	// ServiceUserDeleted indicates that a user deleted a service user
	ServiceUserDeleted Activity = 44
	// UserBlocked indicates that a user blocked another user
	UserBlocked Activity = 45
	// UserUnblocked indicates that a user unblocked another user
	UserUnblocked Activity = 46
	// UserDeleted indicates that a user deleted another user
	UserDeleted Activity = 47
	// GroupDeleted indicates that a user deleted group
	GroupDeleted Activity = 48
	// UserLoggedInPeer indicates that user logged in their peer with an interactive SSO login
	UserLoggedInPeer Activity = 49
	// PeerLoginExpired indicates that the user peer login has been expired and peer disconnected
	PeerLoginExpired Activity = 50
	// DashboardLogin indicates that the user logged in to the dashboard
	DashboardLogin Activity = 51
	// IntegrationCreated indicates that the user created an integration
	IntegrationCreated Activity = 52
	// IntegrationUpdated indicates that the user updated an integration
	IntegrationUpdated Activity = 53
	// IntegrationDeleted indicates that the user deleted an integration
	IntegrationDeleted Activity = 54
	// AccountPeerApprovalEnabled indicates that the user enabled peer approval for the account
	AccountPeerApprovalEnabled Activity = 55
	// AccountPeerApprovalDisabled indicates that the user disabled peer approval for the account
	AccountPeerApprovalDisabled Activity = 56
	// PeerApproved indicates that the peer has been approved
	PeerApproved Activity = 57
	// PeerApprovalRevoked indicates that the peer approval has been revoked
	PeerApprovalRevoked Activity = 58
	// TransferredOwnerRole indicates that the user transferred the owner role of the account
	TransferredOwnerRole Activity = 59
	// PostureCheckCreated indicates that the user created a posture check
	PostureCheckCreated Activity = 60
	// PostureCheckUpdated indicates that the user updated a posture check
	PostureCheckUpdated Activity = 61
	// PostureCheckDeleted indicates that the user deleted a posture check
	PostureCheckDeleted Activity = 62
)

Existing consts must not be changed, as this will break the compatibility with the existing data

func (Activity) Message

func (a Activity) Message() string

Message returns a string representation of an activity

func (Activity) StringCode

func (a Activity) StringCode() string

StringCode returns a string code of the activity

type ActivityDescriber

type ActivityDescriber interface {
	StringCode() string
	Message() string
}

ActivityDescriber is an interface that describes an activity

type Code

type Code struct {
	Message string
	Code    string
}

Code is an activity string representation

type Event

type Event struct {
	// Timestamp of the event
	Timestamp time.Time
	// Activity that was performed during the event
	Activity ActivityDescriber
	// ID of the event (can be empty, meaning that it wasn't yet generated)
	ID uint64
	// InitiatorID is the ID of an object that initiated the event (e.g., a user)
	InitiatorID string
	// InitiatorName is the name of an object that initiated the event.
	InitiatorName string
	// InitiatorEmail is the email address of an object that initiated the event.
	InitiatorEmail string
	// TargetID is the ID of an object that was effected by the event (e.g., a peer)
	TargetID string
	// AccountID is the ID of an account where the event happened
	AccountID string

	// Meta of the event, e.g. deleted peer information like name, IP, etc
	Meta map[string]any
}

Event represents a network/system activity event.

func (*Event) Copy

func (e *Event) Copy() *Event

Copy the event

type InMemoryEventStore

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

InMemoryEventStore implements the Store interface storing data in-memory

func (*InMemoryEventStore) Close

func (store *InMemoryEventStore) Close() error

Close cleans up the event list

func (*InMemoryEventStore) Get

func (store *InMemoryEventStore) Get(accountID string, offset, limit int, descending bool) ([]*Event, error)

Get returns a list of ALL events that belong to the given accountID without taking offset, limit and order into consideration

func (*InMemoryEventStore) Save

func (store *InMemoryEventStore) Save(event *Event) (*Event, error)

Save sets the Event.ID to 1

type Store

type Store interface {
	// Save an event in the store
	Save(event *Event) (*Event, error)
	// Get returns "limit" number of events from the "offset" index ordered descending or ascending by a timestamp
	Get(accountID string, offset, limit int, descending bool) ([]*Event, error)
	// Close the sink flushing events if necessary
	Close() error
}

Store provides an interface to store or stream events.

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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