# IDataSubjectResolver

> 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.idatasubjectresolver/
> Summary: IDataSubjectResolver: Maps a data subject (an end user, in the consumer's own identity system) to the sessions, runs, and conversations that belong to them.

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

Maps a data subject (an end user, in the consumer's own identity system) to
the sessions, runs, and conversations that belong to them.

```csharp
public interface IDataSubjectResolver
```

## Remarks

There is **no default implementation**. Tracon does not store
personal identity: `sessions.id` is a caller-supplied value and only the
consumer's own system knows which session, run, or conversation belongs to
which end user. Registering this interface is what turns on the export and
erasure endpoints; without a registration, both return `409` — never a
silent "nothing found" that could be read as "already erased".

The rejected alternative was storing the subject id ON Tracon's own rows.
That would add a new personal-data field whose only purpose is making erasure
easier — the field created to help delete data would itself become the first
thing that needs deleting.

## Methods

### <a id="Tracon_IDataSubjectResolver_ResolveAsync_System_String_System_String_System_Threading_CancellationToken_"></a> ResolveAsync\(string, string, CancellationToken\)

Resolves a data subject's scope.

```csharp
ValueTask<DataSubjectScope> ResolveAsync(string subjectId, string tenantId, CancellationToken cancellationToken = default)
```

#### Parameters

`subjectId` [string](https://learn.microsoft.com/dotnet/api/system.string)

The subject id, in the consumer's own identity system.

`tenantId` [string](https://learn.microsoft.com/dotnet/api/system.string)

The tenant id.

`cancellationToken` [CancellationToken](https://learn.microsoft.com/dotnet/api/system.threading.cancellationtoken)

The cancellation token.

#### Returns

 [ValueTask](https://learn.microsoft.com/dotnet/api/system.threading.tasks.valuetask\-1)<[DataSubjectScope](/api/tracon.datasubjectscope/)\>

The scope; an empty scope when the subject has no known data.
