Skip to content

fix: add authentication to unprotected POST /tickets and PATCH /tickets/{ticket_id} endpoints#2907

Open
Aryanbansal-05 wants to merge 2777 commits into
ritesh-1918:mainfrom
Aryanbansal-05:Aryan-05-3
Open

fix: add authentication to unprotected POST /tickets and PATCH /tickets/{ticket_id} endpoints#2907
Aryanbansal-05 wants to merge 2777 commits into
ritesh-1918:mainfrom
Aryanbansal-05:Aryan-05-3

Conversation

@Aryanbansal-05

Copy link
Copy Markdown

🔐 Summary

Resolves #2905 by adding Depends(get_current_user) authentication to the two remaining unprotected endpoints in backend/routers/tickets.py.


🛠️ Changes Made

backend/routers/tickets.py

1. POST /ticketscreate_ticket

  • Was missing get_current_user dependency
  • Any unauthenticated user could create tickets in the in-memory DB
  • Added user: dict = Depends(get_current_user) to function signature

2. PATCH /tickets/{ticket_id}update_ticket

  • Was missing get_current_user dependency
  • Any unauthenticated user could modify ticket fields (status, viewed_at, etc.)
  • Added user: dict = Depends(get_current_user) to function signature

🛡️ Security Issues Fixed

  • ✅ Unauthenticated ticket creation blocked
  • ✅ Unauthenticated ticket modification blocked
  • ✅ All 17 endpoints in the backend now require authentication (except /health, /ready, /auth/login, /auth/signup)

🧪 Testing

  • Existing authenticated requests continue to work normally
  • Unauthenticated requests to both endpoints now return 401 Unauthorized
  • No breaking changes to authenticated flows

Closes #2905

tmdeveloper007 and others added 30 commits June 8, 2026 07:12
…-eval from script-src (critical)

Removes 'unsafe-inline' and 'unsafe-eval' from script-src directives
in both active security_middleware.py and sanitization.py helpers.

'unsafe-inline' is preserved in style-src for Tailwind CSS runtime
styles which require inline style injection.

This change ensures CSP provides meaningful XSS protection by
preventing arbitrary inline script execution and dynamic code
evaluation via eval().

Closes ritesh-1918#2330
…session-based admin auth in active learning router

The _require_admin() function used a custom ADMIN_SECRET header check that was
completely bypassed when the ADMIN_SECRET env var was not set (empty string is
falsy). Replace with proper authentication using get_current_user from
backend.auth_cookie and admin role verification against the profiles table.

Also add missing auth to 4 endpoints that had no protection at all:
- GET /active-learning/status
- GET /active-learning/retrain/status
- GET /active-learning/stats/corrections
- GET /active-learning/stats/drift

Fixes ritesh-1918#2348
…ow endpoints

Both GET /api/digest/preview/{company_id} and POST /api/digest/send-now
had no authentication, allowing unauthenticated access to company ticket
stats and the ability to trigger email dispatches to arbitrary addresses.

Add Depends(get_current_user) from backend.auth_cookie to both endpoints.

Fixes ritesh-1918#2350
All 8 AI analysis endpoints lacked authentication, allowing unauthenticated
users to abuse paid AI infrastructure (Gemini API, OCR processing, ML model
inference). Add Depends(get_current_user) from backend.auth_cookie to:

- POST /ai/troubleshoot
- POST /ai/analyze_bug
- POST /ai/log_correction
- POST /ai/analyze_ticket
- POST /ai/analyze
- POST /ai/analyze_stream
- POST /ai/analyze_ticket/legacy
- POST /ai/analyze-v2

Fixes ritesh-1918#2352
…erver-side

Removes buildConfigList() that exposed 11 API keys (Gemini 1-4, OpenRouter 1-4,
Groq 1-3) in the client-side bundle via VITE_-prefixed env vars. Replaces direct
API calls with supabase.functions.invoke('ai-proxy') which keeps all keys in
Supabase Secrets and handles provider failover server-side.

Closes ritesh-1918#2353
Replaces the hardcoded email comparison (user.email === 'masteradmin@helpdesk.ai')
with a database-backed role resolution. The master admin role must now be assigned
in the profiles table, not by guessing a leaked email address.

Closes ritesh-1918#2354
…alStorage privilege escalation

Three route guards (ProtectedRoute, AdminProtectedRoute, MasterAdminProtectedRoute)
now cross-check the persisted profile role against the profiles table in Supabase
before granting access. This prevents localStorage role tampering attacks where an
attacker edits 'auth-storage' to set a higher role.

Closes ritesh-1918#2355
… auth

Adds Row-Level Security policies for tickets, profiles, ticket_messages, and
internal_notes tables. Enforces tenant isolation: users see only their own tickets,
admins see only their company's tickets. Server-side authorization prevents
client-side role bypass attacks on ticket mutations.

Closes ritesh-1918#2356
Closes ritesh-1918#2357
Adds composite indexes on tickets (company, status, created_at, category, priority,
assigned_team) and profiles (company_id, company, status) to eliminate full table
scans on admin listing queries. Also indexes ticket_messages and internal_notes
by ticket_id for chat performance.

Closes ritesh-1918#2358
…y logic

Replaces the fixed AbortController 6000ms timeout with a context-aware timeout
(15s text-only, 30s with image) and adds 2 automatic retries with 2s delay.
This prevents false-positive abort errors during cold starts and ML inference.

Closes ritesh-1918#2359
…y recreation

Replaces the full-array .map() on every ticket mutation with a POJO lookup
map keyed by ticket_id. Each mutation now copies only the single changed entry
(O(1)) instead of recreating the entire array (O(N)). Uses partialize/merge
in persist middleware to serialize the lookup map back to an array for storage.

Closes ritesh-1918#2360
Splits the single 'COPY backend /app/backend' into three tiered layers:
1. ML models (large, rarely changed) 2. pip requirements 3. application source
(code changes most frequently). This prevents the entire 500MB backend from
being recopied and pip from re-running when only Python source files change.

Closes ritesh-1918#2361
Adds actions/cache for Frontend/node_modules (keyed by package-lock.json hash)
and pip cache directory for the backend job. npm install and pip install are
skipped on cache hit, saving 30-60s per CI run.

Closes ritesh-1918#2362
Closes ritesh-1918#2369

Problem
-------
analyze_image() was defined with only `image_base64` as a parameter:

    def analyze_image(self, image_base64: str) -> dict:

But both call sites in backend/main.py pass TWO positional arguments:

    vision_result = gemini_service.analyze_image(request_body.image_base64, text)

This caused `TypeError: analyze_image() takes 2 positional arguments but
3 were given` on every ticket that included a screenshot, completely
breaking the Gemini vision feature.

Fix
---
Added `text: str = ""` as an optional second parameter (default "" keeps
backward compatibility):

    def analyze_image(self, image_base64: str, text: str = "") -> dict:

Also enriched the Gemini prompt to incorporate the ticket text alongside
the image, which is the original intent of passing it — so the model has
full context when diagnosing the visual issue.

No changes needed in main.py — both call sites already pass the correct
two arguments.
ritesh-1918 and others added 28 commits June 10, 2026 01:14
@vercel

vercel Bot commented Jun 17, 2026

Copy link
Copy Markdown

@Aryanbansal-05 is attempting to deploy a commit to the ritesh Team on Vercel.

A member of the Team first needs to authorize it.

@coderabbitai

coderabbitai Bot commented Jun 17, 2026

Copy link
Copy Markdown

Important

Review skipped

Too many files!

This PR contains 299 files, which is 149 over the limit of 150.

To get a review, narrow the scope:
• coderabbit review --type committed # exclude uncommitted changes
• coderabbit review --dir # limit to a subdirectory
• coderabbit review --base # compare against a closer base

⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 4bd49155-16d0-4c85-a630-022c287180fb

📥 Commits

Reviewing files that changed from the base of the PR and between da8faf2 and 1402a10.

⛔ Files ignored due to path filters (1)
  • .tmp-ci-venv/Lib/site-packages/certifi/cacert.pem is excluded by !**/*.pem
📒 Files selected for processing (299)
  • .dockerignore
  • .easignore
  • .editorconfig
  • .env.example
  • .eslintrc.json
  • .gitattributes
  • .github/GSSOC_CONTRIBUTORS.md
  • .github/ISSUE_TEMPLATE/bug_report.md
  • .github/ISSUE_TEMPLATE/bug_report.yml
  • .github/ISSUE_TEMPLATE/feature_request.md
  • .github/ISSUE_TEMPLATE/feature_request.yml
  • .github/PULL_REQUEST_TEMPLATE.md
  • .github/PULL_REQUEST_TEMPLATE/pull_request_template.md
  • .github/prompts/prompt.yml
  • .github/pull_request_template.md
  • .github/workflows/audit-retention.yml
  • .github/workflows/backend-ci.yml
  • .github/workflows/ci.yml
  • .github/workflows/codeql.yml
  • .github/workflows/deploy-presentation.yml
  • .github/workflows/key-rotation.yml
  • .github/workflows/lint-md.yml
  • .github/workflows/markdownlint.yml
  • .github/workflows/models-evaluation.yml
  • .github/workflows/performance.yml
  • .github/workflows/retrain-classifier.yml
  • .github/workflows/security-audit.yml
  • .github/workflows/sync_to_hf.yml
  • .gitignore
  • .hfignore
  • .markdownlint-cli2.jsonc
  • .markdownlint.json
  • .markdownlintignore
  • .prettierignore
  • .prettierrc
  • .tmp-ci-venv/Lib/site-packages/StrEnum-0.4.15.dist-info/INSTALLER
  • .tmp-ci-venv/Lib/site-packages/StrEnum-0.4.15.dist-info/LICENSE
  • .tmp-ci-venv/Lib/site-packages/StrEnum-0.4.15.dist-info/METADATA
  • .tmp-ci-venv/Lib/site-packages/StrEnum-0.4.15.dist-info/RECORD
  • .tmp-ci-venv/Lib/site-packages/StrEnum-0.4.15.dist-info/WHEEL
  • .tmp-ci-venv/Lib/site-packages/StrEnum-0.4.15.dist-info/top_level.txt
  • .tmp-ci-venv/Lib/site-packages/_distutils_hack/__init__.py
  • .tmp-ci-venv/Lib/site-packages/_distutils_hack/override.py
  • .tmp-ci-venv/Lib/site-packages/_yaml/__init__.py
  • .tmp-ci-venv/Lib/site-packages/annotated_doc-0.0.4.dist-info/INSTALLER
  • .tmp-ci-venv/Lib/site-packages/annotated_doc-0.0.4.dist-info/METADATA
  • .tmp-ci-venv/Lib/site-packages/annotated_doc-0.0.4.dist-info/RECORD
  • .tmp-ci-venv/Lib/site-packages/annotated_doc-0.0.4.dist-info/WHEEL
  • .tmp-ci-venv/Lib/site-packages/annotated_doc-0.0.4.dist-info/entry_points.txt
  • .tmp-ci-venv/Lib/site-packages/annotated_doc-0.0.4.dist-info/licenses/LICENSE
  • .tmp-ci-venv/Lib/site-packages/annotated_doc/__init__.py
  • .tmp-ci-venv/Lib/site-packages/annotated_doc/main.py
  • .tmp-ci-venv/Lib/site-packages/annotated_doc/py.typed
  • .tmp-ci-venv/Lib/site-packages/annotated_types-0.7.0.dist-info/INSTALLER
  • .tmp-ci-venv/Lib/site-packages/annotated_types-0.7.0.dist-info/METADATA
  • .tmp-ci-venv/Lib/site-packages/annotated_types-0.7.0.dist-info/RECORD
  • .tmp-ci-venv/Lib/site-packages/annotated_types-0.7.0.dist-info/WHEEL
  • .tmp-ci-venv/Lib/site-packages/annotated_types-0.7.0.dist-info/licenses/LICENSE
  • .tmp-ci-venv/Lib/site-packages/annotated_types/__init__.py
  • .tmp-ci-venv/Lib/site-packages/annotated_types/py.typed
  • .tmp-ci-venv/Lib/site-packages/annotated_types/test_cases.py
  • .tmp-ci-venv/Lib/site-packages/anyio-4.13.0.dist-info/INSTALLER
  • .tmp-ci-venv/Lib/site-packages/anyio-4.13.0.dist-info/METADATA
  • .tmp-ci-venv/Lib/site-packages/anyio-4.13.0.dist-info/RECORD
  • .tmp-ci-venv/Lib/site-packages/anyio-4.13.0.dist-info/WHEEL
  • .tmp-ci-venv/Lib/site-packages/anyio-4.13.0.dist-info/entry_points.txt
  • .tmp-ci-venv/Lib/site-packages/anyio-4.13.0.dist-info/licenses/LICENSE
  • .tmp-ci-venv/Lib/site-packages/anyio-4.13.0.dist-info/top_level.txt
  • .tmp-ci-venv/Lib/site-packages/anyio/__init__.py
  • .tmp-ci-venv/Lib/site-packages/anyio/_backends/__init__.py
  • .tmp-ci-venv/Lib/site-packages/anyio/_backends/_asyncio.py
  • .tmp-ci-venv/Lib/site-packages/anyio/_backends/_trio.py
  • .tmp-ci-venv/Lib/site-packages/anyio/_core/__init__.py
  • .tmp-ci-venv/Lib/site-packages/anyio/_core/_asyncio_selector_thread.py
  • .tmp-ci-venv/Lib/site-packages/anyio/_core/_contextmanagers.py
  • .tmp-ci-venv/Lib/site-packages/anyio/_core/_eventloop.py
  • .tmp-ci-venv/Lib/site-packages/anyio/_core/_exceptions.py
  • .tmp-ci-venv/Lib/site-packages/anyio/_core/_fileio.py
  • .tmp-ci-venv/Lib/site-packages/anyio/_core/_resources.py
  • .tmp-ci-venv/Lib/site-packages/anyio/_core/_signals.py
  • .tmp-ci-venv/Lib/site-packages/anyio/_core/_sockets.py
  • .tmp-ci-venv/Lib/site-packages/anyio/_core/_streams.py
  • .tmp-ci-venv/Lib/site-packages/anyio/_core/_subprocesses.py
  • .tmp-ci-venv/Lib/site-packages/anyio/_core/_synchronization.py
  • .tmp-ci-venv/Lib/site-packages/anyio/_core/_tasks.py
  • .tmp-ci-venv/Lib/site-packages/anyio/_core/_tempfile.py
  • .tmp-ci-venv/Lib/site-packages/anyio/_core/_testing.py
  • .tmp-ci-venv/Lib/site-packages/anyio/_core/_typedattr.py
  • .tmp-ci-venv/Lib/site-packages/anyio/abc/__init__.py
  • .tmp-ci-venv/Lib/site-packages/anyio/abc/_eventloop.py
  • .tmp-ci-venv/Lib/site-packages/anyio/abc/_resources.py
  • .tmp-ci-venv/Lib/site-packages/anyio/abc/_sockets.py
  • .tmp-ci-venv/Lib/site-packages/anyio/abc/_streams.py
  • .tmp-ci-venv/Lib/site-packages/anyio/abc/_subprocesses.py
  • .tmp-ci-venv/Lib/site-packages/anyio/abc/_tasks.py
  • .tmp-ci-venv/Lib/site-packages/anyio/abc/_testing.py
  • .tmp-ci-venv/Lib/site-packages/anyio/from_thread.py
  • .tmp-ci-venv/Lib/site-packages/anyio/functools.py
  • .tmp-ci-venv/Lib/site-packages/anyio/lowlevel.py
  • .tmp-ci-venv/Lib/site-packages/anyio/py.typed
  • .tmp-ci-venv/Lib/site-packages/anyio/pytest_plugin.py
  • .tmp-ci-venv/Lib/site-packages/anyio/streams/__init__.py
  • .tmp-ci-venv/Lib/site-packages/anyio/streams/buffered.py
  • .tmp-ci-venv/Lib/site-packages/anyio/streams/file.py
  • .tmp-ci-venv/Lib/site-packages/anyio/streams/memory.py
  • .tmp-ci-venv/Lib/site-packages/anyio/streams/stapled.py
  • .tmp-ci-venv/Lib/site-packages/anyio/streams/text.py
  • .tmp-ci-venv/Lib/site-packages/anyio/streams/tls.py
  • .tmp-ci-venv/Lib/site-packages/anyio/to_interpreter.py
  • .tmp-ci-venv/Lib/site-packages/anyio/to_process.py
  • .tmp-ci-venv/Lib/site-packages/anyio/to_thread.py
  • .tmp-ci-venv/Lib/site-packages/apscheduler-3.11.2.dist-info/INSTALLER
  • .tmp-ci-venv/Lib/site-packages/apscheduler-3.11.2.dist-info/METADATA
  • .tmp-ci-venv/Lib/site-packages/apscheduler-3.11.2.dist-info/RECORD
  • .tmp-ci-venv/Lib/site-packages/apscheduler-3.11.2.dist-info/REQUESTED
  • .tmp-ci-venv/Lib/site-packages/apscheduler-3.11.2.dist-info/WHEEL
  • .tmp-ci-venv/Lib/site-packages/apscheduler-3.11.2.dist-info/entry_points.txt
  • .tmp-ci-venv/Lib/site-packages/apscheduler-3.11.2.dist-info/licenses/LICENSE.txt
  • .tmp-ci-venv/Lib/site-packages/apscheduler-3.11.2.dist-info/top_level.txt
  • .tmp-ci-venv/Lib/site-packages/apscheduler/__init__.py
  • .tmp-ci-venv/Lib/site-packages/apscheduler/events.py
  • .tmp-ci-venv/Lib/site-packages/apscheduler/executors/__init__.py
  • .tmp-ci-venv/Lib/site-packages/apscheduler/executors/asyncio.py
  • .tmp-ci-venv/Lib/site-packages/apscheduler/executors/base.py
  • .tmp-ci-venv/Lib/site-packages/apscheduler/executors/debug.py
  • .tmp-ci-venv/Lib/site-packages/apscheduler/executors/gevent.py
  • .tmp-ci-venv/Lib/site-packages/apscheduler/executors/pool.py
  • .tmp-ci-venv/Lib/site-packages/apscheduler/executors/tornado.py
  • .tmp-ci-venv/Lib/site-packages/apscheduler/executors/twisted.py
  • .tmp-ci-venv/Lib/site-packages/apscheduler/job.py
  • .tmp-ci-venv/Lib/site-packages/apscheduler/jobstores/__init__.py
  • .tmp-ci-venv/Lib/site-packages/apscheduler/jobstores/base.py
  • .tmp-ci-venv/Lib/site-packages/apscheduler/jobstores/etcd.py
  • .tmp-ci-venv/Lib/site-packages/apscheduler/jobstores/memory.py
  • .tmp-ci-venv/Lib/site-packages/apscheduler/jobstores/mongodb.py
  • .tmp-ci-venv/Lib/site-packages/apscheduler/jobstores/redis.py
  • .tmp-ci-venv/Lib/site-packages/apscheduler/jobstores/rethinkdb.py
  • .tmp-ci-venv/Lib/site-packages/apscheduler/jobstores/sqlalchemy.py
  • .tmp-ci-venv/Lib/site-packages/apscheduler/jobstores/zookeeper.py
  • .tmp-ci-venv/Lib/site-packages/apscheduler/schedulers/__init__.py
  • .tmp-ci-venv/Lib/site-packages/apscheduler/schedulers/asyncio.py
  • .tmp-ci-venv/Lib/site-packages/apscheduler/schedulers/background.py
  • .tmp-ci-venv/Lib/site-packages/apscheduler/schedulers/base.py
  • .tmp-ci-venv/Lib/site-packages/apscheduler/schedulers/blocking.py
  • .tmp-ci-venv/Lib/site-packages/apscheduler/schedulers/gevent.py
  • .tmp-ci-venv/Lib/site-packages/apscheduler/schedulers/qt.py
  • .tmp-ci-venv/Lib/site-packages/apscheduler/schedulers/tornado.py
  • .tmp-ci-venv/Lib/site-packages/apscheduler/schedulers/twisted.py
  • .tmp-ci-venv/Lib/site-packages/apscheduler/triggers/__init__.py
  • .tmp-ci-venv/Lib/site-packages/apscheduler/triggers/base.py
  • .tmp-ci-venv/Lib/site-packages/apscheduler/triggers/calendarinterval.py
  • .tmp-ci-venv/Lib/site-packages/apscheduler/triggers/combining.py
  • .tmp-ci-venv/Lib/site-packages/apscheduler/triggers/cron/__init__.py
  • .tmp-ci-venv/Lib/site-packages/apscheduler/triggers/cron/expressions.py
  • .tmp-ci-venv/Lib/site-packages/apscheduler/triggers/cron/fields.py
  • .tmp-ci-venv/Lib/site-packages/apscheduler/triggers/date.py
  • .tmp-ci-venv/Lib/site-packages/apscheduler/triggers/interval.py
  • .tmp-ci-venv/Lib/site-packages/apscheduler/util.py
  • .tmp-ci-venv/Lib/site-packages/cachetools-6.2.6.dist-info/INSTALLER
  • .tmp-ci-venv/Lib/site-packages/cachetools-6.2.6.dist-info/METADATA
  • .tmp-ci-venv/Lib/site-packages/cachetools-6.2.6.dist-info/RECORD
  • .tmp-ci-venv/Lib/site-packages/cachetools-6.2.6.dist-info/WHEEL
  • .tmp-ci-venv/Lib/site-packages/cachetools-6.2.6.dist-info/licenses/LICENSE
  • .tmp-ci-venv/Lib/site-packages/cachetools-6.2.6.dist-info/top_level.txt
  • .tmp-ci-venv/Lib/site-packages/cachetools/__init__.py
  • .tmp-ci-venv/Lib/site-packages/cachetools/_cached.py
  • .tmp-ci-venv/Lib/site-packages/cachetools/_cachedmethod.py
  • .tmp-ci-venv/Lib/site-packages/cachetools/func.py
  • .tmp-ci-venv/Lib/site-packages/cachetools/keys.py
  • .tmp-ci-venv/Lib/site-packages/certifi-2026.5.20.dist-info/INSTALLER
  • .tmp-ci-venv/Lib/site-packages/certifi-2026.5.20.dist-info/METADATA
  • .tmp-ci-venv/Lib/site-packages/certifi-2026.5.20.dist-info/RECORD
  • .tmp-ci-venv/Lib/site-packages/certifi-2026.5.20.dist-info/WHEEL
  • .tmp-ci-venv/Lib/site-packages/certifi-2026.5.20.dist-info/licenses/LICENSE
  • .tmp-ci-venv/Lib/site-packages/certifi-2026.5.20.dist-info/top_level.txt
  • .tmp-ci-venv/Lib/site-packages/certifi/__init__.py
  • .tmp-ci-venv/Lib/site-packages/certifi/__main__.py
  • .tmp-ci-venv/Lib/site-packages/certifi/core.py
  • .tmp-ci-venv/Lib/site-packages/certifi/py.typed
  • .tmp-ci-venv/Lib/site-packages/cffi-2.0.0.dist-info/INSTALLER
  • .tmp-ci-venv/Lib/site-packages/cffi-2.0.0.dist-info/METADATA
  • .tmp-ci-venv/Lib/site-packages/cffi-2.0.0.dist-info/RECORD
  • .tmp-ci-venv/Lib/site-packages/cffi-2.0.0.dist-info/WHEEL
  • .tmp-ci-venv/Lib/site-packages/cffi-2.0.0.dist-info/entry_points.txt
  • .tmp-ci-venv/Lib/site-packages/cffi-2.0.0.dist-info/licenses/AUTHORS
  • .tmp-ci-venv/Lib/site-packages/cffi-2.0.0.dist-info/licenses/LICENSE
  • .tmp-ci-venv/Lib/site-packages/cffi-2.0.0.dist-info/top_level.txt
  • .tmp-ci-venv/Lib/site-packages/cffi/__init__.py
  • .tmp-ci-venv/Lib/site-packages/cffi/_cffi_errors.h
  • .tmp-ci-venv/Lib/site-packages/cffi/_cffi_include.h
  • .tmp-ci-venv/Lib/site-packages/cffi/_embedding.h
  • .tmp-ci-venv/Lib/site-packages/cffi/_imp_emulation.py
  • .tmp-ci-venv/Lib/site-packages/cffi/_shimmed_dist_utils.py
  • .tmp-ci-venv/Lib/site-packages/cffi/api.py
  • .tmp-ci-venv/Lib/site-packages/cffi/backend_ctypes.py
  • .tmp-ci-venv/Lib/site-packages/cffi/cffi_opcode.py
  • .tmp-ci-venv/Lib/site-packages/cffi/commontypes.py
  • .tmp-ci-venv/Lib/site-packages/cffi/cparser.py
  • .tmp-ci-venv/Lib/site-packages/cffi/error.py
  • .tmp-ci-venv/Lib/site-packages/cffi/ffiplatform.py
  • .tmp-ci-venv/Lib/site-packages/cffi/lock.py
  • .tmp-ci-venv/Lib/site-packages/cffi/model.py
  • .tmp-ci-venv/Lib/site-packages/cffi/parse_c_type.h
  • .tmp-ci-venv/Lib/site-packages/cffi/pkgconfig.py
  • .tmp-ci-venv/Lib/site-packages/cffi/recompiler.py
  • .tmp-ci-venv/Lib/site-packages/cffi/setuptools_ext.py
  • .tmp-ci-venv/Lib/site-packages/cffi/vengine_cpy.py
  • .tmp-ci-venv/Lib/site-packages/cffi/vengine_gen.py
  • .tmp-ci-venv/Lib/site-packages/cffi/verifier.py
  • .tmp-ci-venv/Lib/site-packages/charset_normalizer-3.4.7.dist-info/INSTALLER
  • .tmp-ci-venv/Lib/site-packages/charset_normalizer-3.4.7.dist-info/METADATA
  • .tmp-ci-venv/Lib/site-packages/charset_normalizer-3.4.7.dist-info/RECORD
  • .tmp-ci-venv/Lib/site-packages/charset_normalizer-3.4.7.dist-info/WHEEL
  • .tmp-ci-venv/Lib/site-packages/charset_normalizer-3.4.7.dist-info/entry_points.txt
  • .tmp-ci-venv/Lib/site-packages/charset_normalizer-3.4.7.dist-info/licenses/LICENSE
  • .tmp-ci-venv/Lib/site-packages/charset_normalizer-3.4.7.dist-info/top_level.txt
  • .tmp-ci-venv/Lib/site-packages/charset_normalizer/__init__.py
  • .tmp-ci-venv/Lib/site-packages/charset_normalizer/__main__.py
  • .tmp-ci-venv/Lib/site-packages/charset_normalizer/api.py
  • .tmp-ci-venv/Lib/site-packages/charset_normalizer/cd.py
  • .tmp-ci-venv/Lib/site-packages/charset_normalizer/cli/__init__.py
  • .tmp-ci-venv/Lib/site-packages/charset_normalizer/cli/__main__.py
  • .tmp-ci-venv/Lib/site-packages/charset_normalizer/constant.py
  • .tmp-ci-venv/Lib/site-packages/charset_normalizer/legacy.py
  • .tmp-ci-venv/Lib/site-packages/charset_normalizer/md.py
  • .tmp-ci-venv/Lib/site-packages/charset_normalizer/models.py
  • .tmp-ci-venv/Lib/site-packages/charset_normalizer/py.typed
  • .tmp-ci-venv/Lib/site-packages/charset_normalizer/utils.py
  • .tmp-ci-venv/Lib/site-packages/charset_normalizer/version.py
  • .tmp-ci-venv/Lib/site-packages/click-8.4.1.dist-info/INSTALLER
  • .tmp-ci-venv/Lib/site-packages/click-8.4.1.dist-info/METADATA
  • .tmp-ci-venv/Lib/site-packages/click-8.4.1.dist-info/RECORD
  • .tmp-ci-venv/Lib/site-packages/click-8.4.1.dist-info/WHEEL
  • .tmp-ci-venv/Lib/site-packages/click-8.4.1.dist-info/licenses/LICENSE.txt
  • .tmp-ci-venv/Lib/site-packages/click/__init__.py
  • .tmp-ci-venv/Lib/site-packages/click/_compat.py
  • .tmp-ci-venv/Lib/site-packages/click/_termui_impl.py
  • .tmp-ci-venv/Lib/site-packages/click/_textwrap.py
  • .tmp-ci-venv/Lib/site-packages/click/_utils.py
  • .tmp-ci-venv/Lib/site-packages/click/_winconsole.py
  • .tmp-ci-venv/Lib/site-packages/click/core.py
  • .tmp-ci-venv/Lib/site-packages/click/decorators.py
  • .tmp-ci-venv/Lib/site-packages/click/exceptions.py
  • .tmp-ci-venv/Lib/site-packages/click/formatting.py
  • .tmp-ci-venv/Lib/site-packages/click/globals.py
  • .tmp-ci-venv/Lib/site-packages/click/parser.py
  • .tmp-ci-venv/Lib/site-packages/click/py.typed
  • .tmp-ci-venv/Lib/site-packages/click/shell_completion.py
  • .tmp-ci-venv/Lib/site-packages/click/termui.py
  • .tmp-ci-venv/Lib/site-packages/click/testing.py
  • .tmp-ci-venv/Lib/site-packages/click/types.py
  • .tmp-ci-venv/Lib/site-packages/click/utils.py
  • .tmp-ci-venv/Lib/site-packages/colorama-0.4.6.dist-info/INSTALLER
  • .tmp-ci-venv/Lib/site-packages/colorama-0.4.6.dist-info/METADATA
  • .tmp-ci-venv/Lib/site-packages/colorama-0.4.6.dist-info/RECORD
  • .tmp-ci-venv/Lib/site-packages/colorama-0.4.6.dist-info/WHEEL
  • .tmp-ci-venv/Lib/site-packages/colorama-0.4.6.dist-info/licenses/LICENSE.txt
  • .tmp-ci-venv/Lib/site-packages/colorama/__init__.py
  • .tmp-ci-venv/Lib/site-packages/colorama/ansi.py
  • .tmp-ci-venv/Lib/site-packages/colorama/ansitowin32.py
  • .tmp-ci-venv/Lib/site-packages/colorama/initialise.py
  • .tmp-ci-venv/Lib/site-packages/colorama/tests/__init__.py
  • .tmp-ci-venv/Lib/site-packages/colorama/tests/ansi_test.py
  • .tmp-ci-venv/Lib/site-packages/colorama/tests/ansitowin32_test.py
  • .tmp-ci-venv/Lib/site-packages/colorama/tests/initialise_test.py
  • .tmp-ci-venv/Lib/site-packages/colorama/tests/isatty_test.py
  • .tmp-ci-venv/Lib/site-packages/colorama/tests/utils.py
  • .tmp-ci-venv/Lib/site-packages/colorama/tests/winterm_test.py
  • .tmp-ci-venv/Lib/site-packages/colorama/win32.py
  • .tmp-ci-venv/Lib/site-packages/colorama/winterm.py
  • .tmp-ci-venv/Lib/site-packages/cryptography-48.0.0.dist-info/INSTALLER
  • .tmp-ci-venv/Lib/site-packages/cryptography-48.0.0.dist-info/METADATA
  • .tmp-ci-venv/Lib/site-packages/cryptography-48.0.0.dist-info/RECORD
  • .tmp-ci-venv/Lib/site-packages/cryptography-48.0.0.dist-info/WHEEL
  • .tmp-ci-venv/Lib/site-packages/cryptography-48.0.0.dist-info/licenses/LICENSE
  • .tmp-ci-venv/Lib/site-packages/cryptography-48.0.0.dist-info/licenses/LICENSE.APACHE
  • .tmp-ci-venv/Lib/site-packages/cryptography-48.0.0.dist-info/licenses/LICENSE.BSD
  • .tmp-ci-venv/Lib/site-packages/cryptography-48.0.0.dist-info/sboms/cryptography-rust.cyclonedx.json
  • .tmp-ci-venv/Lib/site-packages/cryptography-48.0.0.dist-info/sboms/sbom.json
  • .tmp-ci-venv/Lib/site-packages/cryptography/__about__.py
  • .tmp-ci-venv/Lib/site-packages/cryptography/__init__.py
  • .tmp-ci-venv/Lib/site-packages/cryptography/exceptions.py
  • .tmp-ci-venv/Lib/site-packages/cryptography/fernet.py
  • .tmp-ci-venv/Lib/site-packages/cryptography/hazmat/__init__.py
  • .tmp-ci-venv/Lib/site-packages/cryptography/hazmat/_oid.py
  • .tmp-ci-venv/Lib/site-packages/cryptography/hazmat/asn1/__init__.py
  • .tmp-ci-venv/Lib/site-packages/cryptography/hazmat/asn1/asn1.py
  • .tmp-ci-venv/Lib/site-packages/cryptography/hazmat/backends/__init__.py
  • .tmp-ci-venv/Lib/site-packages/cryptography/hazmat/backends/openssl/__init__.py
  • .tmp-ci-venv/Lib/site-packages/cryptography/hazmat/backends/openssl/backend.py
  • .tmp-ci-venv/Lib/site-packages/cryptography/hazmat/bindings/__init__.py
  • .tmp-ci-venv/Lib/site-packages/cryptography/hazmat/bindings/_rust/__init__.pyi
  • .tmp-ci-venv/Lib/site-packages/cryptography/hazmat/bindings/_rust/_openssl.pyi
  • .tmp-ci-venv/Lib/site-packages/cryptography/hazmat/bindings/_rust/asn1.pyi
  • .tmp-ci-venv/Lib/site-packages/cryptography/hazmat/bindings/_rust/declarative_asn1.pyi
  • .tmp-ci-venv/Lib/site-packages/cryptography/hazmat/bindings/_rust/exceptions.pyi
  • .tmp-ci-venv/Lib/site-packages/cryptography/hazmat/bindings/_rust/ocsp.pyi
  • .tmp-ci-venv/Lib/site-packages/cryptography/hazmat/bindings/_rust/openssl/__init__.pyi
  • .tmp-ci-venv/Lib/site-packages/cryptography/hazmat/bindings/_rust/openssl/aead.pyi

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

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 and usage tips.

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[CRITICAL] No Authentication on 16/17 Backend API Endpoints — Full Database & AI Access Exposed