persistenceSchemas property

  1. @override
Iterable<AuthPersistenceSchema> get persistenceSchemas
override

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.',
      ),
    ],
  ),
];