TypeORM MySQL
Package: @nauth-toolkit/database-typeorm-mysql
Type: Database Package
MySQL/MariaDB entity implementations using TypeORM.
- npm
- Yarn
- pnpm
- Bun
npm install @nauth-toolkit/database-typeorm-mysql
yarn add @nauth-toolkit/database-typeorm-mysql
pnpm add @nauth-toolkit/database-typeorm-mysql
bun add @nauth-toolkit/database-typeorm-mysql
Exports
| Export | Description |
|---|---|
getNAuthEntities() | User/session entities (always include) |
getNAuthTransientStorageEntities() | Rate limit/lock entities (only if using DatabaseStorageAdapter) |
runNAuthMigrations | Run pending nauth-toolkit migrations. Called automatically during bootstrap. |
| Individual entities | User, Session, MFADevice, SocialProviderSecret, etc. |
getNAuthEntities()
Returns core authentication entities.
Entities included:
User- User accountsSession- Active sessionsLoginAttempt- Login historyVerificationToken- Email/phone codesSocialAccount- OAuth accountsChallengeSession- MFA challengesMFADevice- Registered devicesAuthAudit- Audit logsTrustedDevice- Trusted devicesSocialProviderSecret- Apple JWT client secret storage
- NestJS
- Express
- Fastify
import { getNAuthEntities } from '@nauth-toolkit/database-typeorm-mysql';
TypeOrmModule.forRoot({
type: 'mysql',
entities: [
...getNAuthEntities(),
// Your app entities...
],
})
import { getNAuthEntities } from '@nauth-toolkit/database-typeorm-mysql';
import { DataSource } from 'typeorm';
const dataSource = new DataSource({
type: 'mysql',
entities: [
...getNAuthEntities(),
// Your app entities...
],
});
await dataSource.initialize();
import { getNAuthEntities } from '@nauth-toolkit/database-typeorm-mysql';
import { DataSource } from 'typeorm';
const dataSource = new DataSource({
type: 'mysql',
entities: [
...getNAuthEntities(),
// Your app entities...
],
});
await dataSource.initialize();
getNAuthTransientStorageEntities()
Returns transient storage entities. Only use with DatabaseStorageAdapter.
Entities included:
RateLimit- Rate limitingStorageLock- Distributed locks
- NestJS
- Express
- Fastify
import {
getNAuthEntities,
getNAuthTransientStorageEntities
} from '@nauth-toolkit/database-typeorm-mysql';
import { DatabaseStorageAdapter } from '@nauth-toolkit/storage-database';
// Include storage entities
TypeOrmModule.forRoot({
entities: [
...getNAuthEntities(),
...getNAuthTransientStorageEntities(),
],
})
// Use DatabaseStorageAdapter
AuthModule.forRoot({
storageAdapter: new DatabaseStorageAdapter(),
})
import {
getNAuthEntities,
getNAuthTransientStorageEntities
} from '@nauth-toolkit/database-typeorm-mysql';
import { DatabaseStorageAdapter } from '@nauth-toolkit/storage-database';
const dataSource = new DataSource({
entities: [
...getNAuthEntities(),
...getNAuthTransientStorageEntities(),
],
});
const nauth = await NAuth.create({
dataSource,
config: {
storageAdapter: new DatabaseStorageAdapter(),
},
});
import {
getNAuthEntities,
getNAuthTransientStorageEntities
} from '@nauth-toolkit/database-typeorm-mysql';
import { DatabaseStorageAdapter } from '@nauth-toolkit/storage-database';
import { FastifyAdapter } from '@nauth-toolkit/core';
const dataSource = new DataSource({
entities: [
...getNAuthEntities(),
...getNAuthTransientStorageEntities(),
],
});
const nauth = await NAuth.create({
dataSource,
adapter: new FastifyAdapter(),
config: {
storageAdapter: new DatabaseStorageAdapter(),
},
});
When to Include Storage Entities
| Storage Adapter | Include getNAuthTransientStorageEntities()? |
|---|---|
RedisStorageAdapter | No |
DatabaseStorageAdapter | Yes (required) |