Feature/scale - #1
Conversation
Stripe-inspired design system (indigo/navy palette, gradient-mesh login, pill buttons, tabular-nums stat cards) with mock auth and mock data, matching the architecture diagram's role-based routing.
|
| GitGuardian id | GitGuardian status | Secret | Commit | Filename | |
|---|---|---|---|---|---|
| 35926315 | Triggered | Company Email Password | 01c0319 | backend/app/config.py | View secret |
| - | - | Generic Password | 01c0319 | docker-compose.yml | View secret |
| - | - | Company Email Password | 01c0319 | docker-compose.yml | View secret |
| - | - | Generic Password | fa397ad | deploy/aws/platform.yml | View secret |
🛠 Guidelines to remediate hardcoded secrets
- Understand the implications of revoking this secret by investigating where it is used in your code.
- Replace and store your secrets safely. Learn here the best practices.
- Revoke and rotate these secrets.
- If possible, rewrite git history. Rewriting git history is not a trivial act. You might completely break other contributing developers' workflow and you risk accidentally deleting legitimate data.
To avoid such incidents in the future consider
- following these best practices for managing and storing secrets including API keys and other credentials
- install secret detection on pre-commit to catch secret before it leaves your machine and ease remediation.
🦉 GitGuardian detects secrets in your source code to help developers and security teams secure the modern development process. You are seeing this because you or someone else with access to this repository has authorized GitGuardian to scan your pull request.
There was a problem hiding this comment.
Pull request overview
This PR converts the repository from the prior “portable/native” frontend tooling into a containerized, end-to-end FDX platform stack: a Vite/React webapp, a FastAPI backend with PostgreSQL/Redis/Kafka integrations, and a Gunicorn-hosted RetinaFace/AdaFace ML service, all orchestrated via Docker Compose (plus AWS deployment assets).
Changes:
- Added a new Vite/React webapp with Super Admin + Organization dashboards and public enrollment/gallery flows.
- Added a new FastAPI backend (auth, multi-tenant workflow APIs, worker, persistence, email outbox/provider integrations) plus Alembic migrations.
- Added Docker Compose runtime + NGINX reverse proxy config and AWS publish/deploy assets; updated README and removed legacy portable runner scripts.
Reviewed changes
Copilot reviewed 98 out of 104 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
| webapp/vite.config.js | Adds Vite dev server proxy for /api calls. |
| webapp/src/pages/superadmin/SystemHealth.jsx | Super Admin system health dashboard (services, queues, email delivery). |
| webapp/src/pages/superadmin/Overview.jsx | Super Admin overview dashboard with platform stats and activity. |
| webapp/src/pages/superadmin/OrganizationUsers.jsx | Super Admin organization-user invite/list UI. |
| webapp/src/pages/superadmin/Organizations.jsx | Super Admin org management UI (create, quota/retention editing, status toggle). |
| webapp/src/pages/superadmin/Organizations.css | Styles for Super Admin organizations view. |
| webapp/src/pages/superadmin/Logs.jsx | Super Admin audit log page wrapper. |
| webapp/src/pages/public/Gallery.jsx | Public participant gallery viewer + download actions. |
| webapp/src/pages/public/Enrollment.jsx | Public participant enrollment (camera/file upload + consent + submit). |
| webapp/src/pages/public/AcceptInvite.jsx | Public invite acceptance (set password) flow. |
| webapp/src/pages/organization/Uploads.jsx | Org photo upload UI (files/folders/zip) + recent uploads. |
| webapp/src/pages/organization/Team.jsx | Org admin staff invite/list UI. |
| webapp/src/pages/organization/Settings.jsx | Org admin settings edit + policy boundary display. |
| webapp/src/pages/organization/Processing.jsx | Org processing/jobs monitoring UI. |
| webapp/src/pages/organization/Participants.jsx | Org participants import + participant status list UI. |
| webapp/src/pages/organization/Overview.jsx | Org overview dashboard (stats, event list, storage/retention). |
| webapp/src/pages/organization/Logs.jsx | Org audit log page wrapper. |
| webapp/src/pages/organization/FaceMatches.jsx | Org match review UI (approve/reject) + match stats. |
| webapp/src/pages/organization/Events.jsx | Org events UI (list + create event modal). |
| webapp/src/pages/organization/Events.css | Styles for org events view. |
| webapp/src/pages/organization/EventDetail.jsx | Org event detail view + delete action and recent activity tables. |
| webapp/src/pages/organization/EmailOutbox.jsx | Org email delivery/outbox table + retry UI. |
| webapp/src/pages/organization/Deliveries.jsx | Org deliveries UI (send/retry galleries, stats). |
| webapp/src/pages/Login.jsx | Unified login route + role-based redirect. |
| webapp/src/pages/Login.css | Login page styling. |
| webapp/src/main.jsx | App bootstrap wiring (AuthProvider/PlatformProvider/router). |
| webapp/src/lib/api.js | API client (session storage, auth header, error handling). |
| webapp/src/context/PlatformContext.jsx | Central data fetching + mutation layer for Super Admin/Org roles. |
| webapp/src/context/AuthContext.jsx | Session persistence + login/logout + auth state. |
| webapp/src/components/Toggle.jsx | Adds toggle UI component used for org status control. |
| webapp/src/components/Toggle.css | Styles for Toggle component. |
| webapp/src/components/StatCard.jsx | Adds stat card UI used across dashboards. |
| webapp/src/components/StatCard.css | Styles for StatCard component. |
| webapp/src/components/ProtectedRoute.jsx | Role/roles-based route guard component. |
| webapp/src/components/PageState.jsx | Shared loading/error/empty-state wrapper. |
| webapp/src/components/Modal.jsx | Modal dialog component with ESC/backdrop close behavior. |
| webapp/src/components/Modal.css | Styles for Modal component. |
| webapp/src/components/LogsTable.jsx | Shared audit log table component. |
| webapp/src/components/Icon.jsx | Inline SVG icon component/path registry. |
| webapp/src/components/Gauge.jsx | Gauge visualization for storage/quota metrics. |
| webapp/src/components/Gauge.css | Styles for Gauge component. |
| webapp/src/components/Dropzone.jsx | File/folder dropzone component used for uploads/imports. |
| webapp/src/components/Dropzone.css | Styles for Dropzone component. |
| webapp/src/components/DashboardShell.jsx | Layout shell with sidebar navigation + topbar. |
| webapp/src/components/DashboardShell.css | Styles for DashboardShell. |
| webapp/src/components/Badge.jsx | Status badge/tone mapping used across UI. |
| webapp/src/App.jsx | Full routing layout for login, public routes, admin/org shells. |
| webapp/public/icons.svg | Adds SVG icon sprites for branding/social assets. |
| webapp/public/favicon.svg | Adds favicon asset. |
| webapp/package.json | Defines webapp dependencies and scripts (Vite/React/oxlint). |
| webapp/index.html | Vite HTML entrypoint. |
| webapp/Dockerfile | Builds webapp and serves via NGINX in container. |
| webapp/.oxlintrc.json | Adds oxlint config for React rules. |
| webapp/.gitignore | Webapp-specific ignore rules (node_modules/dist). |
| tools/native_accurate_backend.py | Updates ML backend for container execution + optional warmup-on-import + configurable host. |
| face-processing/ml/requirements-local.txt | Updates ML requirements for containerized service (adds gunicorn, updates comment). |
| face-processing/ml/Dockerfile | Adds container image for ML service (gunicorn + ORT + warmup). |
| docker-compose.yml | Adds full local stack (Postgres/Redis/Kafka/ML/API/Worker/Web) with healthchecks/volumes. |
| docker-compose.aws.yml | Adds production Compose manifest (image-based, managed services). |
| deploy/nginx/default.conf | Adds NGINX reverse proxy config with rate limits/timeouts. |
| deploy/aws/README.md | Adds AWS deployment guidance. |
| deploy/aws/publish.sh | Adds AWS publish script (build/push images, upload models/compose, ASG refresh). |
| backend/requirements.txt | Adds backend Python dependencies (FastAPI/SQLAlchemy/Alembic/etc). |
| backend/entrypoint.sh | Adds migration-running container entrypoint. |
| backend/Dockerfile | Adds backend API/worker container build. |
| backend/app/worker.py | Adds worker loop for Kafka + DB fallback + retention + email retries. |
| backend/app/serializers.py | Adds JSON serializers used by API responses. |
| backend/app/integrations.py | Adds storage adapter, Kafka publish, ML HTTP calls, and email provider adapters. |
| backend/app/database.py | Adds SQLAlchemy engine/session and DB dependency. |
| backend/app/config.py | Adds env-driven settings object. |
| backend/app/auth.py | Adds password hashing, JWT auth, role guards, login rate limiting. |
| backend/app/init.py | Declares backend package. |
| backend/alembic/versions/20260812_02_email_delivery_link.py | Adds migration linking email outbox rows to deliveries. |
| backend/alembic/versions/20260812_01_complete_workflow.py | Adds initial/upgrade migration for workflow schema + added columns. |
| backend/alembic/script.py.mako | Adds Alembic template. |
| backend/alembic/env.py | Adds Alembic env for online/offline migrations. |
| backend/alembic.ini | Adds Alembic configuration. |
| stop-platform.sh | Adds script to stop local Compose stack. |
| run-platform.sh | Adds script to run local Compose stack and bootstrap .env. |
| README.md | Rewrites README from portable build to platform architecture/run/deploy docs. |
| .gitignore | Updates repo ignore rules for new stack files and artifacts. |
| .env.example | Adds environment template for local/prod config. |
| .dockerignore | Adds Docker build context ignore rules. |
| tools/verify_video_tracking.mjs | Removes legacy portable verification script. |
| tools/verify_model_routes.py | Removes legacy portable verification script. |
| tools/verify_cropped_pipeline.py | Removes legacy portable verification script. |
| tools/production_check.sh | Removes legacy portable production-check script. |
| tools/detector_proxy.py | Removes legacy detector proxy used by portable UI. |
| tools/bootstrap_local.sh | Removes legacy local bootstrap script for portable runtime. |
| stop.sh | Removes legacy portable stop script. |
| run.sh | Removes legacy portable runner script. |
| frontend/index.html | Removes legacy portable frontend HTML. |
Files not reviewed (1)
- webapp/package-lock.json: Generated file
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
| canvas.toBlob((blob) => { | ||
| setImage(new File([blob], "selfie.jpg", { type: "image/jpeg" })); | ||
| setPreview(URL.createObjectURL(blob)); | ||
| streamRef.current?.getTracks().forEach((track) => track.stop()); | ||
| setCameraReady(false); | ||
| }, "image/jpeg", 0.92); |
| onDrop={(event) => { | ||
| event.preventDefault(); | ||
| setDragOver(false); | ||
| addFiles(event.dataTransfer.files); | ||
| }} | ||
| onClick={() => inputRef.current?.click()} | ||
| role="button" | ||
| tabIndex={0} | ||
| > |
No description provided.