Documentation
¶
Index ¶
- Constants
- func FormatVersion(entry *VersionEntry) string
- func SerializeSchema(schema interface{}) ([]byte, error)
- type IntegrityLogEntry
- type Manifest
- type ModeAuthConfig
- type ModeConfig
- type Vault
- func (v *Vault) AppendLog(action, version string, details map[string]string) error
- func (v *Vault) ComputeSchemaHash(schemaPath string) (string, error)
- func (v *Vault) DetectChanges(schemaPath string) (bool, string, error)
- func (v *Vault) Exists() bool
- func (v *Vault) GetCurrentVersion() (*VersionEntry, error)
- func (v *Vault) GetParanoidMode() (string, error)
- func (v *Vault) GetStatus() (*VaultStatus, error)
- func (v *Vault) GetVersion(version string) (*VersionEntry, error)
- func (v *Vault) GetVersionContent(version string) ([]byte, error)
- func (v *Vault) GetVersionHistory() ([]VersionEntry, error)
- func (v *Vault) HasModePassword() bool
- func (v *Vault) Initialize() error
- func (v *Vault) Load() error
- func (v *Vault) ReadLog() ([]string, error)
- func (v *Vault) RegisterVersion(schemaPath string, author string, changesSummary string) (*VersionEntry, error)
- func (v *Vault) SaveVersion(version string, schemaContent []byte, hash string) error
- func (v *Vault) SetModePassword(password string) error
- func (v *Vault) SetParanoidMode(mode string) error
- func (v *Vault) VerifyIntegrity() (*VerificationResult, error)
- func (v *Vault) VerifyModePassword(password string) (bool, error)
- type VaultStatus
- type VerificationResult
- type VersionEntry
Constants ¶
const ( VaultDirName = ".chameleon/vault" ManifestFileName = "manifest.json" ModeFileName = "mode.json" ModeAuthFileName = "mode_auth.json" IntegrityLogName = "integrity.log" VersionsDirName = "versions" HashesDirName = "hashes" )
const DefaultParanoidMode = "readonly"
const MinModePasswordLength = 8
Variables ¶
This section is empty.
Functions ¶
func FormatVersion ¶
func FormatVersion(entry *VersionEntry) string
FormatVersion formats a version entry for display
func SerializeSchema ¶
SerializeSchema converts schema to JSON for storage
Types ¶
type IntegrityLogEntry ¶
type IntegrityLogEntry struct {
Timestamp time.Time
Action string // INIT, REGISTER, MIGRATE, VERIFY, etc.
Version string
Details map[string]string
}
IntegrityLogEntry represents a single entry in integrity.log
type Manifest ¶
type Manifest struct {
CurrentVersion string `json:"current_version"`
Versions []VersionEntry `json:"versions"`
ParanoidMode string `json:"paranoid_mode"` // Legacy compatibility field
}
Manifest represents the vault's manifest.json
type ModeAuthConfig ¶
ModeAuthConfig stores password verifier for privileged mode changes.
type ModeConfig ¶
type ModeConfig struct {
ParanoidMode string `json:"paranoid_mode"`
}
ModeConfig stores current security/paranoid mode (source of truth)
type Vault ¶
Vault represents the Schema Vault system
func (*Vault) ComputeSchemaHash ¶
ComputeSchemaHash computes SHA256 hash of schema file(s)
func (*Vault) DetectChanges ¶
DetectChanges checks if schema has changed since last version
func (*Vault) GetCurrentVersion ¶
func (v *Vault) GetCurrentVersion() (*VersionEntry, error)
GetCurrentVersion returns the current version entry
func (*Vault) GetParanoidMode ¶
GetParanoidMode returns the current paranoid mode. Source of truth is mode.json; manifest is used only as backward-compatible fallback.
func (*Vault) GetStatus ¶
func (v *Vault) GetStatus() (*VaultStatus, error)
GetStatus returns current vault status
func (*Vault) GetVersion ¶
func (v *Vault) GetVersion(version string) (*VersionEntry, error)
GetVersion retrieves a specific version entry
func (*Vault) GetVersionContent ¶
GetVersionContent reads the schema content for a specific version
func (*Vault) GetVersionHistory ¶
func (v *Vault) GetVersionHistory() ([]VersionEntry, error)
GetVersionHistory returns all versions in chronological order
func (*Vault) HasModePassword ¶
HasModePassword reports whether an admin password was configured for mode escalation.
func (*Vault) Initialize ¶
Initialize creates vault structure on disk
func (*Vault) RegisterVersion ¶
func (v *Vault) RegisterVersion(schemaPath string, author string, changesSummary string) (*VersionEntry, error)
RegisterVersion registers a new schema version in the vault
func (*Vault) SaveVersion ¶
SaveVersion saves a version snapshot to vault
func (*Vault) SetModePassword ¶
SetModePassword configures (or rotates) the admin password for elevated mode changes.
func (*Vault) SetParanoidMode ¶
SetParanoidMode updates the current paranoid mode in mode.json.
func (*Vault) VerifyIntegrity ¶
func (v *Vault) VerifyIntegrity() (*VerificationResult, error)
VerifyIntegrity checks vault integrity
type VaultStatus ¶
type VaultStatus struct {
Exists bool
CurrentVersion string
TotalVersions int
IntegrityOK bool
LastModified time.Time
}
VaultStatus represents current vault state
type VerificationResult ¶
type VerificationResult struct {
Valid bool
Issues []string
VersionsOK []string
VersionsFail []string
}
VerificationResult represents integrity check results
type VersionEntry ¶
type VersionEntry struct {
Version string `json:"version"` // v001, v002, etc.
Hash string `json:"hash"` // SHA256 hash
Timestamp time.Time `json:"timestamp"` // When registered
Author string `json:"author"` // Who registered it
Parent *string `json:"parent"` // Parent version (null for v001)
Locked bool `json:"locked"` // Immutability flag
ChangesSummary string `json:"changes_summary"` // Human-readable description
Files []string `json:"files"` // Schema files included
}
VersionEntry represents a single schema version in the vault