Skip to content

Ccr 463348c6 ulw3ws - #159

Closed
sabrydawood wants to merge 22 commits into
masterfrom
ccr-463348c6-ulw3ws
Closed

sabrydawood wants to merge 22 commits into
masterfrom
ccr-463348c6-ulw3ws

Conversation

@sabrydawood

@sabrydawood sabrydawood commented Oct 28, 2026 •

Copy link
Copy Markdown
Member

Pull Request

📋 Description

What does this PR do?

Why is this change necessary?


🔗 Related Issues

Fixes #(issue number)
Closes #(issue number)
Related to #(issue number)


🏷️ Type of Change

  • 🐛 Bug fix (non-breaking change which fixes an issue)
  • ✨ New feature (non-breaking change which adds functionality)
  • 💥 Breaking change (fix or feature that would cause existing functionality to not work as expected)
  • 📝 Documentation update
  • 🎨 Code style update (formatting, renaming)
  • ♻️ Code refactoring (no functional changes)
  • ⚡ Performance improvement
  • ✅ Test update
  • 🔧 Build configuration change
  • 🔒 Security fix
  • 🌐 Internationalization/localization
  • 🗑️ Code removal/deprecation

🧪 How Has This Been Tested?

Test Environment:

  • OS: [e.g., Ubuntu 22.04]
  • Node.js: [e.g., v18.17.0]
  • Database: [e.g., MariaDB 10.11]

Test Cases:

  1. Test 1:

    • Description:
    • Steps:
    • Result: ✅ Pass / ❌ Fail
  2. Test 2:

    • Description:
    • Steps:
    • Result: ✅ Pass / ❌ Fail

Manual Testing:

  • Tested locally in development
  • Tested in production-like environment
  • Tested with sample data
  • Tested edge cases

Automated Testing:

  • Added unit tests
  • Added integration tests
  • All existing tests pass
  • New tests pass
# Test results
npm test
# ✅ 45 passing
# ❌ 0 failing

📸 Screenshots (if applicable)

Before:

Before

After:

After


📝 Changes Made

Added

  • Feature/file added
  • New endpoint: POST /api/...
  • New utility function: UtilityName()

Changed

  • Modified file: src/Services/ServiceName.ts
  • Updated behavior of...
  • Improved performance of...

Removed

  • Removed deprecated method: OldMethod()
  • Deleted unused file: OldFile.ts

Fixed

  • Fixed bug in...
  • Resolved issue with...

🔧 Configuration Changes

  • Requires environment variable updates
  • Requires database migration
  • Requires configuration file changes
  • Requires dependency installation

New Environment Variables:

# Add these to .env
NEW_VARIABLE=value

Database Migrations:

-- Add migration script if needed
ALTER TABLE...

📚 Documentation

  • Updated README.md
  • Updated API documentation
  • Updated inline code comments
  • Updated CHANGELOG.md
  • Added JSDoc comments
  • Updated Postman collection
  • No documentation needed

⚠️ Breaking Changes

Does this PR introduce breaking changes?

  • Yes
  • No

If yes, describe:

  1. What breaks:
  2. Why:
  3. Migration path:

Example:

// Old way (deprecated)
const result = await service.OldMethod();

// New way
const result = await service.NewMethod();

🚀 Deployment Notes

Pre-deployment:

  • Run database migrations
  • Update environment variables
  • Install new dependencies
  • Other: ___

Post-deployment:

  • Verify new feature works
  • Check logs for errors
  • Monitor performance
  • Other: ___

Rollback Plan:

  • How to rollback if issues occur:

✅ Pre-submission Checklist

Code Quality

  • My code follows the project's style guidelines
  • I have performed a self-review of my own code
  • I have commented my code, particularly in hard-to-understand areas
  • My code follows SOLID principles
  • I have used PascalCase for classes, interfaces, and class methods
  • I have used camelCase for variables and function parameters

Testing

  • I have added tests that prove my fix is effective or that my feature works
  • New and existing unit tests pass locally with my changes
  • I have tested edge cases
  • I have tested error scenarios

Documentation

  • I have made corresponding changes to the documentation
  • I have updated the CHANGELOG.md file
  • I have added/updated JSDoc comments for public methods
  • I have updated the Postman collection (if API changes)

Linting & Formatting

  • My code passes linting (npm run lint)
  • My code is formatted with Prettier (npm run format)
  • There are no TypeScript errors (npm run build)
  • There are no console.log statements left in the code

Security

  • I have reviewed my changes for security vulnerabilities
  • I have not exposed any secrets or credentials
  • I have validated all user inputs
  • I have considered authentication/authorization requirements

Dependencies

  • I have not added unnecessary dependencies
  • All new dependencies are from trusted sources
  • I have updated package.json (if dependencies changed)

👀 Reviewers Needed

@Maintainer1
@maintainer2

Specific review focus:

  • Code architecture
  • Security review
  • Performance review
  • Documentation review

💬 Additional Notes


📊 Code Coverage

Before:

Coverage: 85%

After:

Coverage: 87% (+2%)

🔄 Migration Guide (for breaking changes)

### For Users

1. Step one
2. Step two
3. Step three

### For Contributors

1. Update import statements:
   ```typescript
   // Old
   import { OldClass } from './old';

   // New
   import { NewClass } from './new';
  1. Update usage:

    // Old
    const result = await oldMethod();
    
    // New
    const result = await newMethod();

---

## 📈 **Performance Impact**

<!-- If applicable, describe performance improvements or regressions -->

**Benchmarks:**

| Operation | Before | After | Improvement |
|-----------|--------|-------|-------------|
| API Call | 120ms | 80ms | 33% faster |
| Database Query | 45ms | 30ms | 33% faster |

---

## 🎯 **Future Improvements**

<!-- Optional: List potential future enhancements related to this PR -->

- [ ] Future enhancement 1
- [ ] Future enhancement 2
- [ ] Future enhancement 3

---

**Thank you for contributing to Deploy Center!** 🚀

<!--
Once submitted, maintainers will review your PR. Please be patient and responsive to feedback.
You can track the status of your PR in the Checks tab.
-->


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

<!-- coderabbit-ai-generated:v1 -->

## Summary by CodeRabbit

* **New Features**
  * First-time setup can create the initial administrator through registration; later self-service signups are closed by default and, when enabled, create Viewer accounts.
  * Two-factor sign-in uses time-limited challenges, with backup-code and repeated-attempt protections.
  * Project and deployment access now follows account roles and project membership.
  * Project settings show whether secrets are set without exposing their stored values.
  * Added an operational guide and command-line option for rotating webhook secrets.

* **Bug Fixes**
  * Improved validation of deployment and project inputs, and corrected access checks for project and deployment data.
  * Environment variables now take precedence over `.env` settings; production startup reports insecure secret configuration.

* **Documentation**
  * Updated upgrade guidance for version 3.0.1, including required secret-rotation steps.

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

bullmq pins ioredis 5.10.1 while the root depends on 5.11.1, which made
tsc fail on the Queue/Worker connection types and broke build, CI and
start. An npm override forces a single ioredis copy.
… (SEC-C1)

- ALLOW_REGISTRATION defaults to false. While the Users table is empty the
  first registration is accepted and becomes Admin; afterwards /register
  returns 403 unless registration is explicitly enabled.
- Self-registered accounts are always Viewer; Role is never read from the
  request. The count check and insert share a SERIALIZABLE transaction so
  concurrent first registrations cannot create two admins.
- Every /api/auth body is validated with a Joi schema (stripUnknown).
- New GET /api/auth/registration-status for the login page.
- Boot no longer fails on a fresh install without DEFAULT_ADMIN_*; it logs
  that the first registration creates the administrator.
- Replace the test that asserted self-assigned roles with negative tests.
- io.use() verifies the access_token cookie (or auth.token) and reloads
  the user, rejecting anonymous, forged, disabled and suspended sessions.
- join:project / join:deployment are authorized through the new
  AccessControlService, the same rules the HTTP layer uses; join:user
  only accepts the caller's own id. Rooms are decided by the server: the
  user room, a staff room for Admin/Manager and the accessible project
  rooms for Developer/Viewer.
- Remove global IO.emit broadcasts. Deployment events go to the staff,
  project and deployment rooms only (once per socket) and carry an
  allow-listed DTO, never a Sequelize instance or project secrets.
- Queue health failure reasons are sent to staff only.
- Integration tests cover anonymous/forged/disabled rejection,
  cross-project joins, foreign user rooms and DTO contents.
…C-C3)

- A correct password for a 2FA account now issues a random single-use
  token (5 minutes, stored hashed in MfaChallenges) in an httpOnly
  mfa_pending cookie scoped to /api/auth. The login response no longer
  contains the user id.
- /verify-2fa derives the user from that challenge only; a body UserId is
  stripped. The challenge is claimed atomically before the code is
  checked, so it cannot be replayed or raced, and it is burned after 5
  wrong codes.
- Per-account lockout: 5 consecutive failures lock the second factor for
  15 minutes regardless of IP or challenge.
- IsActive, AccountStatus and TwoFactorEnabled are re-checked at the
  second step.
- Backup codes are 80-bit (XXXX-XXXX-XXXX-XXXX), stored as salted
  SHA-256 hashes. Pre-3.0.1 codes (about 20 bits) are no longer accepted;
  the 2FA status reports legacyBackupCodesInvalidated so users regenerate.
- Migration 022 adds MfaChallenges and TwoFactorAuth.FailedAttempts /
  LockedUntil (idempotent, with down()).
…ion (ENG-C3)

Context values such as the commit message were substituted unescaped
into a string that was then executed as JavaScript inside the server
process. RunIf is now evaluated by ConditionEvaluator, a tokenizer plus
recursive-descent parser that supports the documented syntax only:
==, ===, !=, !==, contains, &&, ||, !, parentheses, string / number /
boolean literals, hasVar('X') and variables written as Name, $NAME or
{{Name}}. Values are always data and no global is reachable.

Anything that cannot be parsed or references an unknown variable fails
closed: the step is skipped and a warning is written to the deployment
log. Tests cover the syntax, fail-closed inputs and injection payloads
(quotes, template strings, newlines).
…G-C2)

- New Utils/SafeExec: RunFile wraps execFile with argument arrays and
  shell:false. Every git / rsync / chown / ssh-keygen call in
  DeploymentService, SshKeyManager, SshKeyGenerator and AutoRecovery now
  uses it, with -- before repository URLs, refs and paths.
- Strict validation, enforced in CreateDeployment, at clone time and when
  a project is created or updated (400 on failure):
  - commit: ^[0-9a-f]{7,40}$
  - branch: git check-ref-format --branch, plus a conservative charset
    because the branch is also substituted into pipeline commands
  - RepoUrl: URL parser with an https / ssh / git@host:path allowlist
  - RsyncOptions: allowlisted flags only (no -e, --rsh, --rsync-path)
  - filesystem paths may not start with - or contain control characters
- Repository credentials are stripped from clone commands written to
  deployment logs.
- SecurityMiddleware's regex filter stays as defence in depth; the new
  tests run without it and cover shell metacharacters, option injection
  and newline payloads.
…nly (SEC-H4, SEC-H3)

Access (SEC-H4):
- ProjectAccess and DeploymentAccess middleware now delegate to
  AccessControlService (membership, or legacy CreatedBy), the same rules
  as the Socket.IO rooms. Viewers only see projects they are members of,
  as documented in the RBAC matrix; Developer deployment access is based
  on membership instead of CreatedBy alone.
- Added checks to: deployment log download, manual deploy, project
  deployment listing, project queue status, per-project statistics,
  GET /projects/name/:name, the public SSH key, and SSH key
  generate/regenerate/delete/toggle (previously role-only).
- The test-webhook endpoints require authentication and project access.
- Managers are no longer refused on SSH key management, project deploy
  and cancel, matching the RBAC matrix.

Secrets (SEC-H3):
- Project responses go through ToProjectDto: WebhookSecret and the
  encrypted SSH key are removed, RepoUrl credentials are stripped, and
  Config secrets (legacy variables except the platform build keys,
  notification webhook URLs, SMTP passwords, bot tokens) are replaced
  with a mask. A Secrets map reports { HasValue } per write-only field.
- Deployment responses embed the same project DTO.
- Saving a project with the mask (or the credential-free RepoUrl) keeps
  the stored value, so clients never need the secret to edit a project.
- Env var listings add HasValue; user management responses drop
  PasswordHash.
- Route-table tests for Developer and Viewer outsiders, member and
  Manager cases, and payload scans for leaked secrets.
- New ConfigValidator. With NODE_ENV=production the server exits at boot
  when JWT_SECRET, JWT_REFRESH_SECRET or ENCRYPTION_KEY is missing,
  shorter than 32 characters or a known default / placeholder, when the
  two JWT secrets are equal, or when DB_PASSWORD / DEFAULT_ADMIN_PASSWORD
  is a shipped placeholder. Outside production the same findings are
  logged as warnings. Messages never include secret values.
- Real environment variables now take precedence over the .env file
  (including DB_AUTO_MIGRATE), so NODE_ENV=production from systemd,
  Docker or PM2 is honoured.
- Unit tests for every rule and for the precedence order.
…re compiling (OPS-C1, OPS-H1)

- npm audit fix (no --force), nodemailer 10.2.1, and a qs override for the
  express copy nested under @bull-board/express. npm audit --omit=dev
  now reports 0 vulnerabilities; only dev-only deepmerge (via jest)
  remains, with no non-breaking fix.
- engines.node >=20 (nodemailer 10 requirement; Node 18 is EOL). CI
  tests Node 20 and 22, and the security workflow fails on high or
  critical production advisories instead of continue-on-error.
- npm run build compiles into a staging directory and swaps it into
  dist/ only after tsc succeeds; the prebuild rimraf is gone, so a
  failed build leaves the running code intact.
- test:unit / test:integration use Jest 30's --testPathPatterns.
The script was placed under scripts/build/, which the build/ ignore rule
excluded, so the previous commit referenced a file that was not in the
repository. Move it to scripts/safe-build.js.
…, OPS-H2)

OPS-C2:
- Migration 000_initial_schema creates the full model schema when none of
  Users / Projects / Deployments exist, so migration 001 no longer fails
  with 'No description found for Projects' on a new install. On any
  existing database it is a no-op; every later migration was already
  idempotent and skips on the baseline schema.
- InitializeAssociations is idempotent so the baseline can run from the
  boot path and the migrate CLI.
- New CI job boots the real server in production mode on an empty
  MariaDB, checks /health and the first-admin setup state, then restarts
  it to prove the migrations are no-ops the second time.

OPS-H2:
- CSRF exemption is now route-based and POST-only for
  /api/webhooks/{github,gitlab,bitbucket}[/:name] and the v2.1 legacy
  /webhook/... mount, which used to return 403. Prefixes such as
  /api/webhooks/github-evil or deeper paths are no longer exempt.
The v3.0 UI served from public/ refuses to submit a 2FA code unless the
login challenge contains a user id, which broke 2FA logins through it.
The id is returned again for compatibility only: /verify-2fa still
derives the user from the mfa_pending cookie and ignores any body
UserId, and the tests keep asserting that.
npm run rotate:webhook-secrets -- --all | --only <id|name> [--out FILE]
[--dry-run]. New secrets are written only to a 0600 file that is never
overwritten; the terminal and logs list project names, not secrets.
Each rotation is recorded in the audit log as webhook_secret_rotated.
Also runnable from dist/ on hosts without dev dependencies.
- docs/guides/security-hotfix-3.0.1.md: what changed, breaking changes,
  upgrade steps, mandatory rotation of webhook secrets, JWT secrets and
  SSH deploy keys, and known gaps (UI-H0).
- CHANGELOG entry for 3.0.1 by finding category.
- Version 3.0.1.
The job sets NODE_ENV=production for the server, which made npm ci skip
devDependencies, so the TypeScript build had no compiler.
…e config keys

Move the shape check of the mfa_pending cookie into CompleteTwoFactorLogin,
next to the hashed lookup that decides it, so the controller holds no
security condition of its own. When merging masked secrets, drop
__proto__, constructor and prototype keys and only restore values the stored
config owns. Exclude __tests__ from CodeQL.
The rotation script changed the database first and wrote the secrets file
afterwards, so a failed write left live secrets nobody had. It now plans the
new secrets, writes and fsyncs the 0600 file, then applies every project in
one transaction, and removes the file if that transaction fails.
Rooms were resolved once at connection time, so a socket kept receiving a
project's events after the user lost access. Every 30 seconds, and right
after a role change, a deactivation or a removed project membership, each
socket now re-verifies its token (expiry and current JWT secret), reloads the
user, leaves rooms it may no longer see and joins newly granted ones. A
disabled account or an invalid token disconnects the socket.

The 2FA service also stops branching on the cookie value: a missing or
malformed token simply matches no stored challenge.
…tted

A transaction can commit even when its acknowledgement is lost. On an apply
error the script now reads back the stored secrets: if all match, it reports
success; if none match, it removes the file; otherwise it keeps the file and
says how to check.
Builds the merged variable map with Object.fromEntries from the filtered
entries, so no property name taken from the request is assigned on an
existing object.
Removing a project's creator from its members now removes their access.
Migration 023 backfills an owner membership for every existing creator
so no one loses access on upgrade.

Signed-off-by: Sabry Dawood <kazouya25@gmail.com>
- Project delete requires an owner membership; drop the CreatedBy fallback.
- Redact URL credentials from RunFile errors, cmd, stdout and stderr.
- Reconcile a deleted user's sockets right away.
- GET /api/users returns user DTOs (no TwoFactorSecret).
- On an expired token, close only the socket transport so the client
  reconnects with its refreshed token instead of staying disconnected.

Signed-off-by: Sabry Dawood <kazouya25@gmail.com>
@chatgpt-codex-connector

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ⚠️ Failed 2026-10-28T08:46:46.089440Z
We couldn’t complete this review. Comment @codex review to try again.
f42a7cf PR opened
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.

@github-actions github-actions Bot added documentation Improvements or additions to documentation dependencies Pull requests that update a dependency file server Changes in server/src/ tests Changes in __tests__/ or test config ci Changes in .github/workflows/ or CI config migrations Changes in src/Migrations/ labels Oct 28, 2026
@github-actions github-actions Bot added security Auth, encryption, or RBAC code routes Changes in src/Routes/ or src/Controllers/ models Changes in src/Models/ services Changes in src/Services/ labels Oct 28, 2026
@coderabbitai

coderabbitai Bot commented Oct 28, 2026 •

Copy link
Copy Markdown

Review in Change Stack →

Caution

Review failed

The pull request is closed.

Walkthrough

This release updates authentication, authorization, command execution, secret handling, migrations, and build workflows. It adds first-account administrator registration, cookie-bound MFA challenges, shared project access checks, response DTO mapping, webhook-secret rotation, and production secret validation.

Changes: Deploy Center 3.0.1 release

Layer / File(s) Summary
Registration and production configuration
.env.example, src/Config/*, src/Controllers/AuthController.ts, src/Services/AuthService.ts, src/Routes/AuthRoutes.ts, src/Database/DatabaseInitializer.ts, src/Server.ts, __tests__/integration/Auth.test.ts, __tests__/unit/Config/ConfigValidator.test.ts
Process environment values now take precedence over .env values. Production secret findings are checked at startup. The first registered user becomes Admin; later registrations are closed by default and become Viewers when enabled. Auth routes validate request bodies and expose registration status.
MFA challenges and lockout
src/Services/AuthService.ts, src/Services/TwoFactorAuthService.ts, src/Models/*, src/Migrations/022_create_mfa_challenges_and_2fa_lockout.ts, src/Database/MigrationRunner.ts, src/Controllers/AuthController.ts, src/Routes/AuthRoutes.ts, __tests__/integration/TwoFactorLogin.test.ts
Two-factor verification uses expiring, single-use challenge tokens in an HttpOnly cookie. Failed attempts trigger account lockout. Backup codes are salted hashes, and legacy backup codes are rejected.
Project access, response DTOs, and sockets
src/Services/AccessControlService.ts, src/Middleware/*AccessMiddleware.ts, src/Routes/{Project,Deployment,Webhook}Routes.ts, src/Controllers/{Project,Deployment,Users,Webhook}Controller.ts, src/Services/SocketService.ts, src/Utils/DtoMapper.ts, src/Migrations/023_backfill_creator_memberships.ts, __tests__/integration/{AccessControl,SocketAuth}.test.ts
Project and deployment checks use shared role and membership rules. REST responses omit or mask selected secrets and sensitive user fields. Socket connections authenticate, room joins are authorized, and open sockets are reconciled against current access.
Validated commands and pipeline conditions
src/Utils/{SafeExec,ConditionEvaluator,AutoRecovery,SshKeyGenerator,SshKeyManager}.ts, src/Services/{DeploymentService,ProjectService,PipelineService}.ts, __tests__/integration/CommandInjection.test.ts, __tests__/unit/Utils/{SafeExec,ConditionEvaluator}.test.ts
Command execution uses argument arrays and validated repository URLs, branches, commits, paths, and rsync options. Pipeline conditions use a bounded parser instead of generated JavaScript evaluation.
Webhook secret rotation
src/Services/WebhookSecretRotationService.ts, src/scripts/rotate-webhook-secrets.ts, package.json, __tests__/integration/WebhookSecretRotation.test.ts, docs/guides/security-hotfix-3.0.1.md
The service plans and applies rotations with audit records. The CLI supports selection and dry-run modes, writes secrets to a restricted file before applying, and reports application outcomes.
Migrations, build, and release guidance
src/Migrations/000_initial_schema.ts, src/Database/MigrationRunner.ts, scripts/safe-build.js, package.json, .github/workflows/*, .gitignore, docs/CHANGELOG.md, docs/guides/*
The baseline migration skips creation when core tables already exist. The build compiles to staging and restores the prior dist/ if installation fails. CI adds fresh-install checks, and the documentation describes the 3.0.1 changes and upgrade steps.

Priority: Not assessed

Estimated code review effort: 5 (Critical) | ~100 minutes

Change: Bug fix

Sequence Diagram(s)

Two-factor login

sequenceDiagram
  participant Client
  participant AuthController
  participant AuthService
  participant Database
  Client->>AuthController: Submit password login
  AuthController->>AuthService: Validate credentials
  AuthService->>Database: Store challenge token hash and expiry
  AuthService-->>AuthController: Return MFA token
  AuthController-->>Client: Set mfa_pending cookie
  Client->>AuthController: Submit code with cookie
  AuthController->>AuthService: Verify challenge and code
  AuthService->>Database: Claim challenge and update lockout state
  AuthService-->>Client: Issue session tokens after success
Loading

Webhook secret rotation

sequenceDiagram
  participant Operator
  participant RotationCLI
  participant RotationService
  participant Database
  Operator->>RotationCLI: Select projects and output path
  RotationCLI->>RotationService: Plan rotation
  RotationService->>Database: Read selected projects
  RotationService-->>RotationCLI: Return planned secrets
  RotationCLI->>RotationCLI: Write secrets file
  RotationCLI->>RotationService: Apply rotation plan
  RotationService->>Database: Update secrets and audit records
  RotationCLI-->>Operator: Report result and output file
Loading

Possibly related PRs

Merge Risk: Moderate · up to f42a7

The 3.0.1 security hotfix has a few operator-facing problems to fix before release. Rotating one project's webhook secret by a numeric target can also rotate another project's. The default secrets file can end up in the Git checkout. Following the documented ENCRYPTION_KEY rotation can lock 2FA users out of recovery. The webhook endpoint still logs part of a project secret. Core registration, MFA and access-control behavior showed no verified defects.

Finishing Touches
📝 Generate docstrings
  • Commit to this branch
  • Create a new PR
🧪 Generate unit tests (beta)
  • Commit to this branch
  • Create a new PR
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Warning

Some tools did not complete. Review the errors below.

ESLint

If the error stems from missing dependencies, add them to the package.json file. For unrecoverable errors (e.g., due to private dependencies), disable the tool in the CodeRabbit configuration.

__tests__/integration/AccessControl.test.ts

Parsing error: ESLint was configured to run on <tsconfigRootDir>/__tests__/integration/AccessControl.test.ts using parserOptions.project: /tsconfig.json
However, that TSConfig does not include this file. Either:

__tests__/integration/Auth.test.ts

Parsing error: ESLint was configured to run on <tsconfigRootDir>/__tests__/integration/Auth.test.ts using parserOptions.project: /tsconfig.json
However, that TSConfig does not include this file. Either:

__tests__/integration/CommandInjection.test.ts

Parsing error: ESLint was configured to run on <tsconfigRootDir>/__tests__/integration/CommandInjection.test.ts using parserOptions.project: /tsconfig.json
However, that TSConfig does not include this file. Either:

  • 9 others

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ci Changes in .github/workflows/ or CI config dependencies Pull requests that update a dependency file documentation Improvements or additions to documentation migrations Changes in src/Migrations/ models Changes in src/Models/ routes Changes in src/Routes/ or src/Controllers/ security Auth, encryption, or RBAC code server Changes in server/src/ services Changes in src/Services/ tests Changes in __tests__/ or test config

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant