config

package
v1.0.0 Latest Latest
Warning

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

Go to latest
Published: Apr 14, 2026 License: Apache-2.0 Imports: 13 Imported by: 0

Documentation

Index

Constants

View Source
const PeersPrefix = "mpc_peers/"

Variables

This section is empty.

Functions

func GetNodeID

func GetNodeID(nodeName string, peers []Peer) string

func InitLogger

func InitLogger()

func InitViperConfig

func InitViperConfig()

func SyncPeersToConsul

func SyncPeersToConsul(kv *api.KV, peers []Peer) error

SyncPeersToConsul registers new peers from a file into Consul. Existing peers are skipped. New peers are registered and logged.

Types

type AppConfig

type AppConfig struct {
	Consul *ConsulConfig `mapstructure:"consul"`
	NATs   *NATsConfig   `mapstructure:"nats"`
	R2     *R2Config     `mapstructure:"r2"`

	Environment          string `mapstructure:"environment"`
	BadgerPassword       string `mapstructure:"badger_password"`
	BadgerBackupPassword string `mapstructure:"badger_backup_password"`
	ConsulBackupPassword string `mapstructure:"consul_backup_password"`
	ChainCodeHex         string `mapstructure:"chain_code"`
}

func LoadConfig

func LoadConfig() *AppConfig

func (AppConfig) MarshalJSONMask

func (c AppConfig) MarshalJSONMask() string

Implement masking serializer AppConfig

type ConsulConfig

type ConsulConfig struct {
	Address  string           `mapstructure:"address"`
	Username string           `mapstructure:"username"`
	Password string           `mapstructure:"password"`
	Token    string           `mapstructure:"token"`
	TLS      *ConsulTLSConfig `mapstructure:"tls"`
}

type ConsulTLSConfig

type ConsulTLSConfig struct {
	// Base64-encoded content (cloud/production via env vars)
	ClientCertB64 string `mapstructure:"client_cert_b64"`
	ClientKeyB64  string `mapstructure:"client_key_b64"`
	CAB64         string `mapstructure:"ca_b64"`
}

type NATsConfig

type NATsConfig struct {
	URL      string     `mapstructure:"url"`
	Username string     `mapstructure:"username"`
	Password string     `mapstructure:"password"`
	TLS      *TLSConfig `mapstructure:"tls"`
}

type Peer

type Peer struct {
	ID   string
	Name string
}

func LoadPeersFromConsul

func LoadPeersFromConsul(kv *api.KV, prefix string) ([]Peer, error)

func LoadPeersFromFile

func LoadPeersFromFile(path string) ([]Peer, error)

LoadPeersFromFile loads peers from a JSON file (map[string]string: name -> ID)

type R2Config

type R2Config struct {
	AccountID       string `mapstructure:"account_id"`
	AccessKeyID     string `mapstructure:"access_key_id"`
	SecretAccessKey string `mapstructure:"secret_access_key"`
	Bucket          string `mapstructure:"bucket"`
	Prefix          string `mapstructure:"prefix"`
}

R2Config holds Cloudflare R2 credentials for off-site backup uploads. Set via env vars: R2_ACCOUNT_ID, R2_ACCESS_KEY_ID, R2_SECRET_ACCESS_KEY, R2_BUCKET, R2_PREFIX (optional).

func (*R2Config) IsEnabled

func (r *R2Config) IsEnabled() bool

type TLSConfig

type TLSConfig struct {
	// Base64-encoded content (cloud/production via env vars)
	ClientCertB64 string `mapstructure:"client_cert_b64"`
	ClientKeyB64  string `mapstructure:"client_key_b64"`
	CAB64         string `mapstructure:"ca_b64"`
}

Jump to

Keyboard shortcuts

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