# RetentionTargets

> Tracon documentation. Tracon is a .NET package family that adds a control
> plane on Microsoft Agent Framework, published as NuGet packages that run
> inside your own ASP.NET Core application.
>
> Page: https://tracon.dev/api/tracon.retentiontargets/
> Summary: RetentionTargets: The fixed table list a retention policy may target.

<div class="api-provenance">Namespace Tracon · Assembly <code>Tracon.Abstractions.dll</code></div>

The fixed table list a retention policy may target.

```csharp
public static class RetentionTargets
```

<dl class="api-relations"><dt>Inheritance</dt><dd><a href="https://learn.microsoft.com/dotnet/api/system.object">object</a> ← <a href="/api/tracon.retentiontargets/">RetentionTargets</a></dd><dt>Inherited Members</dt><dd><a href="https://learn.microsoft.com/dotnet/api/system.object.gettype">object.GetType()</a>, <a href="https://learn.microsoft.com/dotnet/api/system.object.memberwiseclone">object.MemberwiseClone()</a>, <a href="https://learn.microsoft.com/dotnet/api/system.object.tostring">object.ToString()</a>, <a href="https://learn.microsoft.com/dotnet/api/system.object.equals#system-object-equals(system-object)">object.Equals(object?)</a>, <a href="https://learn.microsoft.com/dotnet/api/system.object.equals#system-object-equals(system-object-system-object)">object.Equals(object?, object?)</a>, <a href="https://learn.microsoft.com/dotnet/api/system.object.referenceequals">object.ReferenceEquals(object?, object?)</a>, <a href="https://learn.microsoft.com/dotnet/api/system.object.gethashcode">object.GetHashCode()</a></dd></dl>

## Remarks

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.

## Fields

### <a id="Tracon_RetentionTargets_Attachments"></a> Attachments

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

```csharp
public const string Attachments = "attachments"
```

#### Field Value

 [string](https://learn.microsoft.com/dotnet/api/system.string)

#### Remarks

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](/api/tracon.iattachmentstorage/)
registered, the bytes are deleted before the row; a row whose bytes
cannot be deleted is kept for the next run.

### <a id="Tracon_RetentionTargets_Conversations"></a> Conversations

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

```csharp
public const string Conversations = "conversations"
```

#### Field Value

 [string](https://learn.microsoft.com/dotnet/api/system.string)

### <a id="Tracon_RetentionTargets_DocumentEmbeddings"></a> DocumentEmbeddings

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).

```csharp
public const string DocumentEmbeddings = "document_embeddings"
```

#### Field Value

 [string](https://learn.microsoft.com/dotnet/api/system.string)

### <a id="Tracon_RetentionTargets_EvalCaseResults"></a> EvalCaseResults

Evaluation (eval) case results.

```csharp
public const string EvalCaseResults = "eval_case_results"
```

#### Field Value

 [string](https://learn.microsoft.com/dotnet/api/system.string)

### <a id="Tracon_RetentionTargets_IdempotencyKeys"></a> IdempotencyKeys

Stored idempotency responses.

```csharp
public const string IdempotencyKeys = "idempotency_keys"
```

#### Field Value

 [string](https://learn.microsoft.com/dotnet/api/system.string)

### <a id="Tracon_RetentionTargets_Jobs"></a> Jobs

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

```csharp
public const string Jobs = "jobs"
```

#### Field Value

 [string](https://learn.microsoft.com/dotnet/api/system.string)

### <a id="Tracon_RetentionTargets_RunEvents"></a> RunEvents

The run event stream (append-only).

```csharp
public const string RunEvents = "run_events"
```

#### Field Value

 [string](https://learn.microsoft.com/dotnet/api/system.string)

### <a id="Tracon_RetentionTargets_RunInputs"></a> RunInputs

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

```csharp
public const string RunInputs = "run_inputs"
```

#### Field Value

 [string](https://learn.microsoft.com/dotnet/api/system.string)

#### Remarks

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.

### <a id="Tracon_RetentionTargets_RunScores"></a> RunScores

Run and message scores.

```csharp
public const string RunScores = "run_scores"
```

#### Field Value

 [string](https://learn.microsoft.com/dotnet/api/system.string)

### <a id="Tracon_RetentionTargets_Sessions"></a> Sessions

Serialized session state. User data; OFF by default.

```csharp
public const string Sessions = "sessions"
```

#### Field Value

 [string](https://learn.microsoft.com/dotnet/api/system.string)

### <a id="Tracon_RetentionTargets_SkillScriptGrants"></a> SkillScriptGrants

Expired or cancelled skill script execution grants.

```csharp
public const string SkillScriptGrants = "skill_script_grants"
```

#### Field Value

 [string](https://learn.microsoft.com/dotnet/api/system.string)

### <a id="Tracon_RetentionTargets_ToolInvocations"></a> ToolInvocations

Tool call summaries.

```csharp
public const string ToolInvocations = "tool_invocations"
```

#### Field Value

 [string](https://learn.microsoft.com/dotnet/api/system.string)

### <a id="Tracon_RetentionTargets_Traces"></a> Traces

OpenTelemetry trace headers. Deletion cascades to the spans.

```csharp
public const string Traces = "traces"
```

#### Field Value

 [string](https://learn.microsoft.com/dotnet/api/system.string)

### <a id="Tracon_RetentionTargets_VoiceSessions"></a> VoiceSessions

The summary record of closed real-time voice connections.

```csharp
public const string VoiceSessions = "voice_sessions"
```

#### Field Value

 [string](https://learn.microsoft.com/dotnet/api/system.string)

#### Remarks

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](/api/tracon.retentiontargets/#Tracon_RetentionTargets_Attachments) target's scope.

### <a id="Tracon_RetentionTargets_WebhookDeliveries"></a> WebhookDeliveries

Delivered webhook delivery-history records.

```csharp
public const string WebhookDeliveries = "webhook_deliveries"
```

#### Field Value

 [string](https://learn.microsoft.com/dotnet/api/system.string)

### <a id="Tracon_RetentionTargets_WorkflowCheckpoints"></a> WorkflowCheckpoints

Workflow checkpoints of completed runs.

```csharp
public const string WorkflowCheckpoints = "workflow_checkpoints"
```

#### Field Value

 [string](https://learn.microsoft.com/dotnet/api/system.string)

### <a id="Tracon_RetentionTargets_WorkflowRequests"></a> WorkflowRequests

The inbox rows of workflow requests whose run was closed because the request expired
([WorkflowDefinition.RequestTimeout](/api/tracon.workflowdefinition/#Tracon_WorkflowDefinition_RequestTimeout)).

```csharp
public const string WorkflowRequests = "workflow_requests"
```

#### Field Value

 [string](https://learn.microsoft.com/dotnet/api/system.string)

#### Remarks

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.

## Properties

### <a id="Tracon_RetentionTargets_All"></a> All

All recognized target names.

```csharp
public static IReadOnlyList<string> All { get; }
```

#### Property Value

 [IReadOnlyList](https://learn.microsoft.com/dotnet/api/system.collections.generic.ireadonlylist\-1)<[string](https://learn.microsoft.com/dotnet/api/system.string)\>

### <a id="Tracon_RetentionTargets_UserDataTargets"></a> UserDataTargets

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

```csharp
public static IReadOnlyList<string> UserDataTargets { get; }
```

#### Property Value

 [IReadOnlyList](https://learn.microsoft.com/dotnet/api/system.collections.generic.ireadonlylist\-1)<[string](https://learn.microsoft.com/dotnet/api/system.string)\>

#### Remarks

A policy can be created for these targets, but no row is deleted
unless [RetentionPolicy.Enabled](/api/tracon.retentionpolicy/#Tracon_RetentionPolicy_Enabled) is explicitly set to
[true](https://learn.microsoft.com/dotnet/csharp/language-reference/builtin-types/bool). Configuration-based defaults
(`TraconRetentionOptions`) also do not apply to these
targets — only an explicit database policy takes effect.

## Methods

### <a id="Tracon_RetentionTargets_IsKnown_System_String_"></a> IsKnown\(string?\)

Reports whether a target name is recognized.

```csharp
public static bool IsKnown(string? target)
```

#### Parameters

`target` [string](https://learn.microsoft.com/dotnet/api/system.string)?

The target name.

#### Returns

 [bool](https://learn.microsoft.com/dotnet/api/system.boolean)

[true](https://learn.microsoft.com/dotnet/csharp/language-reference/builtin-types/bool) if the name is recognized.
