AuthScimCredentialRecord constructor
AuthScimCredentialRecord({
- required String id,
- required String connectionId,
- required String tenantId,
- required String organizationId,
- required String name,
- required String keyPrefix,
- required String secretDigest,
- required Iterable<
AuthScimScope> scopes, - required DateTime createdAt,
- required DateTime updatedAt,
- DateTime? expiresAt,
- DateTime? lastUsedAt,
- DateTime? revokedAt,
Creates a storage record without retaining the raw bearer secret.
Implementation
AuthScimCredentialRecord({
required String id,
required String connectionId,
required String tenantId,
required String organizationId,
required String name,
required String keyPrefix,
required String secretDigest,
required Iterable<AuthScimScope> scopes,
required DateTime createdAt,
required DateTime updatedAt,
DateTime? expiresAt,
DateTime? lastUsedAt,
DateTime? revokedAt,
}) : id = _identifier(id, 'id'),
connectionId = _identifier(connectionId, 'connectionId'),
tenantId = _identifier(tenantId, 'tenantId'),
organizationId = _identifier(organizationId, 'organizationId'),
name = _displayName(name),
keyPrefix = _prefix(keyPrefix),
secretDigest = _digest(secretDigest),
scopes = _scopes(scopes),
createdAt = createdAt.toUtc(),
updatedAt = updatedAt.toUtc(),
expiresAt = expiresAt?.toUtc(),
lastUsedAt = lastUsedAt?.toUtc(),
revokedAt = revokedAt?.toUtc() {
if (this.scopes.isEmpty) {
throw ArgumentError('SCIM scopes must not be empty.');
}
if (this.updatedAt.isBefore(this.createdAt) ||
this.expiresAt?.isAfter(this.createdAt) == false ||
(this.revokedAt?.isBefore(this.createdAt) ?? false)) {
throw ArgumentError('Invalid SCIM credential timestamps.');
}
}