[PR #595] [MERGED] feat: all core tables now have createdAt and updatedAt fields and session id is now stored in a token field #20289

Closed
opened 2026-04-15 19:35:41 -05:00 by GiteaMirror · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/better-auth/better-auth/pull/595
Author: @Bekacru
Created: 11/19/2024
Status: Merged
Merged: 11/19/2024
Merged by: @Bekacru

Base: v1.0Head: feat/new-core-fields


📝 Commits (10+)

  • 8325503 feat: unify id generation and introduce type parameter
  • 18ec740 fix: type
  • 7e1334b fix: docs
  • 6024189 chore: improve test
  • f775e29 fix: use generateId to control automatic database id generation
  • 42ad773 fix: improve naming
  • 5be8020 fix: docs
  • cf7dd70 fix: do not process id twice in transformInput
  • 5993366 Merge branch 'main' into improve-generateid
  • 8afb27b wip

📊 Changes

42 files changed (+416 additions, -268 deletions)

View changed files

📝 docs/content/docs/concepts/database.mdx (+16 -13)
📝 packages/better-auth/src/__snapshots__/init.test.ts.snap (+33 -2)
📝 packages/better-auth/src/adapters/drizzle-adapter/drizzle-adapter.ts (+22 -19)
📝 packages/better-auth/src/adapters/drizzle-adapter/test/schema.ts (+7 -1)
📝 packages/better-auth/src/adapters/kysely-adapter/kysely-adapter.ts (+21 -20)
📝 packages/better-auth/src/adapters/memory-adapter/memory-adapter.ts (+20 -8)
📝 packages/better-auth/src/adapters/prisma-adapter/prisma-adapter.ts (+22 -19)
📝 packages/better-auth/src/adapters/prisma-adapter/test/schema.prisma (+3 -0)
📝 packages/better-auth/src/adapters/test.ts (+5 -1)
📝 packages/better-auth/src/api/routes/callback.ts (+7 -13)
📝 packages/better-auth/src/api/routes/forget-password.ts (+3 -2)
📝 packages/better-auth/src/api/routes/session-api.test.ts (+3 -3)
📝 packages/better-auth/src/api/routes/session.ts (+5 -5)
📝 packages/better-auth/src/client/client.test.ts (+3 -0)
📝 packages/better-auth/src/cookies/index.ts (+2 -2)
📝 packages/better-auth/src/db/get-schema.ts (+0 -1)
📝 packages/better-auth/src/db/get-tables.ts (+32 -0)
📝 packages/better-auth/src/db/internal-adapter.test.ts (+10 -3)
📝 packages/better-auth/src/db/internal-adapter.ts (+66 -56)
📝 packages/better-auth/src/db/schema.ts (+9 -3)

...and 22 more files

📄 Description

This change introduces two new required fields, createdAt and updatedAt, in the session, verification, and accounts tables. Additionally, a major update is made regarding session tokens. Previously, session tokens were stored in the id field because, until recently, Better Auth handled ID generation. This approach allowed us to securely generate IDs for the session table and use them as tokens, eliminating the need for an extra token field and maintaining consistency with other tables.

However, since we now allow custom ID generators or even database-generated IDs, this poses a security risk. User-implemented ID generators could produce IDs that are predictable or weak. To address this, a new token field has been added to the session table for storing tokens. This change also enables support for incremental numeric IDs, as requested in issue #227, which was not feasible under the previous design.


🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/better-auth/better-auth/pull/595 **Author:** [@Bekacru](https://github.com/Bekacru) **Created:** 11/19/2024 **Status:** ✅ Merged **Merged:** 11/19/2024 **Merged by:** [@Bekacru](https://github.com/Bekacru) **Base:** `v1.0` ← **Head:** `feat/new-core-fields` --- ### 📝 Commits (10+) - [`8325503`](https://github.com/better-auth/better-auth/commit/8325503cb96e8f71ecc0d0b2b0895a6d6fce1d47) feat: unify id generation and introduce type parameter - [`18ec740`](https://github.com/better-auth/better-auth/commit/18ec7402f370ff2d59f65c5ce7b1eb97eeecfd6a) fix: type - [`7e1334b`](https://github.com/better-auth/better-auth/commit/7e1334b71d7d0062074c49e02abc1c6e2d090fc3) fix: docs - [`6024189`](https://github.com/better-auth/better-auth/commit/602418957f0507c646e2b32e9b1107d78f125bda) chore: improve test - [`f775e29`](https://github.com/better-auth/better-auth/commit/f775e29e51830f515dc506ddca96cfff72d55bf1) fix: use generateId to control automatic database id generation - [`42ad773`](https://github.com/better-auth/better-auth/commit/42ad773e81c7bc962d6f94e6d5650ca1acec7ebd) fix: improve naming - [`5be8020`](https://github.com/better-auth/better-auth/commit/5be80204c1c03993493951a8318528fae4a9de0e) fix: docs - [`cf7dd70`](https://github.com/better-auth/better-auth/commit/cf7dd703fda4fd828774a9a5a4779e11bd54e7c2) fix: do not process id twice in transformInput - [`5993366`](https://github.com/better-auth/better-auth/commit/599336691908775bdba9691145ee575095a3e6e5) Merge branch 'main' into improve-generateid - [`8afb27b`](https://github.com/better-auth/better-auth/commit/8afb27b4e79fef47042c0ddfa0a2c767af5ed3bf) wip ### 📊 Changes **42 files changed** (+416 additions, -268 deletions) <details> <summary>View changed files</summary> 📝 `docs/content/docs/concepts/database.mdx` (+16 -13) 📝 `packages/better-auth/src/__snapshots__/init.test.ts.snap` (+33 -2) 📝 `packages/better-auth/src/adapters/drizzle-adapter/drizzle-adapter.ts` (+22 -19) 📝 `packages/better-auth/src/adapters/drizzle-adapter/test/schema.ts` (+7 -1) 📝 `packages/better-auth/src/adapters/kysely-adapter/kysely-adapter.ts` (+21 -20) 📝 `packages/better-auth/src/adapters/memory-adapter/memory-adapter.ts` (+20 -8) 📝 `packages/better-auth/src/adapters/prisma-adapter/prisma-adapter.ts` (+22 -19) 📝 `packages/better-auth/src/adapters/prisma-adapter/test/schema.prisma` (+3 -0) 📝 `packages/better-auth/src/adapters/test.ts` (+5 -1) 📝 `packages/better-auth/src/api/routes/callback.ts` (+7 -13) 📝 `packages/better-auth/src/api/routes/forget-password.ts` (+3 -2) 📝 `packages/better-auth/src/api/routes/session-api.test.ts` (+3 -3) 📝 `packages/better-auth/src/api/routes/session.ts` (+5 -5) 📝 `packages/better-auth/src/client/client.test.ts` (+3 -0) 📝 `packages/better-auth/src/cookies/index.ts` (+2 -2) 📝 `packages/better-auth/src/db/get-schema.ts` (+0 -1) 📝 `packages/better-auth/src/db/get-tables.ts` (+32 -0) 📝 `packages/better-auth/src/db/internal-adapter.test.ts` (+10 -3) 📝 `packages/better-auth/src/db/internal-adapter.ts` (+66 -56) 📝 `packages/better-auth/src/db/schema.ts` (+9 -3) _...and 22 more files_ </details> ### 📄 Description This change introduces two new required fields, `createdAt` and `updatedAt`, in the session, verification, and accounts tables. Additionally, a major update is made regarding session tokens. Previously, session tokens were stored in the `id` field because, until recently, Better Auth handled ID generation. This approach allowed us to securely generate IDs for the session table and use them as tokens, eliminating the need for an extra token field and maintaining consistency with other tables. However, since we now allow custom ID generators or even database-generated IDs, this poses a security risk. User-implemented ID generators could produce IDs that are predictable or weak. To address this, a new `token` field has been added to the session table for storing tokens. This change also enables support for incremental numeric IDs, as requested in issue #227, which was not feasible under the previous design. --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
GiteaMirror added the pull-request label 2026-04-15 19:35:41 -05:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: github-starred/better-auth#20289