---
title: "Référence d'API — @nodefony/drizzle — entity"
source: docs/api/drizzle/entity.md
url: https://nodefony.github.io/nodefony-core/docs/api/drizzle/entity/
---


[Documentation](../../../) › [Référence d'API](../../) › [`@nodefony/drizzle`](../) › entity

> Générée depuis les déclarations de types publiées de `@nodefony/drizzle` **10.0.0-beta.5** : exactement ce que reçoit une application qui l'installe. Cette page n'existe dans aucun dépôt — pour la corriger, on corrige le TSDoc du code.

## `@nodefony/drizzle`

`import { … } from "@nodefony/drizzle"` — 52 symboles.

### Fonctions (16)

#### `createAuditEntities`

```ts
function createAuditEntities(connector: string, dialect?: SqlDialect): IEntity[]
```

Construit les descripteurs d'entités du journal d'audit pour un ORM nommé.

#### `createIdempotencyEntities`

```ts
function createIdempotencyEntities(connector: string, dialect?: SqlDialect): IEntity[]
```

Construit le descripteur d'entité du store d'idempotence pour un ORM nommé.

#### `createSessionEntity`

```ts
function createSessionEntity(connector: string, dialect?: SqlDialect): IEntity[]
```

Construit le descripteur d'entité session pour un ORM nommé.

#### `createTokenEntities`

```ts
function createTokenEntities(connector: string, dialect?: SqlDialect): IEntity[]
```

Construit les descripteurs d'entités du store de jetons pour un ORM nommé.

#### `createTotpSecretEntity`

```ts
function createTotpSecretEntity(connector: string, dialect?: SqlDialect): IEntity
```

Construit le descripteur d'entité du store de secrets TOTP pour un ORM nommé. Le `connector` est **dynamique** (nom du connecteur de l'app) et la variante de table suit le dialecte du connecteur (auto-register `registerStores.ts`). À enregistrer **avant** `orm.connect()`. `module: "security"` → regroupé sous

#### `createUserEntity`

```ts
function createUserEntity(connector: string, dialect?: SqlDialect): IEntity
```

Construit le descripteur d'entité `User` Drizzle pour un ORM nommé.

#### `createWebAuthnCredentialEntity`

```ts
function createWebAuthnCredentialEntity(connector: string, dialect?: SqlDialect): IEntity
```

Construit le descripteur d'entité du store de credentials pour un ORM nommé.

#### `createWebhookEndpointEntity`

```ts
function createWebhookEndpointEntity(connector: string, dialect?: SqlDialect): IEntity
```

Construit le descripteur d'entité du store webhook pour un ORM nommé.

#### `registerAuditEntities`

```ts
function registerAuditEntities(connector: string, dialect?: SqlDialect): void
```

Enregistre les entités du journal d'audit dans le `entityRegistry` pour un ORM donné. À appeler **avant** `orm.connect()` (l'adapter crée les tables au connect).

#### `registerIdempotencyEntities`

```ts
function registerIdempotencyEntities(connector: string, dialect?: SqlDialect): void
```

Enregistre l'entité du store d'idempotence dans le `entityRegistry` pour un ORM donné. À appeler **avant** `orm.connect()` (l'adapter crée la table au connect).

#### `registerSessionEntity`

```ts
function registerSessionEntity(connector: string, dialect?: SqlDialect): void
```

Enregistre l'entité session dans le `entityRegistry` pour un ORM donné. À appeler **avant** `orm.connect()` (l'adapter crée la table au connect).

#### `registerTokenEntities`

```ts
function registerTokenEntities(connector: string, dialect?: SqlDialect): void
```

Enregistre les entités du store de jetons dans le `entityRegistry` pour un ORM donné. À appeler **avant** `orm.connect()` (l'adapter crée les tables au connect).

#### `registerTotpSecretEntity`

```ts
function registerTotpSecretEntity(connector: string, dialect?: SqlDialect): void
```

Enregistre l'entité du store de secrets TOTP dans le `entityRegistry` pour un ORM donné. À appeler **avant** `orm.connect()` (l'adapter crée la table au connect).

#### `registerUserEntity`

```ts
function registerUserEntity(connector: string, dialect?: SqlDialect): void
```

Enregistre l'entité `User` Drizzle dans le `entityRegistry` pour un ORM donné. À appeler **avant** `orm.connect()` (l'adapter compile/crée les tables au connect).

#### `registerWebAuthnCredentialEntity`

```ts
function registerWebAuthnCredentialEntity(connector: string, dialect?: SqlDialect): void
```

Enregistre l'entité du store de credentials dans le `entityRegistry` pour un ORM donné. À appeler **avant** `orm.connect()` (l'adapter crée la table au connect).

#### `registerWebhookEndpointEntity`

```ts
function registerWebhookEndpointEntity(connector: string, dialect?: SqlDialect): void
```

Enregistre l'entité du store webhook dans le `entityRegistry` pour un ORM donné. À appeler **avant** `orm.connect()` (l'adapter crée la table au connect).

### Constantes (28)

#### `AUDIT_ENTITY_NAMES`

```ts
const AUDIT_ENTITY_NAMES: { readonly events: "audit_event"; }
```

Noms logiques des entités du store (clés de lookup `getRepository`).

#### `IDEMPOTENCY_ENTITY_NAME`

```ts
const IDEMPOTENCY_ENTITY_NAME: "idempotency_key"
```

Nom logique de l'entité (clé de lookup `getRepository` / `entityRegistry`).

#### `SESSION_CONNECTOR`

```ts
const SESSION_CONNECTOR = "default"
```

ORM cible du stockage de session (connecteur par défaut du module).

#### `SESSION_ENTITY_NAME`

```ts
const SESSION_ENTITY_NAME = "session"
```

Nom logique de l'entité (clé de lookup `getRepository` / `entityRegistry`).

#### `TOKEN_ENTITY_NAMES`

```ts
const TOKEN_ENTITY_NAMES: { readonly records: "access_token"; readonly denied: "denied_jti"; readonly revocations: "subject_revocation"; }
```

Noms logiques des entités du store (clés de lookup `getRepository`).

#### `TOTP_SECRET_ENTITY`

```ts
const TOTP_SECRET_ENTITY = "totp_secret"
```

Nom logique de l'entité (clé de lookup `getRepository`).

#### `WEBAUTHN_CREDENTIAL_ENTITY`

```ts
const WEBAUTHN_CREDENTIAL_ENTITY = "webauthn_credential"
```

Nom logique de l'entité (clé de lookup `getRepository`).

#### `WEBHOOK_ENDPOINT_ENTITY`

```ts
const WEBHOOK_ENDPOINT_ENTITY = "webhook_endpoint"
```

Nom logique de l'entité (clé de lookup `getRepository`).

#### `accessTokenTable`

```ts
const accessTokenTable: SQLiteTable
```

Variantes SQLite des trois tables (dialecte par défaut) — exports conservés pour l'usage direct/banc-test.

#### `auditEventTable`

```ts
const auditEventTable: SQLiteTable
```

Variante SQLite de la table (dialecte par défaut) — export conservé pour l'usage direct/banc-test.

#### `createAccessTokenTable`

```ts
const createAccessTokenTable: import("./colKit").FrameworkTableFactory
```

Factory de la table des records (mémoïsée — une instance par dialecte).

#### `createAuditEventTable`

```ts
const createAuditEventTable: import("./colKit").FrameworkTableFactory
```

Factory de la table du journal (mémoïsée — une instance par dialecte).

#### `createDeniedJtiTable`

```ts
const createDeniedJtiTable: import("./colKit").FrameworkTableFactory
```

Factory de la denylist `jti` (mémoïsée — une instance par dialecte).

#### `createIdempotencyTable`

```ts
const createIdempotencyTable: FrameworkTableFactory
```

Factory de la table d'idempotence pour un dialecte donné — **premier maillon du chantier portabilité multi-dialecte** (un schéma logique → la table Drizzle du bon dialecte), migrée du switch manuel 2 tables vers le colKit (S4 : la variante mysql sort du kit). Le `DrizzleOrm` l'appelle selon `connector.dialect`.

#### `createSessionTable`

```ts
const createSessionTable: import("./colKit").FrameworkTableFactory
```

Factory de la table de session pour un dialecte donné (mémoïsée — une instance par dialecte). `sqlite` (défaut) et `postgres` sont portés ; `mysql` jette (S4).

#### `createSubjectRevocationTable`

```ts
const createSubjectRevocationTable: import("./colKit").FrameworkTableFactory
```

Factory des seuils de révocation (mémoïsée — une instance par dialecte).

#### `createTotpSecretTable`

```ts
const createTotpSecretTable: import("./colKit").FrameworkTableFactory
```

Factory de la table de secrets TOTP pour un dialecte donné (mémoïsée — une instance par dialecte). **Les trois dialectes sont portés** (`TOTP_PORTED = ALL_DIALECTS`, `registerStores.ts:92`) : sqlite, postgres et mysql.

#### `createUserTable`

```ts
const createUserTable: UserTableFactory
```

Factory de la table `User` pour un dialecte donné (mémoïsée — une instance par dialecte). Les trois dialectes sont portés (`sqlite` par défaut).

#### `createWebAuthnCredentialTable`

```ts
const createWebAuthnCredentialTable: import("./colKit").FrameworkTableFactory
```

Factory de la table de credentials pour un dialecte donné (mémoïsée — une instance par dialecte). `sqlite` (défaut) et `postgres` sont portés ; `mysql` jette (S4).

#### `createWebhookEndpointTable`

```ts
const createWebhookEndpointTable: import("./colKit").FrameworkTableFactory
```

Factory de la table des endpoints (mémoïsée — une instance par dialecte).

#### `deniedJtiTable`

```ts
const deniedJtiTable: SQLiteTable
```

#### `idempotencyKeyTable`

```ts
const idempotencyKeyTable: SQLiteTable
```

Variante SQLite mémoïsée (dialecte par défaut) — export statique de compat (bancs, typage du store `DrizzleIdempotencyStore`).

#### `sessionTable`

```ts
const sessionTable: SQLiteTable
```

Variante SQLite de la table de session (dialecte par défaut) — export conservé pour l'usage direct/banc-test.

#### `subjectRevocationTable`

```ts
const subjectRevocationTable: SQLiteTable
```

#### `totpSecretTable`

```ts
const totpSecretTable: SQLiteTable
```

Variante SQLite de la table de secrets TOTP (dialecte par défaut) — export conservé pour l'usage direct/banc-test.

#### `userTable`

```ts
const userTable: SQLiteTable<import("drizzle-orm/sqlite-core").TableConfig> & { readonly id: AnySQLiteColumn; }
```

Variante SQLite de la table `User` (dialecte par défaut) — export conservé pour l'usage direct/banc-test (ex. module mediasoup).

#### `webAuthnCredentialTable`

```ts
const webAuthnCredentialTable: SQLiteTable
```

Variante SQLite de la table de credentials (dialecte par défaut) — export conservé pour l'usage direct/banc-test.

#### `webhookEndpointTable`

```ts
const webhookEndpointTable: SQLiteTable
```

Variante SQLite de la table (dialecte par défaut) — export conservé pour l'usage direct/banc-test.

### Interfaces (8)

#### `AuditEventRow`

```ts
interface AuditEventRow
```

Forme plate d'une ligne du journal d'audit. Miroir d'`IAuditEvent` avec les champs optionnels rendus explicitement `| null` (colonnes NULLABLE SQL). Le store mappe `null` ↔ `undefined` aux frontières.

- `id: string`
- `ts: number`
- `category: AuditCategory`
- `action: string`
- `outcome: AuditOutcome`
- `actor: string | null`
- `resource: string | null`
- `reason: string | null`
- `ip: string | null`
- `userAgent: string | null`
- `requestId: string | null`
- `flags: IAuditEventFlags | null`
- `metadata: Record<string, unknown> | null`

#### `DeniedJtiRow`

```ts
interface DeniedJtiRow
```

Forme plate d'une ligne de la denylist `jti`.

- `jti: string`
- `expiresAt: number`

#### `IdempotencyKeyRow`

```ts
interface IdempotencyKeyRow
```

Forme plate d'une ligne du store d'idempotence (telle que renvoyée par le repository / `SELECT`). Identique aux colonnes de `idempotencyKeyTable` → zéro mapping store ↔ entité.

- `key: string`
- `fingerprint: string`
- `state: "if" | "done"`
- `response: IdempotentResponse | null`
- `expiresAt: number`

#### `SessionRow`

```ts
interface SessionRow
```

Forme plate d'une ligne de session telle que renvoyée par le repository.

- `session_id: string`
- `Attributes: unknown`
- `flashBag: unknown`
- `metaBag: unknown`
- `user: string | null`
- `createdAt: number`
- `updatedAt: number`

#### `SubjectRevocationRow`

```ts
interface SubjectRevocationRow
```

Forme plate d'une ligne de révocation par porteur.

- `subjectId: string`
- `invalidBefore: number`

#### `TotpSecretRow`

```ts
interface TotpSecretRow
```

Forme **plate** d'une ligne de secret renvoyée par le repository ORM. Structure identique à `ITotpSecret` (tout `| null` déjà présent côté contrat) → mapping quasi-identité dans `DrizzleTotpSecretStore` (≠ `webAuthnCredentialEntity` qui a un `nickname?` à normaliser).

- `userId: string`
- `secretEnc: string`
- `algorithm: TotpAlgorithm`
- `digits: number`
- `period: number`
- `recoveryCodes: string[]`
- `confirmedAt: number | null`
- `lastUsedStep: number | null`
- `createdAt: number`
- `lastUsedAt: number | null`

#### `WebAuthnCredentialRow`

```ts
interface WebAuthnCredentialRow
```

Forme **plate** d'une ligne de credentials renvoyée par le repository ORM — `nickname: string | null` (≠ `nickname?: string` du contrat) et `transports` mutable. `DrizzleWebAuthnCredentialStore` mappe `Row ↔ IWebAuthnCredential`.

- `id: string`
- `userId: string`
- `publicKey: string`
- `signCount: number`
- `transports: string[]`
- `backupEligible: boolean`
- `backupState: boolean`
- `uvInitialized: boolean`
- `nickname: string | null`
- `createdAt: number`
- `lastUsedAt: number | null`

#### `WebhookEndpointRow`

```ts
interface WebhookEndpointRow
```

Forme **plate** d'une ligne d'endpoint renvoyée par le repository ORM — `events` mutable (le contrat porte `readonly string[]`). Tous les autres champs sont identiques à `IWebhookEndpoint` (déjà « plat tout `| null` »). `DrizzleWebhookStore` mappe `Row ↔ IWebhookEndpoint`.

- `id: string`
- `url: string`
- `secretEnc: string`
- `events: string[]`
- `enabled: boolean`
- `description: string | null`
- `tenantId: string | null`
- `createdBy: string | null`
- `createdAt: number`
- `updatedAt: number`
- `lastDeliveryAt: number | null`
- `lastDeliveryStatus: number | null`
- `lastDeliveryError: string | null`
- `failureCount: number`
- `metadata: Record<string, unknown>`

---

[← Toutes les références d'API](../../)
