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.