legalhold

package
v0.2.4 Latest Latest
Warning

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

Go to latest
Published: Sep 28, 2026 License: Apache-2.0 Imports: 4 Imported by: 0

Documentation

Overview

Package legalhold is the pure domain for a LEGAL HOLD on an engagement's data (#635 privacy & data governance). A hold suspends retention expiry: while an engagement is held, its retention-bounded projection rows must NOT be deleted, even after their retention window elapses — preserving data that a legal/regulatory obligation requires kept. Placement and release are audited operator actions; this package defines the record + its invariants, not the storage or the HTTP edge.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Hold

type Hold struct {
	TenantID     shared.ID
	EngagementID shared.ID
	Reason       string // why the data must be preserved — mandatory (accountability)
	PlacedBy     string // the operator who placed it — mandatory
	PlacedAt     time.Time
	ReleasedBy   string    // set on release
	ReleasedAt   time.Time // zero = still active
}

Hold is a legal hold placed on one engagement's data within a tenant. Active while ReleasedAt is zero; a released hold is retained (append-only history) so the hold+release trail is auditable.

func (Hold) Active

func (h Hold) Active() bool

Active reports whether the hold currently suspends retention.

func (Hold) Validate

func (h Hold) Validate() error

Validate enforces the mandatory fields for placing a hold.

Jump to

Keyboard shortcuts

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