audithook

package
v0.0.3 Latest Latest
Warning

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

Go to latest
Published: Feb 21, 2026 License: Apache-2.0 Imports: 6 Imported by: 0

Documentation

Index

Constants

View Source
const (
	SeverityInfo     = "info"
	SeverityWarning  = "warning"
	SeverityCritical = "critical"
)

Severity constants.

View Source
const (
	OutcomeSuccess = "success"
	OutcomeFailure = "failure"
)

Outcome constants.

View Source
const (
	ActionInstanceCreated     = "ctrlplane.instance.created"
	ActionInstanceStarted     = "ctrlplane.instance.started"
	ActionInstanceStopped     = "ctrlplane.instance.stopped"
	ActionInstanceFailed      = "ctrlplane.instance.failed"
	ActionInstanceDeleted     = "ctrlplane.instance.deleted"
	ActionInstanceScaled      = "ctrlplane.instance.scaled"
	ActionInstanceSuspended   = "ctrlplane.instance.suspended"
	ActionInstanceUnsuspended = "ctrlplane.instance.unsuspended"
)

Instance action constants.

View Source
const (
	ActionDeployStarted    = "ctrlplane.deploy.started"
	ActionDeploySucceeded  = "ctrlplane.deploy.succeeded"
	ActionDeployFailed     = "ctrlplane.deploy.failed"
	ActionDeployRolledBack = "ctrlplane.deploy.rolled_back"
)

Deploy action constants.

View Source
const (
	ActionHealthCheckPassed = "ctrlplane.health.passed"
	ActionHealthCheckFailed = "ctrlplane.health.failed"
	ActionHealthDegraded    = "ctrlplane.health.degraded"
	ActionHealthRecovered   = "ctrlplane.health.recovered"
)

Health action constants.

View Source
const (
	ActionDomainAdded     = "ctrlplane.domain.added"
	ActionDomainVerified  = "ctrlplane.domain.verified"
	ActionDomainRemoved   = "ctrlplane.domain.removed"
	ActionCertProvisioned = "ctrlplane.cert.provisioned"
	ActionCertExpiring    = "ctrlplane.cert.expiring"
)

Network action constants.

View Source
const (
	ActionTenantCreated   = "ctrlplane.tenant.created"
	ActionTenantSuspended = "ctrlplane.tenant.suspended"
	ActionTenantDeleted   = "ctrlplane.tenant.deleted"
	ActionQuotaExceeded   = "ctrlplane.quota.exceeded"
)

Admin action constants.

View Source
const (
	ResourceInstance    = "instance"
	ResourceDeployment  = "deployment"
	ResourceHealthCheck = "health_check"
	ResourceDomain      = "domain"
	ResourceCertificate = "certificate"
	ResourceTenant      = "tenant"
	ResourceQuota       = "quota"
)

Resource constants.

View Source
const (
	CategoryInstance = "instance"
	CategoryDeploy   = "deploy"
	CategoryHealth   = "health"
	CategoryNetwork  = "network"
	CategoryAdmin    = "admin"
)

Category constants.

Variables

This section is empty.

Functions

This section is empty.

Types

type AuditEvent

type AuditEvent struct {
	Action     string         `json:"action"`
	Resource   string         `json:"resource"`
	Category   string         `json:"category"`
	ResourceID string         `json:"resource_id,omitempty"`
	Metadata   map[string]any `json:"metadata,omitempty"`
	Outcome    string         `json:"outcome"`
	Severity   string         `json:"severity"`
	Reason     string         `json:"reason,omitempty"`
}

AuditEvent mirrors chronicle/audit.Event without a module dependency.

type Extension

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

Extension bridges CtrlPlane lifecycle events to an audit trail backend.

func New

func New(r Recorder, opts ...Option) *Extension

New creates an Extension that emits audit events through the provided Recorder.

func (*Extension) Name

func (e *Extension) Name() string

Name implements plugin.Extension.

func (*Extension) OnCertExpiring

func (e *Extension) OnCertExpiring(ctx context.Context, evt *event.Event) error

func (*Extension) OnCertProvisioned

func (e *Extension) OnCertProvisioned(ctx context.Context, evt *event.Event) error

func (*Extension) OnDeployFailed

func (e *Extension) OnDeployFailed(ctx context.Context, evt *event.Event) error

func (*Extension) OnDeployRolledBack

func (e *Extension) OnDeployRolledBack(ctx context.Context, evt *event.Event) error

func (*Extension) OnDeployStarted

func (e *Extension) OnDeployStarted(ctx context.Context, evt *event.Event) error

func (*Extension) OnDeploySucceeded

func (e *Extension) OnDeploySucceeded(ctx context.Context, evt *event.Event) error

func (*Extension) OnDomainAdded

func (e *Extension) OnDomainAdded(ctx context.Context, evt *event.Event) error

func (*Extension) OnDomainRemoved

func (e *Extension) OnDomainRemoved(ctx context.Context, evt *event.Event) error

func (*Extension) OnDomainVerified

func (e *Extension) OnDomainVerified(ctx context.Context, evt *event.Event) error

func (*Extension) OnHealthCheckFailed

func (e *Extension) OnHealthCheckFailed(ctx context.Context, evt *event.Event) error

func (*Extension) OnHealthCheckPassed

func (e *Extension) OnHealthCheckPassed(ctx context.Context, evt *event.Event) error

func (*Extension) OnHealthDegraded

func (e *Extension) OnHealthDegraded(ctx context.Context, evt *event.Event) error

func (*Extension) OnHealthRecovered

func (e *Extension) OnHealthRecovered(ctx context.Context, evt *event.Event) error

func (*Extension) OnInstanceCreated

func (e *Extension) OnInstanceCreated(ctx context.Context, evt *event.Event) error

func (*Extension) OnInstanceDeleted

func (e *Extension) OnInstanceDeleted(ctx context.Context, evt *event.Event) error

func (*Extension) OnInstanceFailed

func (e *Extension) OnInstanceFailed(ctx context.Context, evt *event.Event) error

func (*Extension) OnInstanceScaled

func (e *Extension) OnInstanceScaled(ctx context.Context, evt *event.Event) error

func (*Extension) OnInstanceStarted

func (e *Extension) OnInstanceStarted(ctx context.Context, evt *event.Event) error

func (*Extension) OnInstanceStopped

func (e *Extension) OnInstanceStopped(ctx context.Context, evt *event.Event) error

func (*Extension) OnInstanceSuspended

func (e *Extension) OnInstanceSuspended(ctx context.Context, evt *event.Event) error

func (*Extension) OnInstanceUnsuspended

func (e *Extension) OnInstanceUnsuspended(ctx context.Context, evt *event.Event) error

func (*Extension) OnQuotaExceeded

func (e *Extension) OnQuotaExceeded(ctx context.Context, evt *event.Event) error

func (*Extension) OnTenantCreated

func (e *Extension) OnTenantCreated(ctx context.Context, evt *event.Event) error

func (*Extension) OnTenantDeleted

func (e *Extension) OnTenantDeleted(ctx context.Context, evt *event.Event) error

func (*Extension) OnTenantSuspended

func (e *Extension) OnTenantSuspended(ctx context.Context, evt *event.Event) error

type Option

type Option func(*Extension)

Option configures the audit hook extension.

func WithActions

func WithActions(actions ...string) Option

WithActions limits which audit actions are recorded. By default all actions are recorded. If WithActions is used, only the listed actions will be emitted.

func WithLogger

func WithLogger(l *slog.Logger) Option

WithLogger sets a custom logger for the audit hook.

type Recorder

type Recorder interface {
	Record(ctx context.Context, event *AuditEvent) error
}

Recorder is the interface that audit backends must implement. Matches chronicle.Emitter but defined locally to avoid the import.

type RecorderFunc

type RecorderFunc func(ctx context.Context, event *AuditEvent) error

RecorderFunc is an adapter to use a plain function as a Recorder.

func (RecorderFunc) Record

func (f RecorderFunc) Record(ctx context.Context, event *AuditEvent) error

Jump to

Keyboard shortcuts

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