40 lines
1.6 KiB
C#
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);
|
|
}
|