2026-02-08 11:57:57 +01:00
|
|
|
using System.ComponentModel.DataAnnotations;
|
|
|
|
|
using System.ComponentModel.DataAnnotations.Schema;
|
|
|
|
|
|
2026-02-06 19:58:01 +01:00
|
|
|
namespace IdentityShroud.Core.Model;
|
|
|
|
|
|
2026-02-08 11:57:57 +01:00
|
|
|
[Table("realm")]
|
2026-02-06 19:58:01 +01:00
|
|
|
public class Realm
|
|
|
|
|
{
|
|
|
|
|
public Guid Id { get; set; }
|
2026-02-08 11:57:57 +01:00
|
|
|
/// <summary>
|
|
|
|
|
/// Note this is part of the url we should encourage users to keep it short but we do not want to limit them too much
|
|
|
|
|
/// </summary>
|
|
|
|
|
[MaxLength(40)]
|
2026-02-06 19:58:01 +01:00
|
|
|
public string Slug { get; set; } = "";
|
2026-02-08 11:57:57 +01:00
|
|
|
|
|
|
|
|
[MaxLength(128)]
|
|
|
|
|
public string Name { get; set; } = "";
|
|
|
|
|
public List<Client> Clients { get; init; } = [];
|
|
|
|
|
|
2026-03-16 19:15:04 +01:00
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Note multiple keys can be in use at the same time because different clients may be configured to use
|
|
|
|
|
/// a different keytype depending on their clients requirements/capabilities.
|
|
|
|
|
/// </summary>
|
|
|
|
|
public List<RealmSigningKey> TokenSigningKeys { get; init; } = [];
|
2026-02-27 17:57:42 +00:00
|
|
|
|
2026-03-16 19:15:04 +01:00
|
|
|
public List<RealmDek> DataEncryptionKeys { get; init; } = [];
|
2026-02-15 19:06:09 +01:00
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Can be overriden per client
|
|
|
|
|
/// </summary>
|
2026-03-16 19:15:04 +01:00
|
|
|
public JwtSigAlgName DefaultSignatureAlgorithm { get; set; } = JwtSigAlgName.RS256;
|
2026-02-28 08:18:30 +01:00
|
|
|
}
|