persistenceSchemas property
The persistence schemas exposed by this plugin.
Implementation
@override
Iterable<AuthPersistenceSchema> get persistenceSchemas => const [
AuthPersistenceSchema(
id: 'admin',
entities: [
AuthEntityDescriptor(
id: 'admin_user_state',
fields: [
AuthFieldDescriptor(name: 'userId', kind: 'id'),
AuthFieldDescriptor(name: 'banned', kind: 'boolean'),
AuthFieldDescriptor(name: 'banReason', kind: 'nullable_string'),
AuthFieldDescriptor(
name: 'banExpiresAt',
kind: 'nullable_datetime',
),
AuthFieldDescriptor(name: 'emailVerified', kind: 'boolean'),
AuthFieldDescriptor(name: 'disabled', kind: 'boolean'),
AuthFieldDescriptor(
name: 'disabledReason',
kind: 'nullable_string',
),
AuthFieldDescriptor(name: 'disabledAt', kind: 'nullable_datetime'),
AuthFieldDescriptor(name: 'lockedUntil', kind: 'nullable_datetime'),
AuthFieldDescriptor(name: 'failedLoginAttempts', kind: 'integer'),
AuthFieldDescriptor(name: 'createdAt', kind: 'datetime'),
AuthFieldDescriptor(name: 'updatedAt', kind: 'datetime'),
],
relationships: [
AuthRelationshipDescriptor(
field: 'userId',
targetEntity: 'user',
cascadeDelete: true,
),
],
uniqueConstraints: [
['userId'],
],
indexes: [
['banned', 'banExpiresAt'],
],
),
AuthEntityDescriptor(
id: 'admin_audit_record',
fields: [
AuthFieldDescriptor(name: 'id', kind: 'id'),
AuthFieldDescriptor(name: 'operation', kind: 'string'),
AuthFieldDescriptor(name: 'initiatorUserId', kind: 'id'),
AuthFieldDescriptor(name: 'targetUserId', kind: 'id'),
AuthFieldDescriptor(name: 'occurredAt', kind: 'datetime'),
],
uniqueConstraints: [
['id'],
],
indexes: [
['targetUserId', 'occurredAt'],
['initiatorUserId', 'occurredAt'],
],
),
],
atomicOperations: [
AuthAtomicOperationDescriptor(
id: 'createUserWithCredential',
description:
'Create a normalized unique user and password credential.',
),
AuthAtomicOperationDescriptor(
id: 'mutateUserAndRevokeAccess',
description:
'Change sensitive user state, revoke sessions, and rotate JWT version.',
),
AuthAtomicOperationDescriptor(
id: 'mutateUserState',
description:
'Change administrative account state after transactional authorization.',
),
AuthAtomicOperationDescriptor(
id: 'revokeUserAccess',
description:
'Revoke every server session and rotate the JWT version together.',
),
AuthAtomicOperationDescriptor(
id: 'preserveAdministrator',
description:
'Preserve at least one effective administrator under concurrency.',
),
AuthAtomicOperationDescriptor(
id: 'hardDeleteUser',
description:
'Delete the user and every composed user-owned namespace together.',
),
],
),
];