Conversation
…ers/crud.tsx Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>
…te.tsx Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>
Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>
|
The latest updates on your projects. Learn more about Vercel for Git ↗︎
|
|
😱 Found 1 issue. Time to roll up your sleeves! 😱 🗒️ View all ignored comments in this repo
Need help? Join our Discord for support! |
There was a problem hiding this comment.
Actionable comments posted: 0
🧹 Nitpick comments (1)
apps/backend/src/app/api/latest/internal/config/override/crud.tsx (1)
45-47: Usereturn awaitfor consistencyPer the coding guidelines, promises should be returned with
return await.- return { + return await Promise.resolve({ config_override_string: JSON.stringify(updatedConfig), - }; + });
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (6)
apps/backend/src/app/api/latest/internal/config/crud.tsx(1 hunks)apps/backend/src/app/api/latest/internal/config/override/crud.tsx(1 hunks)apps/backend/src/app/api/latest/internal/config/override/route.tsx(1 hunks)apps/backend/src/app/api/latest/internal/config/route.tsx(1 hunks)apps/e2e/tests/backend/endpoints/api/v1/internal/config.test.ts(1 hunks)packages/stack-shared/src/interface/admin-interface.ts(2 hunks)
🚧 Files skipped from review as they are similar to previous changes (2)
- packages/stack-shared/src/interface/admin-interface.ts
- apps/e2e/tests/backend/endpoints/api/v1/internal/config.test.ts
🧰 Additional context used
📓 Path-based instructions (3)
**/*.{ts,tsx}
📄 CodeRabbit Inference Engine (CLAUDE.md)
**/*.{ts,tsx}: TypeScript with strict types, prefertypeoverinterface
Avoid casting toany; Prefer making changes to the API so thatanycasts are unnecessary to access a property or method
Files:
apps/backend/src/app/api/latest/internal/config/route.tsxapps/backend/src/app/api/latest/internal/config/override/route.tsxapps/backend/src/app/api/latest/internal/config/crud.tsxapps/backend/src/app/api/latest/internal/config/override/crud.tsx
**/*.{js,jsx,ts,tsx}
📄 CodeRabbit Inference Engine (CLAUDE.md)
**/*.{js,jsx,ts,tsx}: 2-space indentation, spaces in braces, semicolons required
Return promises withreturn await, no floating promises
Proper error handling for async code with try/catch
Use helper functions:yupXyz()for validation,getPublicEnvVar()for env
Switch cases must use blocks
Files:
apps/backend/src/app/api/latest/internal/config/route.tsxapps/backend/src/app/api/latest/internal/config/override/route.tsxapps/backend/src/app/api/latest/internal/config/crud.tsxapps/backend/src/app/api/latest/internal/config/override/crud.tsx
**/*.{jsx,tsx}
📄 CodeRabbit Inference Engine (CLAUDE.md)
**/*.{jsx,tsx}: React Server Components preferred where applicable
No direct 'use' imports from React (use React.use instead)
Files:
apps/backend/src/app/api/latest/internal/config/route.tsxapps/backend/src/app/api/latest/internal/config/override/route.tsxapps/backend/src/app/api/latest/internal/config/crud.tsxapps/backend/src/app/api/latest/internal/config/override/crud.tsx
🧠 Learnings (1)
📚 Learning: applies to **/*.{js,jsx,ts,tsx} : use helper functions: `yupxyz()` for validation, `getpublicenvvar(...
Learnt from: CR
PR: stack-auth/stack-auth#0
File: CLAUDE.md:0-0
Timestamp: 2025-07-28T23:25:51.701Z
Learning: Applies to **/*.{js,jsx,ts,tsx} : Use helper functions: `yupXyz()` for validation, `getPublicEnvVar()` for env
Applied to files:
apps/backend/src/app/api/latest/internal/config/override/crud.tsx
🧬 Code Graph Analysis (3)
apps/backend/src/app/api/latest/internal/config/route.tsx (1)
apps/backend/src/app/api/latest/internal/config/crud.tsx (1)
configCrudHandlers(6-13)
apps/backend/src/app/api/latest/internal/config/override/route.tsx (1)
apps/backend/src/app/api/latest/internal/config/override/crud.tsx (1)
configOverridesCrudHandlers(9-49)
apps/backend/src/app/api/latest/internal/config/override/crud.tsx (7)
packages/stack-shared/src/utils/proxies.tsx (1)
createLazyProxy(61-127)apps/backend/src/route-handlers/crud-handler.tsx (1)
createCrudHandlers(99-294)packages/stack-shared/src/interface/crud/config.ts (1)
configOverrideCrud(11-21)packages/stack-shared/src/schema-fields.ts (1)
yupObject(245-249)packages/stack-shared/src/utils/errors.tsx (1)
StatusError(152-261)apps/backend/src/lib/config.tsx (3)
validateEnvironmentConfigOverride(88-96)overrideEnvironmentConfigOverride(232-262)getRenderedEnvironmentConfigQuery(42-47)apps/backend/src/prisma-client.tsx (2)
rawQuery(270-273)globalPrismaClient(31-31)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (9)
- GitHub Check: build (22.x)
- GitHub Check: docker
- GitHub Check: lint_and_build (latest)
- GitHub Check: build (22.x)
- GitHub Check: docker
- GitHub Check: setup-tests
- GitHub Check: restart-dev-and-test
- GitHub Check: all-good
- GitHub Check: Security Check
🔇 Additional comments (4)
apps/backend/src/app/api/latest/internal/config/route.tsx (1)
1-3: LGTM!The route handler correctly exposes the GET endpoint for reading configuration using the standard CRUD handler pattern.
apps/backend/src/app/api/latest/internal/config/override/route.tsx (1)
1-3: LGTM!The route handler correctly exposes the PATCH endpoint for updating configuration overrides following the established pattern.
apps/backend/src/app/api/latest/internal/config/crud.tsx (1)
1-13: LGTM!The CRUD handler implementation correctly uses lazy initialization and properly returns the stringified configuration from the auth context.
apps/backend/src/app/api/latest/internal/config/override/crud.tsx (1)
12-38: Verify the behavior whenconfig_override_stringis not providedWhen
data.config_override_stringis falsy, the handler skips all validation and override logic, returning the current config without modifications. Is this the intended behavior for PATCH requests with empty/null override strings?
<!-- 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 3d20abc. 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>
Important
Add admin-only API endpoints and UI support for project configuration overrides, with comprehensive tests and documentation updates.
config/crud.tsxandconfig/override/crud.tsx.admin-app-impl.ts.oauth-providers/crud.tsx.config.test.tsandjs/config.test.ts.config.ts.This description was created by
for 3d20abc. You can customize this summary. It will automatically update as commits are pushed.
Summary by CodeRabbit
New Features
Bug Fixes
Tests
Documentation