License Class
Abblix.Oidc.Server
Abblix.Oidc.Server.Features.Licensing
License Class
Represents the licensing constraints applied to the application, including limits on the number of clients and issuers, as well as the validity period of the license.
public record License : System.IEquatable<Abblix.Oidc.Server.Features.Licensing.License>
Inheritance System.Object → License
Implements System.IEquatable<License>
Remarks
This record is central to defining and enforcing operational limits and licensing terms within the application. It supports not only quantitative restrictions, such as the number of clients and issuers, but also temporal constraints, specifying when the license is valid and providing a grace period beyond the expiration date.
Properties: - ClientLimit and IssuerLimit impose limits on the number of clients and issuers that can interact with the application, ensuring compliance with the licensing agreement. - ValidIssuers specifies which issuers are recognized as valid sources of tokens or claims, adding an additional layer of security and compliance. - NotBefore and ExpiresAt define the time frame during which the license is considered valid, allowing for precise control over the license's lifecycle. - GracePeriod offers flexibility by defining a period after ExpiresAt during which the license constraints are still enforced, but the application may remain operational to account for renewal processes.
Together, these properties enable a robust and flexible approach to licensing, facilitating compliance, security, and operational continuity.
Properties
License.ClientLimit Property
The maximum number of clients that are allowed to interact with the application under the current license.
public System.Nullable<int> ClientLimit { get; init; }
Property Value
Remarks
This property specifies a limit on the number of unique client applications that can be registered or authenticated
by the application. It's a crucial aspect of licensing enforcement, ensuring that the application usage does not
exceed the terms agreed upon in the licensing contract. A value of null indicates that there is no limit on
the number of clients.
When the number of unique clients exceeds this limit, the application should enforce the licensing terms by restricting further client registrations or authentications, aligning with the compliance requirements.
License.ExpiresAt Property
The expiration date and time of the license.
public System.Nullable<System.DateTimeOffset> ExpiresAt { get; init; }
Property Value
System.Nullable<System.DateTimeOffset>
License.GracePeriod Property
An optional grace period after the expiration date during which the license conditions are still considered valid.
public System.Nullable<System.DateTimeOffset> GracePeriod { get; init; }
Property Value
System.Nullable<System.DateTimeOffset>
License.IssuerLimit Property
The maximum number of issuers that are recognized as valid by the application under the current license.
public System.Nullable<int> IssuerLimit { get; init; }
Property Value
Remarks
This property defines a cap on the number of distinct issuers from which the application will accept tokens or
claims. It plays a vital role in controlling access and ensuring that the application's interactions are within
the bounds set by its licensing terms. A null value for this property implies that there's no restriction
on the number of issuers.
Exceeding this limit may require the application to implement measures that block tokens or claims issued by additional issuers, thereby maintaining adherence to the licensing agreement.
License.NotBefore Property
The date and time before which the license is not valid.
public System.Nullable<System.DateTimeOffset> NotBefore { get; init; }
Property Value
System.Nullable<System.DateTimeOffset>
License.ValidIssuers Property
An array of strings representing the issuers that are considered valid for this license.
public System.Collections.Generic.HashSet<string>? ValidIssuers { get; init; }