This PR addresses the issue where the /handler/forgot-password page
should not be accessible when password authentication is disabled.
Additionally, it improves the redirection behavior when a user is
already logged in.
### Changes:
Added a redirection check in the useEffect hook to ensure that logged-in
users are redirected to the appropriate page instead of staying on the
forgot-password page.
### Fixes:
Closes#292
### Test:
[Screencast from 2025-03-20
22-18-36.webm](https://github.com/user-attachments/assets/d626ba95-9d7f-46e6-b232-0320b171d130)
<!-- ELLIPSIS_HIDDEN -->
----
> [!IMPORTANT]
> Redirects logged-in users from `ForgotPassword` page and prevents
access when password authentication is disabled.
>
> - **Behavior**:
> - Redirects logged-in users from `ForgotPassword` page using
`useEffect` in `forgot-password.tsx`.
> - Prevents access to `ForgotPassword` when password authentication is
disabled.
> - **Functions**:
> - Adds `useEffect` hook in `ForgotPassword` to handle redirection.
> - **Fixes**:
> - Closes issue #292.
>
> <sup>This description was created by </sup>[<img alt="Ellipsis"
src="https://img.shields.io/badge/Ellipsis-blue?color=175173">](https://www.ellipsis.dev?ref=stack-auth%2Fstack-auth&utm_source=github&utm_medium=referral)<sup>
for 9c93cb4078. It will automatically
update as commits are pushed.</sup>
<!-- ELLIPSIS_HIDDEN -->
---------
Co-authored-by: Zai Shi <zaishi00@outlook.com>
<!--
Make sure you've read the CONTRIBUTING.md guidelines:
https://github.com/stack-auth/stack-auth/blob/dev/CONTRIBUTING.md
-->
<!-- ELLIPSIS_HIDDEN -->
----
> [!IMPORTANT]
> Refactor permission handling by renaming functions and updating
references, enhance config handling, and improve domain sorting logic.
>
> - **Permissions**:
> - Rename `teamSystemPermissionStringToDBType` to
`systemPermissionStringToDBType` and
`teamDBTypeToSystemPermissionString` to `systemPermissionDBTypeToString`
in `permissions.tsx`.
> - Update all references to these functions in `crud.tsx`,
`team-memberships/crud.tsx`, `config.tsx`, and `projects.tsx`.
> - **Config Handling**:
> - Add `systemPermissionDBTypeToString` import in `config.tsx`.
> - Update `getEnvironmentConfigOverride` to include more detailed error
logging.
> - **Miscellaneous**:
> - Change domain sorting logic in `projects.tsx` from date-based to
string-based comparison.
>
> <sup>This description was created by </sup>[<img alt="Ellipsis"
src="https://img.shields.io/badge/Ellipsis-blue?color=175173">](https://www.ellipsis.dev?ref=stack-auth%2Fstack-auth&utm_source=github&utm_medium=referral)<sup>
for 8d0a70429b. It will automatically
update as commits are pushed.</sup>
<!-- ELLIPSIS_HIDDEN -->

<!-- ELLIPSIS_HIDDEN -->
----
> [!IMPORTANT]
> Reworked Stack Auth demo with UI enhancements and code refactoring for
improved user experience and maintainability.
>
> - **UI Enhancements**:
> - Updated `global.css` to change background colors for light and dark
themes.
> - Added `Image` components in `page-client.tsx` and `header.tsx` for
visual elements.
> - Refactored `page-client.tsx` to use `Card`, `CardContent`,
`CardFooter`, and `CardHeader` for user information display.
> - **Code Refactoring**:
> - Removed `stack-scope` class from `SelectTrigger` in `select.tsx`.
> - Updated button layout and text in `page-client.tsx` for
sign-in/sign-up and user information.
> - Enhanced header layout in `header.tsx` with logo and theme toggle
improvements.
>
> <sup>This description was created by </sup>[<img alt="Ellipsis"
src="https://img.shields.io/badge/Ellipsis-blue?color=175173">](https://www.ellipsis.dev?ref=stack-auth%2Fstack-auth&utm_source=github&utm_medium=referral)<sup>
for c7a9f30371. It will automatically
update as commits are pushed.</sup>
<!-- ELLIPSIS_HIDDEN -->
<!-- ELLIPSIS_HIDDEN -->
> [!IMPORTANT]
> Adds `stack-scope` class to component variants across multiple files
for consistent styling.
>
> - **Styling Update**:
> - Adds `stack-scope` class to `alertVariants` in `alert.tsx`.
> - Adds `stack-scope` class to `badgeVariants` in `badge.tsx`.
> - Adds `stack-scope` class to `buttonVariants` in `button.tsx`.
> - Adds `stack-scope` class to `labelVariants` in `label.tsx`.
> - Adds `stack-scope` class to `navigationMenuTriggerStyle` in
`navigation-menu.tsx`.
> - Adds `stack-scope` class to `sheetVariants` in `sheet.tsx`.
> - Adds `stack-scope` class to `toastVariants` in `toast.tsx`.
> - Adds `stack-scope` class to `toggleVariants` in `toggle.tsx`.
> - Adds `stack-scope` class to `typographyVariants` in
`typography.tsx`.
>
> <sup>This description was created by </sup>[<img alt="Ellipsis"
src="https://img.shields.io/badge/Ellipsis-blue?color=175173">](https://www.ellipsis.dev?ref=stack-auth%2Fstack-auth&utm_source=github&utm_medium=referral)<sup>
for e0b4d17ba9. It will automatically
update as commits are pushed.</sup>
<!-- ELLIPSIS_HIDDEN -->
<!-- ELLIPSIS_HIDDEN -->
> [!IMPORTANT]
> Adds CLI authentication for NodeJS with new error handling and updates
dependencies.
>
> - **CLI Authentication**:
> - Adds `promptCliLogin()` method in `_StackClientAppImplIncomplete` to
handle CLI authentication, returning a refresh token or error.
> - Handles errors `CliAuthError`, `CliAuthExpiredError`, and
`CliAuthUsedError`.
> - **Error Handling**:
> - Adds `CliAuthError`, `CliAuthExpiredError`, and `CliAuthUsedError`
to `known-errors.tsx`.
> - **Dependencies**:
> - Adds `open` to `dependencies` in `package.json`.
>
> <sup>This description was created by </sup>[<img alt="Ellipsis"
src="https://img.shields.io/badge/Ellipsis-blue?color=175173">](https://www.ellipsis.dev?ref=stack-auth%2Fstack-auth&utm_source=github&utm_medium=referral)<sup>
for 98b0ccd0d2. It will automatically
update as commits are pushed.</sup>
<!-- ELLIPSIS_HIDDEN -->
---------
Co-authored-by: Konsti Wohlwend <n2d4xc@gmail.com>
<!--
Make sure you've read the CONTRIBUTING.md guidelines:
https://github.com/stack-auth/stack-auth/blob/dev/CONTRIBUTING.md
-->
<!-- ELLIPSIS_HIDDEN -->
----
> [!IMPORTANT]
> Add API endpoint to revoke API keys found through credential scanning,
with email notifications and error handling.
>
> - **Behavior**:
> - Adds `POST` endpoint in `route.tsx` to revoke API keys found through
credential scanning.
> - Handles errors for non-existent, public, expired, and already
revoked API keys.
> - Sends email notifications to affected users or team members.
> - **Email**:
> - Adds `getSharedEmailConfig()` in `emails.tsx` for shared email
configuration.
> - **Testing**:
> - Adds tests in `revoke.test.ts` for user and team API key revocation,
including email notifications and error handling for non-existent and
already revoked keys.
> - **Errors**:
> - Adds `PublicApiKeyCannotBeRevoked` error in `known-errors.tsx`.
>
> <sup>This description was created by </sup>[<img alt="Ellipsis"
src="https://img.shields.io/badge/Ellipsis-blue?color=175173">](https://www.ellipsis.dev?ref=stack-auth%2Fstack-auth&utm_source=github&utm_medium=referral)<sup>
for a67021bf47. It will automatically
update as commits are pushed.</sup>
<!-- ELLIPSIS_HIDDEN -->
---------
Co-authored-by: Konsti Wohlwend <n2d4xc@gmail.com>
- Added new config json schema and helper functions
- Separated the internal project and client project so we can later
change the internal project APIs without breaking backward compatibility
- Added database to config json and config json to project type so we
can test and compare the result in production
Co-authored-by: Konsti Wohlwend <n2d4xc@gmail.com>