Commit Graph
52 Commits
Author SHA1 Message Date
07e7b5a18f chore(cli): use beta url for pre-release and resolve open import (#7997)
Co-authored-by: Ghost <ghost@better-github.app>
2026-02-20 05:02:12 -08:00
Joél SolanoandGitHub cf8322707c feat: auth cli (#7964) 2026-02-15 07:44:50 +00:00
SaviruGitHubAlex YangPaola Estefanía de CamposTim Kellerclaude[bot] <41898282+claude[bot]@users.noreply.github.com>Alex YangTaesucopilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
5c6ccfa688 docs: update to React Router v7 and improve docs (#7457)
Co-authored-by: Alex Yang <himself65@outlook.com>
Co-authored-by: Paola Estefanía de Campos <84341268+Paola3stefania@users.noreply.github.com>
Co-authored-by: Tim Keller <36288711+tjkeller-xyz@users.noreply.github.com>
Co-authored-by: claude[bot] <41898282+claude[bot]@users.noreply.github.com>
Co-authored-by: Alex Yang <himself65@users.noreply.github.com>
Co-authored-by: Taesu <166604494+bytaesu@users.noreply.github.com>
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
2026-02-05 18:46:34 +00:00
Dylan VanmaliandGitHub ed68d3d3c9 feat: awaitable social provider config (#4829) 2026-02-04 21:56:28 +00:00
Paola Estefanía de CamposandGitHub b3cce69ad1 fix(cli): update MCP URL from Chonkie to Inkeep (#7585) 2026-01-26 17:18:38 +00:00
Paola Estefanía de CamposandGitHub 041dc17b2a fix(mcp): remove local mpc (#7574) 2026-01-23 18:04:12 +00:00
Bereket EngidaandGitHub 8318640286 fix(cli): use inkeep remote mcp url (#7543) 2026-01-22 19:11:46 +00:00
Alex YangandGitHub 1668a33372 fix: /minimal includes unexpected deps (#7467) 2026-01-19 20:32:29 +00:00
c200e8292b chore: fix opencode tag and MCP command structure (#7451)
Co-authored-by: Bereket Engida <Bekacru@gmail.com>
2026-01-17 20:15:00 -08:00
Alex YangandGitHub 531b9d56a5 chore: add lint rule useConst (#7369) 2026-01-14 14:18:18 -08:00
Alex YangandGitHub 983c8d20d1 chore: fix lint warnings (#7336) 2026-01-13 11:54:10 -08:00
Paola Estefanía de CamposandGitHub 25dfcff66c feat(mcp): add setup_auth tool (#7307) 2026-01-13 11:05:39 -08:00
Alex YangandGitHub 58b5d51ee1 docs: fix mcp config name (#7067) 2025-12-31 00:59:03 +08:00
Alex YangandGitHub 5471295282 fix(cli): cmd info --json unexpected exit with 1 (#6949) 2025-12-23 18:39:55 +08:00
Dylan VanmaliandGitHub 686fba4e11 feat(oauth-provider): an oauth 2.1 compliant plugin (#4163)
An upgrade to oidc-provider plugin that makes it oauth2.1 compliant and has a configuration that is secure by default.

Plans for the deprecation of oidc-provider plugin due to many inherent flaws in its design. Internally, plugin functions now share logic, providing for better future extensibility if new code_grants need to be written or user/client jwt or opaque tokens need to be written. Furthermore, as an oAuth 2.1 provider, it provides logic valid for an MCP server. When using the scope "openid" (optional, enabled by default), the server acts like an OpenId server able to issue id tokens and provides a /userinfo endpoint.

Features

OAuth 2.1 by default
Properly supports authorization_code, refresh_token, and client_credentials grants
PKCE by default (removes plain completely)
Public and confidential client registration
JWT plugin is required by default, but can be disabled using disableJWTPlugin flag
Access tokens can now be received in JWT verifiable format using the resource parameter (ie JWT aud field)
Id tokens are still verifiable by JWKS when using JWT Plugin, or clientSecret if disabled. Fixes issue to prevent public clients when disableJWTPlugin: true from obtaining id tokens directly even when they shouldn't be allowed an id token and should use /userinfo instead.
Protects /userinfo with scope check
Separates Refresh Token and Access token on database schema to allow multiple access tokens per refresh and multiple refresh tokens per login session.
oauthAccessToken strictly deals with opaque tokens
Opaque tokens are given only when resource parameter (aka audience) is not provided
Option to Encode and Decode refresh tokens
allowDynamicClientRegistration with allowUnauthenticatedClientRegistration flags
Separation of default expiration times
Proper creation of public and confidential clients
Prevents misconfiguration between .well-known/openid-configuration endpoint and plugin settings
scopeExpirations to assign scopes specific expiration
Custom claims through separated functions: customAccessTokenClaims, customIdTokenClaims, and customUserInfoClaims
Organizational support through activeOrganizationalId on a session such as through the organizational plugin. Attaches to oAuthClient via reference_id.
Rp-initiated logout
Account Selection via prompt=select_account.
Account Creation via prompt=create.
Prompt combinations prompt=select_account+consent and prompt=login+consent

Docs available at https://www.better-auth.com/docs/plugins/oauth-provider (pr: https://github.com/better-auth/better-auth/blob/main/docs/content/docs/plugins/oauth-provider.mdx)
2025-12-22 11:16:42 -08:00
Jonathan SaminesandGitHub 9233783428 chore: remove unused variables (#6647) 2025-12-09 13:51:35 -08:00
Jonathan SaminesandGitHub 5436b95ada chore: remove unused exports and export types (#6513) 2025-12-04 22:30:15 -08:00
Alex YangandGitHub 47044905d4 chore(cli): reduce better-auth imports (#6507) 2025-12-03 21:17:46 -08:00
Alex YangandGitHub dd2545d634 fix(cli): secret generates empty (#6504) 2025-12-03 13:40:32 -08:00
Alex YangandGitHub 5cbe0a58e7 chore: enforce imports to use node: protocol (#6461) 2025-12-01 16:08:32 -08:00
TaesuandGitHub f327e336c8 refactor: split the passkey plugin into a separate package (#5769) 2025-11-05 17:05:39 +00:00
Alex YangandGitHub 938c2a7c31 chore: lint enable organize import (#5556) 2025-10-24 19:05:09 +00:00
Alex YangandGitHub 717d12f230 chore: remove deprecated sso plugin from better-auth (#5332) 2025-10-15 18:07:02 +00:00
70cb434f12 feat(cli): add mcp client configs from cli (#4872)
Co-authored-by: Alex Yang <himself65@outlook.com>
2025-09-30 13:41:51 -07:00
Alex YangandGitHub 7faaeac9fc fix(cli): info shows the correct version (#4547) 2025-09-09 13:46:19 -07:00
Alex YangandGitHub 70d4dc609a chore: enable lint rule noTsIgnore (#4296) 2025-08-28 15:09:47 -07:00
Alex YangandGitHub 7931166c8d feat(cli): add info script (#4143) 2025-08-27 10:49:34 -07:00
Alex YangandGitHub 55ec22c877 fix: small dx for device login (#4141) 2025-08-21 17:46:11 -07:00
Alex YangandGitHub 5ded0904d4 feat: support device authorization (#3811) 2025-08-21 14:59:31 -07:00
Fraol LemechaGitHubKinfe123Bereket Engidacubic-dev-ai[bot] <191113872+cubic-dev-ai[bot]@users.noreply.github.com>Alex YangBereket Engida
2915e4c92d feat: add telemetry (#3822)
* feat: telemetry

Co-authored-by: Kinfe123 <kinfishtech@gmail.com>

* chore: remove changeset

* fix: do not generate project id unless telemetry is enabled

* fix: return `isInsiderContainerCached`

Co-authored-by: cubic-dev-ai[bot] <191113872+cubic-dev-ai[bot]@users.noreply.github.com>

* chore: remove unused utils file

* fix: properly cache generated project id

* feat: interpret empty env vars as false

Co-authored-by: cubic-dev-ai[bot] <191113872+cubic-dev-ai[bot]@users.noreply.github.com>

* fix: use nullish coalescing to set fallback

* fix: should be `isInsideContainerCached`

* fix: unique icons + tooltip for telemetry component

* fix: import child process from node

* fix: remove quotes in description

Co-authored-by: Alex Yang <himself65@outlook.com>

* fix: address reviews

Co-authored-by: Alex Yang <himself65@outlook.com>

* chore: refactor

* refactor

* add tests

* cache pkg json

* add cli tracking

* add migrate

* chore fix xi

* skip tet

* update snapshot

* chore: fix typecheck

* Expand telemetry docs: list collected fields, clarify anonymous redaction via getTelemetryAuthConfig, and document CLI events and audit/opt‑out paths.

* docs

* doc cleanup

* fixes

* remove git first commit message

* update docs

---------

Co-authored-by: Kinfe123 <kinfishtech@gmail.com>
Co-authored-by: Bereket Engida <86073083+Bekacru@users.noreply.github.com>
Co-authored-by: cubic-dev-ai[bot] <191113872+cubic-dev-ai[bot]@users.noreply.github.com>
Co-authored-by: Alex Yang <himself65@outlook.com>
Co-authored-by: Bereket Engida <Bekacru@gmail.com>
2025-08-10 01:11:56 -07:00
Fraol LemechaandGitHub 2481c1d575 fix(cli): only show the overwrite message when the schema file exists and the code has changed (#3826) 2025-08-06 11:01:19 -07:00
Alex YangandGitHub 575070f605 chore: bump biome (#3784) 2025-08-04 13:48:54 -07:00
2d8d05330d fix(cli): --yes option does not work on @better-auth/cli generate (#3749)
* fix: do not prompt before overwriting schema on `@better-auth/cli generate --yes ...`

* chore: changeset

---------

Co-authored-by: Bereket Engida <86073083+Bekacru@users.noreply.github.com>
2025-08-02 08:58:44 -07:00
Khiet Tam NguyenandGitHub e11c51e210 feat(cli): added --yes for generate/migrate, deprecated --y (#3542)
* feat(cli): added --yes option, deprecated --y, as per #1937

* feat:(cli): add deprecation warning to console if --y is used

* style(cli): linted migrate.ts & generate.ts

* docs(cli): revert 1.0 changelog
2025-07-23 09:31:06 -07:00
KinfeMichael TarikuandGitHub 4cff983e5c refactor: migrated all packages from Zod v3 to Zod v4 (#3399)
Refactors
- Updated all imports and type references to use zod/v4.
- Replaced deprecated or changed Zod APIs and options across the codebase.
- Adjusted validation schemas and error messages to match Zod v4 requirements.
- Updated dependencies and lockfiles to use Zod v4.
2025-07-17 08:30:02 -07:00
KinfeMichael TarikuandGitHub e9b8d92438 chore: fix jsodc typo (#2942) 2025-06-07 11:52:12 -07:00
KinfeMichael TarikuandGitHub e75c67accc fix: resolve custom ts config path 2025-05-03 21:05:12 +03:00
Anthony DePasquale 863129ca70 "up to date" (no hyphens needed when not modifying a noun) 2025-04-13 14:11:08 +02:00
Anthony DePasquale fc4c0eb280 Better Auth 2025-04-13 14:11:08 +02:00
Paul NodetandGitHub 43ab2860b4 fix(cli): invalid prisma init config (#1964) 2025-03-24 08:03:20 +03:00
8e47f11298 fix(init-cmd): Dependencies do not install if ENVs are skipped (#1603)
* fix(cli): init cmd types

* fix(init): deps do not install if env is skipped

- also made the CLI show which packages it will install

* fix(typecheck): specify tsconfig for declarations

---------

Co-authored-by: Bereket Engida <bekacru@gmail.com>
2025-03-01 11:03:56 +03:00
c66fdc9129 feat: init Better Auth CLI command (#1427)
* update: init command now can do plugins & DB generation

* fix: revert nextjs auth.ts file

* add: pacakge @clack/prompts for better CLI experience

* update: moved from prompts to clack/prompts

* add: functionality to hide logs coming from `getConfig`

* remove: hide logs functionality

* chore: remove unneeded import

* add: install dependencies feature

* add: functionality to update/install better-auth

* fix: install/upgrade better-auth deps

* add: spinner during version checking

* fix: nextCookies plugin import path

* fix: oidc plugin contents

* update: emoji-ify

* fix: mysql code

* refactor: logging/prompt style

* update: mysql use 1 ENV

* fix: msql, revert back to old code

* fix: mysql connectionUri, again

* fix: missing sqlite env

* fix: added back the plugins multiselect

* update: outro text

* add: ENV generation for `BETTER_AUTH_URL` & `BETTER_AUTH_SECRET`

* update: intro & outro text, plus some ENV default values

* remove: name from cli options

* fix: made index.ts's getPackageInfo not crash the program entirely if ENOENT

* update: prompt to get auth config dir if not auto found

* fix: create auth config file

* add: log to state the new file that's being created

* update: outro text

* fix: unneeded diff display

* add: auth-client creator

* fix: auth-client plugins are now grouped

* fix: auth-client import path bugs

* fix: invalid client plugins

* fix: oneTap client plugin contents

* update: allow getConfig to throw errors instead of logging

* fix: auth config error logging

* WIP: auth client code gen

* chore: linter

* update: now supports auth client generation

* WIP: grouped imports

* remove: functionality to update existing auth code

* add: functionality to update tsconfig

* fix: tsconfig not saving new updated values

* fix: handle missing .env files in init process

* update: made `no env file found` error message use `outro` for better logging experience

* fix: removed `ms` at the end as the `formatMilliseconds` fn already handles that

* update: move ENV code after plugins initialization

* chore: update pnpm lockfile and remove deprecated package note

* chore: lint

---------

Co-authored-by: Bereket Engida <bekacru@gmail.com>
2025-03-01 00:33:14 +03:00
Bereket Engida 9f2e45b8c7 chore: cleanup 2025-01-06 14:30:39 +03:00
LovelessCodesandGitHub ae4d5bae35 chore: rename secert.ts to secret.ts (#661) 2024-11-26 10:41:21 +03:00
Bereket EngidaandGitHub ca5e90883c feat(cli): add secret generator command for the cli (#659) 2024-11-25 23:44:30 +03:00
AbdallahandGitHub abe3dddf23 fix(cli): fix -y flag in generate.ts (#631) 2024-11-25 09:11:29 +03:00
ThorbenandGitHub a3867bdbba feat: allow users to pass custom logger 2024-11-18 09:58:09 +03:00
Bereket Engida 515a5e17fc chore: remove log 2024-11-13 21:41:55 +03:00
Bereket EngidaandGitHub 0775612256 feat: native adapter interfaces (#513) 2024-11-13 19:28:11 +03:00
Bereket Engida 49d5a6a842 fix: expo origin check failing 2024-11-03 00:18:07 +03:00