Documentation
¶
Overview ¶
Package ledger materializes read-only forensic session ledgers from events.db.
Index ¶
- Constants
- Variables
- type Config
- type EventStoreOpener
- type Materializer
- func (m *Materializer) DiscardSessionLedger(ctx context.Context, record store.SessionLedgerRecord) error
- func (m *Materializer) Materialize(ctx context.Context, record store.SessionLedgerRecord) (result Result, err error)
- func (m *Materializer) MaterializeSessionLedger(ctx context.Context, record store.SessionLedgerRecord) error
- func (m *Materializer) Path(record store.SessionLedgerRecord) (string, error)
- type Result
Constants ¶
const (
DefaultUnboundPartition = "_unbound"
)
Variables ¶
var ( // ErrLedgerExists reports that a materialized ledger already exists with a different checksum. ErrLedgerExists = errors.New("sessions/ledger: ledger already exists with different content") // ErrInvalidRecord reports a session record that cannot produce a safe forensic path. ErrInvalidRecord = errors.New("sessions/ledger: invalid session ledger record") )
Functions ¶
This section is empty.
Types ¶
type Config ¶
type Config struct {
RootDir string
UnboundPartition string
OpenEventStore EventStoreOpener
}
Config controls forensic ledger materialization.
type EventStoreOpener ¶
type EventStoreOpener func(ctx context.Context, sessionID string, path string) (store.EventRecorder, error)
EventStoreOpener opens the live session event database for read-only projection.
type Materializer ¶
type Materializer struct {
// contains filtered or unexported fields
}
Materializer projects session events into ledger.jsonl after a session ends.
func NewMaterializer ¶
func NewMaterializer(config Config) (*Materializer, error)
NewMaterializer creates a forensic ledger materializer rooted at Config.RootDir.
func (*Materializer) DiscardSessionLedger ¶
func (m *Materializer) DiscardSessionLedger(ctx context.Context, record store.SessionLedgerRecord) error
DiscardSessionLedger removes a deterministic materialized ledger if one exists for the session. Clear Conversation uses this before replacing the event store for the same session id.
func (*Materializer) Materialize ¶
func (m *Materializer) Materialize(ctx context.Context, record store.SessionLedgerRecord) (result Result, err error)
Materialize writes ledger.jsonl from existing durable session evidence.
func (*Materializer) MaterializeSessionLedger ¶
func (m *Materializer) MaterializeSessionLedger(ctx context.Context, record store.SessionLedgerRecord) error
MaterializeSessionLedger implements session.LedgerMaterializer.
func (*Materializer) Path ¶
func (m *Materializer) Path(record store.SessionLedgerRecord) (string, error)
Path returns the deterministic ledger.jsonl path for a session.