thalos-dal/src/Thalos.DAL/Repositories/IIdentityRepository.cs
2026-02-22 04:31:43 -06:00

40 lines
1.6 KiB
C#

using Thalos.DAL.Contracts;
namespace Thalos.DAL.Repositories;
/// <summary>
/// Defines aggregate repository boundary for identity persistence operations.
/// </summary>
public interface IIdentityRepository
{
/// <summary>
/// Reads token issuance record data for a subject and tenant scope.
/// </summary>
/// <param name="request">Token lookup request contract.</param>
/// <param name="cancellationToken">Cancellation token.</param>
/// <returns>Token record when found; otherwise null.</returns>
Task<IdentityTokenRecord?> ReadIdentityTokenAsync(
IdentityTokenLookupRequest request,
CancellationToken cancellationToken = default);
/// <summary>
/// Reads policy context data required for authorization checks.
/// </summary>
/// <param name="request">Policy lookup request contract.</param>
/// <param name="cancellationToken">Cancellation token.</param>
/// <returns>Policy record when found; otherwise null.</returns>
Task<IdentityPolicyRecord?> ReadIdentityPolicyAsync(
IdentityPolicyLookupRequest request,
CancellationToken cancellationToken = default);
/// <summary>
/// Reads permission set data for subject and tenant scope.
/// </summary>
/// <param name="request">Permission set lookup request contract.</param>
/// <param name="cancellationToken">Cancellation token.</param>
/// <returns>Permission records for the requested scope.</returns>
Task<IReadOnlyList<IdentityPermissionRecord>> ReadPermissionSetAsync(
IdentityPermissionSetLookupRequest request,
CancellationToken cancellationToken = default);
}