Skip to content
Tracon

RetentionTargets

Namespace Tracon · Assembly Tracon.Abstractions.dll

The fixed table list a retention policy may target.

public static class RetentionTargets
Inheritance
object ← RetentionTargets
Inherited Members
object.GetType(), object.MemberwiseClone(), object.ToString(), object.Equals(object?), object.Equals(object?, object?), object.ReferenceEquals(object?, object?), object.GetHashCode()

The target name is not free-form text: the allowed targets are this fixed list. Otherwise this would be a table-name injection surface.

audit_log is deliberately absent from this list. The audit trail is never automatically deleted.

Orphaned attachments and, when they are stored externally, their bytes.

public const string Attachments = "attachments"

string

An attachment is orphaned when it has no session id, or when nothing in the same tenant owns its session id. An owner is a session, or a workflow run with that session id that waits for input, has not finished, or finished after the cutoff. With IAttachmentStorage registered, the bytes are deleted before the row; a row whose bytes cannot be deleted is kept for the next run.

Conversation history. Deletion cascades to its messages. User data; OFF by default.

public const string Conversations = "conversations"

string

Knowledge-base chunks and their embeddings. The table exists only in the PostgreSQL migration set; binding this target to a policy on SQL Server or SQLite fails at run time (no such table).

public const string DocumentEmbeddings = "document_embeddings"

string

Evaluation (eval) case results.

public const string EvalCaseResults = "eval_case_results"

string

Stored idempotency responses.

public const string IdempotencyKeys = "idempotency_keys"

string

Completed/failed/cancelled queue jobs. Deletion cascades to their items.

public const string Jobs = "jobs"

string

The run event stream (append-only).

public const string RunEvents = "run_events"

string

Runs’ recorded input messages. The source of replay; deleting an input makes that run unable to be replayed.

public const string RunInputs = "run_inputs"

string

The content is in the same information class as conversation_items, but the target is not off by default: run_inputs is not the user’s own conversation history but a derived record of the run, and its lifetime should be limitable through the retention policy.

Run and message scores.

public const string RunScores = "run_scores"

string

Serialized session state. User data; OFF by default.

public const string Sessions = "sessions"

string

Expired or cancelled skill script execution grants.

public const string SkillScriptGrants = "skill_script_grants"

string

Tool call summaries.

public const string ToolInvocations = "tool_invocations"

string

OpenTelemetry trace headers. Deletion cascades to the spans.

public const string Traces = "traces"

string

The summary record of closed real-time voice connections.

public const string VoiceSessions = "voice_sessions"

string

The record carries no audio; it only carries duration, turn count, and measurements. If the conversation’s audio was stored (default: no), the bytes fall under the RetentionTargets.Attachments target’s scope.

Delivered webhook delivery-history records.

public const string WebhookDeliveries = "webhook_deliveries"

string

Workflow checkpoints of completed runs.

public const string WorkflowCheckpoints = "workflow_checkpoints"

string

The inbox rows of workflow requests whose run was closed because the request expired (WorkflowDefinition.RequestTimeout).

public const string WorkflowRequests = "workflow_requests"

string

Only a closed row is deleted: a row of a run that still waits for an answer is the request’s entry in the inbox. The row carries a session id, a request id and a workflow name, no prompt and no answer; it is not user data, so the configuration-based default applies.

All recognized target names.

public static IReadOnlyList<string> All { get; }

IReadOnlyList<string>

The targets that carry user data and are OFF by default.

public static IReadOnlyList<string> UserDataTargets { get; }

IReadOnlyList<string>

A policy can be created for these targets, but no row is deleted unless RetentionPolicy.Enabled is explicitly set to true. Configuration-based defaults (TraconRetentionOptions) also do not apply to these targets — only an explicit database policy takes effect.

Reports whether a target name is recognized.

public static bool IsKnown(string? target)

target string?

The target name.

bool

true if the name is recognized.