Documentation
¶
Index ¶
Constants ¶
View Source
const (
MaxAuditEvents = 1000
)
View Source
const SchemaVersion = "v1"
Variables ¶
This section is empty.
Functions ¶
func Append ¶
func Append(root string, event AuditEvent) error
Types ¶
type Actor ¶
type Actor struct {
Interface string `json:"interface"`
Identity string `json:"identity,omitempty"`
}
func ActorFromContext ¶
type AuditEvent ¶
type AuditEvent struct {
SchemaVersion string `json:"schema_version"`
ID string `json:"id"`
Timestamp time.Time `json:"timestamp"`
Actor Actor `json:"actor"`
Target string `json:"target"`
Application string `json:"application"`
Environment string `json:"environment"`
Operation string `json:"operation"`
Capability string `json:"capability,omitempty"`
Resource string `json:"resource,omitempty"`
Provider string `json:"provider,omitempty"`
Placement string `json:"placement,omitempty"`
Ownership string `json:"ownership,omitempty"`
PolicyResult string `json:"policy_result,omitempty"`
LifecycleResult string `json:"lifecycle_result,omitempty"`
VerificationResult string `json:"verification_result,omitempty"`
Outcome string `json:"outcome"`
Detail string `json:"detail,omitempty"`
}
func Filter ¶
func Filter(events []AuditEvent, target, application, environment string) []AuditEvent
func Load ¶
func Load(root string) ([]AuditEvent, error)
func NewAuditEvent ¶
func NewAuditEvent(ctx context.Context, target, application, environment, operation, outcome string) AuditEvent
func (AuditEvent) Validate ¶
func (e AuditEvent) Validate() error
type Bundle ¶
type Bundle struct {
ContractVersion string `json:"contract_version"`
SchemaVersion string `json:"schema_version"`
Target string `json:"target"`
Application string `json:"application"`
Environment string `json:"environment"`
Desired []Record `json:"desired_state"`
Enforced []Record `json:"enforced_policy"`
Observed []Record `json:"observed_state"`
Verified []Record `json:"verified_result"`
Exceptions []Record `json:"explicit_exceptions,omitempty"`
Unsupported []Record `json:"unsupported_controls,omitempty"`
Recovery *Recovery `json:"recovery,omitempty"`
Audit []AuditEvent `json:"audit_events,omitempty"`
Integrity Integrity `json:"integrity"`
}
type Record ¶
type Record struct {
Kind StateKind `json:"kind"`
ID string `json:"id"`
Status string `json:"status,omitempty"`
Resource string `json:"resource,omitempty"`
Capability string `json:"capability,omitempty"`
Provider string `json:"provider,omitempty"`
Placement string `json:"placement,omitempty"`
Ownership string `json:"ownership,omitempty"`
Detail string `json:"detail,omitempty"`
}
type Recovery ¶
type Recovery struct {
LastBackup *time.Time `json:"last_backup,omitempty"`
LastRestore *time.Time `json:"last_restore,omitempty"`
Contributors []RecoveryContributor `json:"contributors,omitempty"`
}
type RecoveryContributor ¶
type RecoveryContributor struct {
StateClass string `json:"state_class"`
LogicalResource string `json:"logical_resource,omitempty"`
Ownership string `json:"ownership"`
Support string `json:"support"`
Selected bool `json:"selected"`
Durable bool `json:"durable,omitempty"`
ExplicitlyExcluded bool `json:"explicitly_excluded,omitempty"`
Verified bool `json:"verified,omitempty"`
Reason string `json:"reason,omitempty"`
}
Click to show internal directories.
Click to hide internal directories.