Skip to main content

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

System.Nullable<System.Int32>

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

System.Nullable<System.Int32>

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; }

Property Value

System.Collections.Generic.HashSet<System.String>