Commit Graph

2072 Commits

Author SHA1 Message Date
Konstantin Wohlwend
2a5e166b83 Improve dashboard bundle size 2025-08-08 14:20:46 -07:00
Konstantin Wohlwend
4b6d66df58 Globe now pauses later 2025-08-08 12:26:59 -07:00
Konsti Wohlwend
acd03b7af5
Add Claude Code GitHub Workflow (#833)
## 🤖 Installing Claude Code GitHub App

This PR adds a GitHub Actions workflow that enables Claude Code
integration in our repository.

### What is Claude Code?

[Claude Code](https://claude.ai/code) is an AI coding agent that can
help with:
- Bug fixes and improvements  
- Documentation updates
- Implementing new features
- Code reviews and suggestions
- Writing tests
- And more!

### How it works

Once this PR is merged, we'll be able to interact with Claude by
mentioning @claude in a pull request or issue comment.
Once the workflow is triggered, Claude will analyze the comment and
surrounding context, and execute on the request in a GitHub action.

### Important Notes

- **This workflow won't take effect until this PR is merged**
- **@claude mentions won't work until after the merge is complete**
- The workflow runs automatically whenever Claude is mentioned in PR or
issue comments
- Claude gets access to the entire PR or issue context including files,
diffs, and previous comments

### Security

- Our Anthropic API key is securely stored as a GitHub Actions secret
- Only users with write access to the repository can trigger the
workflow
- All Claude runs are stored in the GitHub Actions run history
- Claude's default tools are limited to reading/writing files and
interacting with our repo by creating comments, branches, and commits.
- We can add more allowed tools by adding them to the workflow file
like:

```
allowed_tools: Bash(npm install),Bash(npm run build),Bash(npm run lint),Bash(npm run test)
```

There's more information in the [Claude Code action
repo](https://github.com/anthropics/claude-code-action).

After merging this PR, let's try mentioning @claude in a comment on any
PR to get started!
2025-08-07 18:44:49 -07:00
Konstantin Wohlwend
edeb3c8d41 Add React example to dev launchpad 2025-08-07 10:59:24 -07:00
Konstantin Wohlwend
98d6ca3601 Even more resilient tests 2025-08-07 10:09:32 -07:00
Konstantin Wohlwend
981829a013 More resilient tests 2025-08-06 12:34:50 -07:00
Konstantin Wohlwend
548ba886c6 Improve Emailable resilience 2025-08-06 12:23:21 -07:00
Konstantin Wohlwend
41a5de8148 chore: update package versions 2025-08-06 12:05:10 -07:00
Madison
563d46de3e
prefers-reduced-motion added to top waves (#799)
Some checks failed
all-good: Did all the other checks pass? / all-good (push) Has been cancelled
Ensure Prisma migrations are in sync with the schema / check_prisma_migrations (22.x) (push) Has been cancelled
Docker Emulator Test / docker (push) Has been cancelled
Docker Server Build and Push / Docker Build and Push Server (push) Has been cancelled
Docker Server Test / docker (push) Has been cancelled
Runs E2E API Tests / build (22.x) (push) Has been cancelled
Runs E2E API Tests with external source of truth / build (22.x) (push) Has been cancelled
Lint & build / lint_and_build (latest) (push) Has been cancelled
Dev Environment Test / restart-dev-and-test (push) Has been cancelled
Run setup tests / setup-tests (push) Has been cancelled
TOC Generator / TOC Generator (push) Has been cancelled
<!--

Make sure you've read the CONTRIBUTING.md guidelines:
https://github.com/stack-auth/stack-auth/blob/dev/CONTRIBUTING.md

-->

enabled prefers-reduced-motion on the waves.tsx file for top banner.
<!-- ELLIPSIS_HIDDEN -->


----

> [!IMPORTANT]
> Adds `prefers-reduced-motion` support to `Waves` component in
`waves.tsx`, disabling wave rendering if motion reduction is preferred.
> 
>   - **Behavior**:
> - Adds `prefers-reduced-motion` detection in `Waves` component in
`waves.tsx`.
> - Uses `useState` and `useEffect` to track and respond to
`prefers-reduced-motion` media query.
> - If `prefers-reduced-motion` is true, the component returns `null`,
preventing wave rendering.
> 
> <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 5db322e740. You can
[customize](https://app.ellipsis.dev/stack-auth/settings/summaries) this
summary. It will automatically update as commits are pushed.</sup>


<!-- ELLIPSIS_HIDDEN -->

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

* **New Features**
* The wave animation is now automatically disabled for users who have
enabled reduced motion preferences in their system settings, improving
accessibility.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---------

Co-authored-by: Konsti Wohlwend <n2d4xc@gmail.com>
2025-08-04 18:24:54 -05:00
smyja
ffb720dd15
Fix: Updated doc link in README.md (#827)
Fixed broken link

Co-authored-by: Madison <madison.w.kennedy@gmail.com>
2025-08-04 15:25:29 -07:00
Konstantin Wohlwend
0656fd2309 Remove unneeded Lucide icons 2025-08-02 21:57:35 -07:00
BilalG1
4899632ea4
Email sending sdk function, freestyle mock, small fixes (#813)
Some checks failed
all-good: Did all the other checks pass? / all-good (push) Has been cancelled
Ensure Prisma migrations are in sync with the schema / check_prisma_migrations (22.x) (push) Has been cancelled
Docker Emulator Test / docker (push) Has been cancelled
Docker Server Build and Push / Docker Build and Push Server (push) Has been cancelled
Docker Server Test / docker (push) Has been cancelled
Runs E2E API Tests / build (22.x) (push) Has been cancelled
Runs E2E API Tests with external source of truth / build (22.x) (push) Has been cancelled
Lint & build / lint_and_build (latest) (push) Has been cancelled
Dev Environment Test / restart-dev-and-test (push) Has been cancelled
Run setup tests / setup-tests (push) Has been cancelled
TOC Generator / TOC Generator (push) Has been cancelled
<!--

Make sure you've read the CONTRIBUTING.md guidelines:
https://github.com/stack-auth/stack-auth/blob/dev/CONTRIBUTING.md

-->

<!-- ELLIPSIS_HIDDEN -->


----

> [!IMPORTANT]
> Enhances email sending API with template support, improved error
handling, and new interfaces, while adding comprehensive tests and
updating rendering logic.
> 
>   - **Behavior**:
> - Adds support for sending emails using templates with variables and
optional theming in `send-email/route.tsx`.
> - Introduces per-user notification category checks before sending
emails.
>     - Adds optional unsubscribe link in email themes.
>   - **Error Handling**:
> - Refines error handling in `send-email/route.tsx` for missing
content, non-existent user IDs, and shared email server configurations.
>     - Uses `KnownErrors` for specific error cases.
>   - **API Changes**:
> - Adds new interfaces and methods for email sending in
`server-interface.ts` and `admin-interface.ts`.
>     - Removes deprecated email sending methods from admin interfaces.
>   - **Testing**:
> - Adds e2e tests in `email.test.ts` for various email sending
scenarios, including HTML content, templates, and error cases.
>   - **Misc**:
> - Updates email rendering logic in `email-rendering.tsx` to handle new
template and theme options.
> - Simplifies import statements and cleans up code structure across
multiple files.
> 
> <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 1d5a056699. You can
[customize](https://app.ellipsis.dev/stack-auth/settings/summaries) this
summary. It will automatically update as commits are pushed.</sup>

----


<!-- ELLIPSIS_HIDDEN -->

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

* **New Features**
* Enhanced email sending to support both raw HTML and template-based
emails with variables and optional theming.
  * Added per-user notification category checks before sending emails.
  * Email themes now support an optional unsubscribe link in the footer.

* **Improvements**
* Updated email rendering to pass the unsubscribe link as a prop to
themes.
  * Refined error handling for email sending.
  * Improved flexibility of email sending options and result reporting.

* **API Changes**
* Introduced new interfaces and methods for sending emails on the server
side, including detailed result reporting.
  * Removed deprecated admin-side email sending methods and interfaces.
  * Added new types for email sending options and results.

* **Bug Fixes**
* Fixed navigation and property naming inconsistencies in dashboard
email template editing and sending flows.

* **Chores**
  * Simplified import statements and cleaned up internal code structure.
* Updated Docker environment for freestyle mock service to use Bun
runtime and adjusted port mappings.

* **Tests**
* Added comprehensive tests covering email sending scenarios, including
error handling and multi-user support.
* Updated existing tests to reflect refined email subjects, template
rendering, and unsubscribe link features.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---------

Co-authored-by: Konsti Wohlwend <n2d4xc@gmail.com>
2025-08-01 18:40:28 -07:00
Zai Shi
10898127a2 fix 2025-08-01 16:04:34 -07:00
Zai Shi
d44658bd4b add STACK_S3_PUBLIC_ENDPOINT 2025-08-01 15:57:33 -07:00
Konstantin Wohlwend
5c2b738f36 Fix types 2025-08-01 15:22:04 -07:00
Madison
4fd5da2ae8
implement sitemap.xml (#815) 2025-08-01 15:15:32 -07:00
Konstantin Wohlwend
e79ebda8d5 Fix docs 404 for once and for all 2025-08-01 15:13:59 -07:00
Zai Shi
202f54d787
Add S3 bucket (#816)
Note for deployment: This PR needs to add some env vars
<!-- ELLIPSIS_HIDDEN -->


----

> [!IMPORTANT]
> Adds S3-compatible storage for profile images with S3Mock for local
development, updating environment variables, Docker configurations, and
tests.
> 
>   - **Behavior**:
> - Adds S3-compatible storage for user, team, and team member profile
images using `uploadAndGetUrl()` in `s3.tsx`.
> - Integrates S3Mock for local development in `docker.compose.yaml` and
`emulator/docker.compose.yaml`.
> - Updates `crud.tsx` files for `users`, `teams`, and
`team-member-profiles` to use S3 for profile images.
>   - **Environment**:
>     - Adds S3-related environment variables to `.env.development`.
>     - Updates `package.json` to include `@aws-sdk/client-s3`.
>   - **Testing**:
> - Modifies test cases in `teams.test.ts` and `users.test.ts` to
validate S3 URL behavior.
> - Updates `auto-migration.tests.ts` for concurrent migration handling.
>   - **Documentation**:
>     - Updates `self-host.mdx` to include S3 storage requirements.
> 
> <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 901f0b56cd. You can
[customize](https://app.ellipsis.dev/stack-auth/settings/summaries) this
summary. It will automatically update as commits are pushed.</sup>

----


<!-- ELLIPSIS_HIDDEN -->

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

* **New Features**
* Added support for uploading and storing user, team, and team member
profile images using S3-compatible storage.
* Integrated S3Mock for local development and testing of storage
features.
* Added new services to Docker Compose configurations for S3Mock and
related dependencies.
* Introduced image validation and processing for base64-encoded images
before upload.

* **Bug Fixes**
* Profile image upload now returns a storage URL instead of echoing back
the base64 data.

* **Documentation**
* Updated self-hosting documentation to include S3 storage requirements
and usage.

* **Chores**
* Added and updated environment variables for S3 storage configuration.
  * Updated backend dependencies to include the AWS S3 SDK.
  * Enhanced test cases to validate new image upload and URL behaviors.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---------

Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>
Co-authored-by: Konsti Wohlwend <n2d4xc@gmail.com>
2025-08-01 20:30:44 +02:00
Zai Shi
2b5eebcd22
Config override CRUD (#803)
<!--

Make sure you've read the CONTRIBUTING.md guidelines:
https://github.com/stack-auth/stack-auth/blob/dev/CONTRIBUTING.md

-->

<!-- ELLIPSIS_HIDDEN -->


----

> [!IMPORTANT]
> Add admin-only API endpoints and UI support for project configuration
overrides, with comprehensive tests and documentation updates.
> 
>   - **New Features**:
> - Added admin-only API endpoints for reading and updating project
configuration overrides in `config/crud.tsx` and
`config/override/crud.tsx`.
> - Admin app supports fetching, caching, and updating configuration
overrides with new React hooks in `admin-app-impl.ts`.
>   - **Bug Fixes**:
> - Validation and error handling for OAuth providers, duplicate IDs,
and invalid config fields in `oauth-providers/crud.tsx`.
>   - **Tests**:
> - Added end-to-end tests for configuration management and validation
errors in `config.test.ts` and `js/config.test.ts`.
>   - **Documentation**:
> - Updated API documentation for new config override endpoints in
`config.ts`.
> 
> <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 3d20abc092. You can
[customize](https://app.ellipsis.dev/stack-auth/settings/summaries) this
summary. It will automatically update as commits are pushed.</sup>

----


<!-- ELLIPSIS_HIDDEN -->

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

* **New Features**
* Added the ability for admins to view and update project configuration
overrides through new internal API endpoints.
* Extended the admin app to support fetching, updating, and caching
configuration overrides, including React hook support for real-time
config usage.
* Introduced new admin interface methods for retrieving and updating
configuration.

* **Bug Fixes**
* Improved validation and error handling for configuration updates,
including checks for duplicate or invalid OAuth provider entries and
non-existent configuration fields.

* **Tests**
* Added comprehensive end-to-end tests covering configuration retrieval,
updates, access control, OAuth provider management, and domain
management.

* **Documentation**
* Enhanced API documentation for configuration management endpoints and
operations.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---------

Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>
Co-authored-by: Konsti Wohlwend <n2d4xc@gmail.com>
2025-08-01 18:28:27 +02:00
Konstantin Wohlwend
5f4d35e083 Add tracing to ESBuild 2025-07-31 16:22:55 -07:00
Konstantin Wohlwend
f5bf1f3dee Increase version alerter zIndex
Some checks failed
all-good: Did all the other checks pass? / all-good (push) Has been cancelled
Ensure Prisma migrations are in sync with the schema / check_prisma_migrations (22.x) (push) Has been cancelled
Docker Emulator Test / docker (push) Has been cancelled
Docker Server Build and Push / Docker Build and Push Server (push) Has been cancelled
Docker Server Test / docker (push) Has been cancelled
Runs E2E API Tests / build (22.x) (push) Has been cancelled
Runs E2E API Tests with external source of truth / build (22.x) (push) Has been cancelled
Lint & build / lint_and_build (latest) (push) Has been cancelled
Mirror main branch to main-mirror-for-wdb / lint_and_build (push) Has been cancelled
Dev Environment Test / restart-dev-and-test (push) Has been cancelled
Run setup tests / setup-tests (push) Has been cancelled
TOC Generator / TOC Generator (push) Has been cancelled
2025-07-31 16:00:26 -07:00
Konstantin Wohlwend
c09a17b9e0 Fix project cards when there are many projects 2025-07-31 15:58:50 -07:00
Konstantin Wohlwend
7c14504098 Do-not-delete warning on external projects 2025-07-31 15:50:57 -07:00
Konstantin Wohlwend
9399b84f97 Use retryTransaction instead of $transaction 2025-07-31 15:43:48 -07:00
Konstantin Wohlwend
7fe0dbf742 Fix tests 2025-07-31 15:25:26 -07:00
Shridhar Deshmukh
8f55c1e710
fix: update super-admin-key name for neon auth (#809)
Deleting super-secrete-admin-key breaks the integration with Neon Auth.
This Pull request adds warning to key name to not delete it.
2025-07-31 13:15:57 -07:00
Konstantin Wohlwend
a846432c61 Fix globe blur 2025-07-31 11:42:50 -07:00
Zai Shi
7226c40d0a
Remove legacy tenancy config (#802)
<!--

Make sure you've read the CONTRIBUTING.md guidelines:
https://github.com/stack-auth/stack-auth/blob/dev/CONTRIBUTING.md

-->

<!-- ELLIPSIS_HIDDEN -->


----

> [!IMPORTANT]
> Refactor tenancy configuration structure, affecting authentication,
email, domain, OAuth, and permissions settings, with updates to feature
flag checks, property access, and test assertions.
> 
>   - **Refactor**:
> - Updated configuration structure for authentication, email, domain,
OAuth, and permissions settings, affecting feature flag checks and
property access in `handlers.tsx`, `route.tsx`, and `crud.tsx`.
> - Improved handling of domain and OAuth provider configurations for
integrations and CRUD operations.
> - Adjusted redirect URL validation and origin checks to use updated
tenancy configuration.
> - Transformed project and tenancy configuration data returned by API
handlers for consistency.
> - Centralized email theme and template retrieval from updated
configuration paths.
>   - **Bug Fixes**:
> - Corrected error messages related to OTP sign-in feature
availability.
>   - **Tests**:
> - Updated test assertions to match new error messages for OTP sign-in.
>   - **Chores**:
> - Reorganized import statements and updated internal logic to align
with new configuration structure.
> 
> <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 ae04ae28be. You can
[customize](https://app.ellipsis.dev/stack-auth/settings/summaries) this
summary. It will automatically update as commits are pushed.</sup>

----


<!-- ELLIPSIS_HIDDEN -->

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

* **Refactor**
* Updated configuration structure for authentication, email, domain,
OAuth, and permissions settings, resulting in changes to feature flag
checks and property access throughout the backend.
* Improved handling of domain and OAuth provider configurations for
integrations and CRUD operations.
* Adjusted redirect URL validation and origin checks to use updated
tenancy configuration.
* Transformed project and tenancy configuration data returned by API
handlers for consistency.
* Centralized email theme and template retrieval from updated
configuration paths.
* Simplified redirect URL validation calls by passing tenancy objects
directly.
* Updated passkey, password, OTP, and OAuth feature flag checks to new
nested configuration properties.

* **Bug Fixes**
* Corrected error messages related to OTP sign-in feature availability.

* **Tests**
  * Updated test assertions to match new error messages for OTP sign-in.

* **Chores**
* Reorganized import statements and updated internal logic to align with
new configuration structure.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---------

Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>
2025-07-31 20:06:33 +02:00
Konstantin Wohlwend
d573acd320 Better OAuth error message 2025-07-30 13:46:11 -07:00
Konstantin Wohlwend
d191b79197 Better 404 for docs 2025-07-30 13:37:05 -07:00
Konstantin Wohlwend
e24d47b80f Even more better error messages 2025-07-30 13:16:14 -07:00
Konstantin Wohlwend
b72353956b Better error messages 2025-07-30 12:57:45 -07:00
Konstantin Wohlwend
55db2cc7d4 Fix ESBuild initialization race condition 2025-07-30 12:33:43 -07:00
Konstantin Wohlwend
34d68b7817 More fixes 2025-07-30 12:25:03 -07:00
Konstantin Wohlwend
cecb520f52 Fixes 2025-07-30 12:22:09 -07:00
Konstantin Wohlwend
6c55e3da66 Update Featurebase redirect 2025-07-30 12:00:09 -07:00
Konstantin Wohlwend
78ba327f60 Fix typo 2025-07-30 11:30:41 -07:00
Madison
d601e99c6c
init deeplink redirects (#804)
<!--

Make sure you've read the CONTRIBUTING.md guidelines:
https://github.com/stack-auth/stack-auth/blob/dev/CONTRIBUTING.md

-->


Fix for a lot of the deep links that are causing 404 errors from old
docs.

<!-- ELLIPSIS_HIDDEN -->


----

> [!IMPORTANT]
> Adds dynamic redirection for documentation routes in multiple
sections, redirecting to the correct page or an overview, with special
handling for REST API routes.
> 
>   - **Behavior**:
> - Adds dynamic redirection for documentation routes in `js`, `next`,
`python`, `react`, and `rest-api` sections.
> - Redirects to the correct documentation page or an overview if the
page doesn't exist.
>     - For `rest-api`, redirects to `/api` instead of `/docs`.
>   - **Files**:
> - `route.ts` in `js`, `next`, `python`, `react`, and `rest-api`
sections handle the redirection logic.
> - Uses `source.getPage()` or `apiSource.getPage()` to check page
existence.
> 
> <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 50c4b592a4. You can
[customize](https://app.ellipsis.dev/stack-auth/settings/summaries) this
summary. It will automatically update as commits are pushed.</sup>

----


<!-- ELLIPSIS_HIDDEN -->

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

* **New Features**
* Added dynamic redirection for documentation routes in JavaScript,
Next.js, Python, React, and REST API sections. Users are now
automatically redirected to the correct documentation page if it exists,
or receive a 404 not found response if the page is missing. This
improves navigation and error handling for documentation URLs.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---------

Co-authored-by: Konsti Wohlwend <n2d4xc@gmail.com>
2025-07-30 13:18:17 -05:00
Konstantin Wohlwend
480dcba12e chore: update package versions 2025-07-30 10:50:54 -07:00
Konstantin Wohlwend
a11022524a Update CLAUDE.md 2025-07-30 10:50:19 -07:00
Zai Shi
e1c5018bd8 fix db:migration-gen 2025-07-30 09:46:27 -07:00
Konstantin Wohlwend
19142f40a9 Featurebase integration 2025-07-30 09:32:44 -07:00
Konstantin Wohlwend
7a0a26d6fd Freestyle mock 2025-07-29 13:52:44 -07:00
Konstantin Wohlwend
e2dd390925 Schema improvements 2025-07-29 12:13:29 -07:00
Konstantin Wohlwend
bfb2ba13d5 Update schema types 2025-07-29 11:27:26 -07:00
Konsti Wohlwend
7c0417d7d9
Several project config improvements (#811) 2025-07-29 04:13:46 -07:00
Konstantin Wohlwend
dd8783af09 Docstring for captureError 2025-07-29 01:37:26 -07:00
Konstantin Wohlwend
343ae8dcfd Don't capture email render errors 2025-07-29 01:34:05 -07:00
Konstantin Wohlwend
7fc5334cff Email preview improvements 2025-07-29 01:21:39 -07:00
Konstantin Wohlwend
a6a71d3c09 Deleted projects now no longer throw a 500 ISE 2025-07-28 23:40:24 -07:00