backupper

package
v0.13.0 Latest Latest
Warning

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

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

Documentation

Overview

Package backupper provides functionality for backing up the system.

Index

Constants

This section is empty.

Variables

View Source
var ErrUnsupportedDBDriver = errors.New("unsupported database driver")

ErrUnsupportedDBDriver is returned when an unsupported database driver is used.

Functions

This section is empty.

Types

type BackupCRDB

type BackupCRDB struct {
	ApplicationTypes crdbmodels.ApplicationTypeSlice `json:"application_types"`
	Applications     crdbmodels.ApplicationSlice     `json:"applications"`
	AuditEvents      crdbmodels.AuditEventSlice      `json:"audit_events"`

	GroupApplicationRequests crdbmodels.GroupApplicationRequestSlice `json:"group_application_requests"`
	GroupApplications        crdbmodels.GroupApplicationSlice        `json:"group_applications"`
	GroupHierarchies         crdbmodels.GroupHierarchySlice          `json:"group_hierarchies"`
	GroupMembershipRequests  crdbmodels.GroupMembershipRequestSlice  `json:"group_membership_requests"`
	GroupMemberships         crdbmodels.GroupMembershipSlice         `json:"group_memberships"`
	GroupOrganizations       crdbmodels.GroupOrganizationSlice       `json:"group_organizations"`
	Groups                   crdbmodels.GroupSlice                   `json:"groups"`

	NotificationPreferences crdbmodels.NotificationPreferenceSlice `json:"notification_preferences"`
	NotificationTargets     crdbmodels.NotificationTargetSlice     `json:"notification_targets"`
	NotificationTypes       crdbmodels.NotificationTypeSlice       `json:"notification_types"`

	Organizations crdbmodels.OrganizationSlice `json:"organizations"`

	Users crdbmodels.UserSlice `json:"users"`

	ExtensionResourceDefinitions crdbmodels.ExtensionResourceDefinitionSlice `json:"extension_resource_definitions"`
	Extensions                   crdbmodels.ExtensionSlice                   `json:"extensions"`
	SystemExtensionResources     crdbmodels.SystemExtensionResourceSlice     `json:"system_extension_resources"`
	UserExtensionResources       crdbmodels.UserExtensionResourceSlice       `json:"user_extension_resources"`
}

BackupCRDB represents a backup for the CRDB database.

type BackupPSQL

type BackupPSQL struct {
	ApplicationTypes psqlmodels.ApplicationTypeSlice `json:"application_types"`
	Applications     psqlmodels.ApplicationSlice     `json:"applications"`
	AuditEvents      psqlmodels.AuditEventSlice      `json:"audit_events"`

	GroupApplicationRequests psqlmodels.GroupApplicationRequestSlice `json:"group_application_requests"`
	GroupApplications        psqlmodels.GroupApplicationSlice        `json:"group_applications"`
	GroupHierarchies         psqlmodels.GroupHierarchySlice          `json:"group_hierarchies"`
	GroupMembershipRequests  psqlmodels.GroupMembershipRequestSlice  `json:"group_membership_requests"`
	GroupMemberships         psqlmodels.GroupMembershipSlice         `json:"group_memberships"`
	GroupOrganizations       psqlmodels.GroupOrganizationSlice       `json:"group_organizations"`
	Groups                   psqlmodels.GroupSlice                   `json:"groups"`

	NotificationPreferences psqlmodels.NotificationPreferenceSlice `json:"notification_preferences"`
	NotificationTargets     psqlmodels.NotificationTargetSlice     `json:"notification_targets"`
	NotificationTypes       psqlmodels.NotificationTypeSlice       `json:"notification_types"`

	Organizations psqlmodels.OrganizationSlice `json:"organizations"`

	Users psqlmodels.UserSlice `json:"users"`

	ExtensionResourceDefinitions psqlmodels.ExtensionResourceDefinitionSlice `json:"extension_resource_definitions"`
	Extensions                   psqlmodels.ExtensionSlice                   `json:"extensions"`
	SystemExtensionResources     psqlmodels.SystemExtensionResourceSlice     `json:"system_extension_resources"`
	UserExtensionResources       psqlmodels.UserExtensionResourceSlice       `json:"user_extension_resources"`
}

BackupPSQL represents a backup for the Postgres database

type Backupper

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

Backupper is responsible for backing up and restoring the system.

func New

func New(db *sqlx.DB, driver DBDriver, opts ...Opt) *Backupper

New creates a new Backupper instance.

func (*Backupper) Backup

func (b *Backupper) Backup(ctx context.Context, out io.Writer) error

Backup creates a backup of the governor system.

func (*Backupper) Restore

func (b *Backupper) Restore(ctx context.Context, reader io.Reader) error

Restore restores the database from a backup

type DBDriver

type DBDriver string

DBDriver is the type for database drivers.

const (
	// DBDriverCRDB is the database driver for CockroachDB.
	DBDriverCRDB DBDriver = "crdb"
	// DBDriverPostgres is the database driver for Postgres.
	DBDriverPostgres DBDriver = "postgres"
)

type Opt

type Opt func(*Backupper)

Opt is a functional option for configuring the Backupper.

func WithLogger

func WithLogger(logger *zap.Logger) Opt

WithLogger sets the logger for the Backupper.

Jump to

Keyboard shortcuts

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