Commit Graph

837 Commits

Author SHA1 Message Date
Maxwell
b6d18ce16f docs(add): database category (#1315)
* docs: sidebar updated for new category

* fix: icons to use fill version

* add: the rest of the pages for the database category

* update: MySQL done

* update: SQLite done. (and updated MySQL)

* update: PostgreSQL

* update: mssql done

* update: added callout to Kysley docs for each core dialect

* update: other relational databases page

* update: drizzle

* docs(fix): wrong words on drizzle page

* update: mongo docs

* update: prisma done

* update: community adapter page

* update: concept/database to refer to the documentation for each dialect in the docs category

* update: drizzle to mention the schema definitions

---------

Co-authored-by: Bereket Engida <86073083+Bekacru@users.noreply.github.com>
2025-03-01 00:32:46 +03:00
Maxwell
ec9edc357a feat: API Key plugin (#1515)
* feat: API-key plugin

* add: `deleteAllExpiredApiKeys` functionality

* fix: fetching sessions from headers

* update: types & create-api-key now checks for min & max expiresIn values

* tests: Started working on tests

* add: features

- added list functionality
- added min & max prefix length
- added min & max name length
- added metadata enable/disable option
- added `disableSessionForAPIKeys` option
- verify API key now checks for expiration & refills
- added regex to check prefix of api key

* fix: create-api-key's expiration using `/` instead of `*`

* update: schema `metadata` transforms invalid values as `null`

* fix: create-api-key metadata should go through transformation

* fix: missing metadata wouldn't have `'null'` as value

* update: error types

* fix: remove console.logs from verify

* fix: rate-limit not working

* fix: rate-limit plugin options types

* chore: remove logs

* update: removed `key` field from result apiKey type of the update-api-key endpoint

* fix: typo

* update: create & update if checks

- create now checks if custom expiration times are allowed
- update now allows name values & checks if name is within length range
- update now also checks for custom expiration times are allowed

* update(WIP): tests

* fix: added the missing error throw when there is no values to update

* fix: update-api-key checks expiresIn in days, not ms

- also updated create-api-key & update-api-key to have more detailed event logging

* fix: update api key's remaining count's min & max checks

- also added more detail to the events

* fix: update-api-key can now update refillInterval & refillAmount properly

* fix: metadata in update-api-key transforms between string & obj correctly

* add: all of the `update` tests

* update: get-api-key metadata is now obj instead of string

* add: listApiKeys functionality

* fix: get-session to use mock session based on header API keys

* update: tests to test against get-session, get-api-key, and list-api-key

* add: `start` field to show the first few characters of an API key

* fix: very silly mistake

* update: tests to validate `start` property

* update: create-api-key checks if properties are set from server & allows for custom rate-limit rules

- also updated tests to check against this

* update: verify-api-key to check if a row has the right user-id

- this also should speed up the DB process too. (I'm pretty sure)

* update: `delete-all-expired-api-keys` endpoint added & updated list-api-keys endpoint function name

* add: customAPIKeyValidator fn, and fixed verification `remaining` and `lastRefillAt` values updating DB incorrectly

* update: documentation

* add: rate-limiting enable/disable on a per-key level

* update: docs

* fix: correct expiration time units and improve error messages in API key handling

* fix: allow creating apiKeys by providing userId on the server

* fix: user userId instead of headers to differ server vs client calls on create api key

* wip

* fix: JSDoc comment

* fix: tests not passing due to invalid expiresIn value

Since the expiresIn got changed from `ms` to `sec`, this needed to be changed as well.

* wip

* fix(api-key): update tests and error messages for API key verification

* fix(api-key): update API key fixes

* refactor tests and remove events

* refactor(api-key): remove unused event handling and clean up type definitions

* add: minimum values to `create-api-key` numeric input options

* fix: remove `opts.events` in delete-api-key route

* refactor: all returning routes which can contain `key`

- more performant
- better typed
- cleaner code

:D

* update: added minimum values to update-api-key endpoint as well

* fix: removed `maximumRemaining` & `minimumRemaining` default values in `opts`

* docs: ready (unless I make minor adjustments later) 🫡

* fix(docs): links & invalid code examples

* fix: output transform of metadata to use ParseJSON

* fix: tests failing due to async metadata transform output

* fix: return types for verify-api-key endpoint

* fix: tests failing due to invalid expiresIn minimum value

* docs: reorder sidebar items for API Key

* wip

* docs(api-key): enhance documentation with permissions and usage details

- Updated API key documentation with comprehensive permissions explanation
- Added examples for setting default permissions, creating, verifying, and updating API keys with permissions
- Clarified API key creation, verification, and update processes
- Improved code examples and descriptions for better understanding

* chore: lint

* fix(docs): incorrect wording / explanation on refillInterval/refillAmount

* add(docs): missing permissions info in docs

---------

Co-authored-by: Bereket Engida <bekacru@gmail.com>
2025-02-28 17:11:03 +03:00
Bereket Engida
7ba1af2ff9 Merge branch 'main' into v1.2 2025-02-27 14:20:23 +03:00
Krishna Santosh
2c81dcab7c docs(fix): add missing word 'change' (#1572) 2025-02-25 16:27:33 +03:00
Maxwell
cdedfd2582 docs: add author avatar on community plugins (#1565) 2025-02-24 22:23:44 +03:00
Bereket Engida
c410f6dae0 Merge branch 'main' into v1.2 2025-02-24 14:55:44 +03:00
Bereket Engida
89020e058c Merge branch 'main' into v1.2 2025-02-24 11:41:29 +03:00
Zohaib Akber
84dc11bb3e docs(fix): session secondary storage value for redis (#1359) 2025-02-24 08:10:11 +03:00
Bereket Engida
3009797045 chore(docs): fix syntax error on code example 2025-02-24 08:09:44 +03:00
Wolfgang Rathgeb
8ba7a9ceae feat(email-otp): add option to set a function to generate OTPs (#1472)
* add option to create a otp

* add description

* use tabs instead of spaces

* rename create to generate and replace all uses fo generateRandomString

* remove length

* fix type in forgot-password

* add generateOTP option and tests for email OTP functionality

---------

Co-authored-by: Bereket Engida <bekacru@gmail.com>
2025-02-24 08:02:04 +03:00
Jan
5a537c5408 docs: added missing column in 2fa plugin schema (#1552)
* Added missing column in 2fa plugin schema documentation

* Formatting
2025-02-24 00:34:29 +03:00
Kamil Kisiela
6c67ea1112 feat(sso): sign in using the providerId (#1533) 2025-02-24 00:13:01 +03:00
Joel Solano
612120cc24 feat: add access control to admin plugin (#1424)
* feat: add custom roles

* chore: remove unused import

* docs: add access control to admin plugin

* feat: add custom roles

* fix: update formatting to fix lint error

* fix: small fixes/optimizations

* fix: linting

* feat: make ready for v1.2

* fix: linting

* fix: remove incorrect negation in success check

* docs: update incorrect function and variable names

* fix: resolved merge conflicts

* fix: merge conflicts

* fix: linting

* refactor: make role field optional again

* refactor(access): improve auth logic and add tests for access control

* chore: fix linting

* refactor(admin): enhance access control types and improve admin client functionality

* chore: fix types

---------

Co-authored-by: Bereket Engida <bekacru@gmail.com>
2025-02-24 00:06:06 +03:00
Maxwell
c7ed3b5565 docs(fix); sessionMiddleware import path in plugins docs (#1544)
Thanks @perkinsjr !
2025-02-23 09:18:41 +03:00
Hussein Raji
df50012a76 docs: fix correct "set password" code snippet (#1537) 2025-02-23 09:18:41 +03:00
Maxwell
8fb25bdd6a docs(rename): node to express in integration docs (#1535) 2025-02-23 09:18:41 +03:00
Hussein Raji
d8173f383b docs: fix typo (#1529) 2025-02-23 09:18:41 +03:00
SaltyAom
722cb22769 doc(elysia): using mount and macro to simplify code (#1531) 2025-02-23 09:18:40 +03:00
Maxwell
e7b2d8177d docs(fix); sessionMiddleware import path in plugins docs (#1544)
Thanks @perkinsjr !
2025-02-23 08:46:47 +03:00
Hussein Raji
450c42680e docs: fix correct "set password" code snippet (#1537) 2025-02-22 20:10:17 +03:00
Maxwell
97911b4da1 docs(rename): node to express in integration docs (#1535) 2025-02-22 20:09:45 +03:00
Rahul Mishra
56b0465e4e docs: update getSessionCookie import in demo and docs (#1534) 2025-02-22 10:28:46 +03:00
Hussein Raji
7230ca9069 docs: fix typo (#1529) 2025-02-22 00:45:07 +03:00
SaltyAom
eba3fc919f doc(elysia): using mount and macro to simplify code (#1531) 2025-02-21 21:18:11 +03:00
Bereket Engida
cccb6fbaa3 Merge branch 'main' into v1.2 2025-02-21 01:20:54 +03:00
josselinonduty
a50950d487 docs: fix headers api example for nitro (#1307) 2025-02-20 22:38:35 +03:00
Thomas Lekanger
b9c01f3c49 docs: fix typo (#1517)
genericOAuth plugin uses ``scopes`` not ``scope``
2025-02-20 22:35:07 +03:00
Gordon Ta
6c28ad3e9b docs: improve cross subdomain cookies docs (#1324)
docs/concepts/cookies:
- updated the `Cross Subdomain Cookies` section  with missing details and additional information to make subdomain cookies work

docs/reference/security:
- updated the `Cookies` section with corrected attribute and option names
2025-02-20 22:02:32 +03:00
Adam El Taha
b56f6da8e2 docs: remove unneeded import from JWT docs (#1344) 2025-02-20 21:59:25 +03:00
Hussein Raji
a718cf5b04 docs: fix typo (#1514)
Correct error handling example snippet for sign in without email verification
2025-02-20 21:51:18 +03:00
Hussein Raji
830d5c075a docs: update custom session example (#1508) 2025-02-20 09:26:33 +03:00
Bereket Engida
6ff11bd5ae Merge branch 'main' into v1.2 2025-02-20 09:25:05 +03:00
Bereket Engida
883c5a9f0e Merge branch 'main' into v1.2 2025-02-20 09:22:45 +03:00
Pukima
91bc0b74d7 docs: fix typo in node integration intro (#1503) 2025-02-19 19:29:41 +03:00
Bereket Engida
95cd58bea0 docs: clarify user table extension options in accounts documentation 2025-02-19 15:25:29 +03:00
Jacob
dcb4065c8a docs: add a simple line to show that a tenant id can be passed optionally (#1483) 2025-02-19 09:45:52 +03:00
Bereket Engida
f737b3b02f docs(admin): update usage instructions to include adminUserIds option 2025-02-17 08:24:12 +03:00
Bereket Engida
8a08ae9eee feat(one-tap): improve Google One Tap integration with JWT verification and improved prompt handling (#1452)
* fix(auth): use options.baseURL instead of ctx.baseURL on trusted origins

* feat(one-tap):  improve Google One Tap integration with JWT verification and improved prompt handling

* feat(one-tap): add One Tap component for user authentication and fix prompt options
2025-02-17 08:23:56 +03:00
Bereket Engida
c4f2087943 feat(username): add default validation and options for validating username (#1345)
* feat: add default validation and options for validating username

* chore: release v1.1.16-beta.5

* fix: include update-user

* chore: release v1.1.16-beta.6
2025-02-17 08:22:37 +03:00
Bereket Engida
8ff196ec0d feat(one-tap): improve Google One Tap integration with JWT verification and improved prompt handling (#1452)
* fix(auth): use options.baseURL instead of ctx.baseURL on trusted origins

* feat(one-tap):  improve Google One Tap integration with JWT verification and improved prompt handling

* feat(one-tap): add One Tap component for user authentication and fix prompt options
2025-02-15 11:56:06 +03:00
Bereket Engida
b1e27fed8f feat(username): add default validation and options for validating username (#1345)
* feat: add default validation and options for validating username

* chore: release v1.1.16-beta.5

* fix: include update-user

* chore: release v1.1.16-beta.6
2025-02-14 18:15:19 +03:00
Bereket Engida
2c81e5bf8f Merge branch 'main' into v1.2 2025-02-14 15:17:41 +03:00
D3vision
d28e4861ce feat: add total users table/collection count to admin plugin list-users endpoint (#1258)
* Added total, offset and limit return propertiest to listUsers endpoint for admin plugin. This required modifying all db adapters. Also updated the init.test.ts.snap file to reflect adding of the count function in the adapter and the countTotalUsers function in the internalAdapter.

* Resolved all issues in review. We now use count wherever possible.

* linter was complaining

* literal on adapter and 1 more test

* lint

* admin plugin listUsers pagination documentation

---------

Co-authored-by: Kinfe123 <kinfishtech@gmail.com>
2025-02-14 13:20:45 +03:00
Bereket Engida
b26f8334b3 feat(organization): leave organization (#1239) 2025-02-14 13:12:15 +03:00
D3vision
e647040b14 feat: add Roblox social provider (#1249)
* Implemented Roblox social provider + documentation + icon for builder

* linter didn't like my svg and some of my other formatting

* and now the linter is finally happy

* made discord scope option overwrite default scopes, this way I dont need to have a users' email

* Revert "made discord scope option overwrite default scopes, this way I dont need to have a users' email"

This reverts commit 35b29e7957935ca2c777772a6a88dfa67015ed7b.

---------

Co-authored-by: Bereket Engida <86073083+Bekacru@users.noreply.github.com>
2025-02-14 13:11:50 +03:00
Bereket Engida
d701a926f8 docs: add example for linking OAuth accounts 2025-02-14 12:41:10 +03:00
Bereket Engida
eecaac4107 docs(phone-number): add forget password flow documentation with OTP code 2025-02-14 12:27:37 +03:00
Bereket Engida
73a6897c08 docs: add section on checking if organization slug is taken 2025-02-14 12:24:54 +03:00
Bereket Engida
42ff704c6d docs: update session management examples 2025-02-14 11:26:45 +03:00
Bereket Engida
17ab7946d5 docs: correct import statement for Captcha Plugin in documentation 2025-02-14 10:26:59 +03:00