Skip to content

Restore strict verification and actual authentication across frontend and API - #4

Draft
jadenfix wants to merge 5 commits into
mainfrom
codex/integrated-auth-frontend-checks-20261013
Draft

jadenfix wants to merge 5 commits into
mainfrom
codex/integrated-auth-frontend-checks-20261013

Conversation

@jadenfix

@jadenfix jadenfix commented Oct 13, 2026 •

Copy link
Copy Markdown
Owner

Combines the frontend/auth/query fixes from #2 and #3 into one reviewed change. Preserve noncompiling historical App snapshots byte-for-byte as text, keep every active source file checked, split context hooks/providers, remove unsafe types, and fix Mapbox's self-triggering marker effect with cleanup on filters, replacement and unmount. Strict auth typing preserves the database schema; password, JWT and enabled rate-limit policies execute even in test environments. Fix actual DB-failure tests and generate temporary HTTP credentials.

Validation: all hosted source gates now pass at 2f3c7fa: frontend lint/type/format/tests/build, Python Black/isort/Flake8/MyPy,47 auth tests, real HTTP/SQLite restart, Terraform lint/init/plan job and security scan. Frontend8 tests include a meaningful marker-loop regression that fails the old component. Terraform1.16.5 resolves the old provider-signature key-expiry error without bypassing signature verification. Plan execution remains subject to cloud credentials and the existing workflow's continue-on-error behavior; no applied infrastructure claim.

Hold: both existing Vercel project deployments remain failed and their linked team's logs are inaccessible through the available connection. Query/search contains unfinished/simulated lanes, live Mapbox and distributed services are unverified, and no complete product/demo claim is made. #2/#3 remain open until this canonical PR is approved and merged. Final source tree85db9e3920f21df12963dd6b60e88a278761526b.

@vercel

vercel Bot commented Oct 13, 2026 •

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
orbit-agents Error Error Oct 14, 2026 7:46pm UTC
orbitagents Error Error Oct 14, 2026 7:46pm UTC

@gitguardian

gitguardian Bot commented Oct 13, 2026 •

Copy link
Copy Markdown

⚠️ GitGuardian has uncovered 1 secret following the scan of your pull request.

Please consider investigating the findings and remediating the incidents. Failure to do so may lead to compromising the associated services or software components.

🔎 Detected hardcoded secret in your pull request
GitGuardian id GitGuardian status Secret Commit Filename
38149761 Triggered Generic Password 4e3faca scripts/check_product_http.py View secret
🛠 Guidelines to remediate hardcoded secrets
  1. Understand the implications of revoking this secret by investigating where it is used in your code.
  2. Replace and store your secret safely. Learn here the best practices.
  3. Revoke and rotate this secret.
  4. 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


🦉 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.

Copy link
Copy Markdown
Owner Author

Independent exact-head audit — HOLD (do not merge)

I independently audited the current draft without modifying its branch.

Pinned identity

  • PR head: 2f3c7fac8c7d03e76dc07f3014f9f2486bf30be9
  • head tree: 85db9e3920f21df12963dd6b60e88a278761526b
  • base main: 4105153f7983cf7fa58091eab0b426330d88c808
  • affected blobs: services/auth/schemas.py 0a6105df9473abd285600e2410336ad0485ea788; services/auth/main.py e8fb554a061ed7e30478949f90896e4ef34ebd4d
  • exact remote head/main still matched after verification; checkout was clean after generated coverage output was removed.

Release-blocking authentication defect reproduced through the real HTTP service

The request schemas accept passwords up to 128 characters, while the configured Passlib bcrypt backend authenticates only the first 72 UTF-8 bytes. The current suite checks very long rejection but does not cover two allowed, distinct passwords sharing that byte prefix.

Using a fresh SQLite database and a separate loopback Uvicorn process, I registered:

password_a = ("Aa1!" * 18) + "Xy9!"

and then logged in as the same user with:

password_b = ("Aa1!" * 18) + "Zz8?"

Observed facts:

  • both inputs are 76 UTF-8 bytes;
  • they are unequal but have the same first 72 bytes;
  • registration with password_a: HTTP 201;
  • login with password_b: HTTP 200, returning a bearer access token.

That means a different user-entered password authenticates successfully. This is not a theoretical library warning; it is an actual service-level bypass at this exact head.

Required repair before review can clear

Use one coherent policy at registration and login:

  1. either reject any bcrypt password whose UTF-8 encoding exceeds 72 bytes (not 72 characters), before hashing/verification; or migrate to a non-truncating password scheme such as Argon2id with an explicit safe migration/rehash path;
  2. add direct regression cases for distinct ASCII and multibyte-Unicode passwords sharing the first 72 bytes;
  3. exercise those regressions both in unit/API tests and the real separate-process HTTP + persisted-SQLite restart check;
  4. rerun every existing lint, type, security, coverage, build, persistence and deployment gate without weakening it.

Independently rerun evidence

  • Python 3.12.14: 47 passed; reported total coverage 45%.
  • Black, isort, Flake8 and MyPy: pass.
  • scripts/check_auth_http.py: pass for real HTTP registration, validation, JWT login, rejected login, hashed SQLite persistence and restart.
  • Frontend: ESLint, Prettier, TypeScript and production build pass; Jest 8/8 passes, reported total coverage 26.6%.
  • Hosted runs 38334250331 and 38334250362 are green for their executed jobs; Docker Build is skipped. GitGuardian is green.
  • The commit status remains failure because both Vercel projects report failed deployments.
  • Recursive media inspection found no GIF, MP4, WebM or MOV and no source reference to one, so there is no source-pinned workflow demo to inspect or certify.

The PR's own scope caveats remain accurate: query/search includes unfinished or simulated lanes; live Mapbox, distributed services, applied infrastructure and cloud-provider behavior remain unverified. No complete-product, production, deployment or portfolio-demo claim is cleared.

Disposition: keep this PR draft and held. Preserve the two Vercel failures and all existing gates. Recapture/verify truthful media only after the repaired source is final.

@jadenfix

Copy link
Copy Markdown
Owner Author

Continuation adds real product boundaries at 4e3faca (tree 7789fc117ed36dd4bdd91970fd1aa6b646a42fc8): frontend sends actual query requests instead of inventing a Denver property, chat uses the returned response rather than stale context, failed/malformed requests clear old results, mobile stacks chat/results, per-user drafts survive reload, and missing Mapbox configuration is explicit. Flask auth now forwards to the real configured auth service; fake credentials and random nonexistent workflow progress are removed. OpenSearch provider failures raise unavailable rather than successful zero matches. No merge or deployment performed.

Local proof: all13 frontend assertions (8 preserved +5 regressions), strict TypeScript/lint/format/build,11 API/provider boundary tests, genuine SQLite/JWT auth HTTP and restart. Desktop1440/mobile390 browser proof passes actual auth through gateway, draft reload, search/empty/error transitions, map-unavailable state and signout, with0 page errors/overflow. Browser listings are explicitly an HTTP contract fixture, not live MLS/OpenSearch proof. Repeatable harness and CI are included under scripts/check_product_http.py and product-gateway.yml.

External limits: Vercel connection still belongs to jaden@tempera.dev / jadenfixxx, with only its current team accessible; the legacy owning team's deployment logs remain unavailable. Genuine remote AUTH_SERVICE_URL/QUERY_SERVICE_URL, live index/provider setup and browser execution are not supplied or claimed. Capture only this final reviewed head after its CI completes.

@jadenfix

Copy link
Copy Markdown
Owner Author

Product scope gates now pass at 484192b (tree9f4cb96bf48a23fb5e891c08464cec30c374ed23). Missing Tailwind PostCSS generation was found by visual inspection and repaired; the browser harness now asserts computed styling. Cold checkout evidence-directory creation and Node22 support also pass.

Actual hosted proof: product browser + gateway https://github.com/jadenfix/OrbitAgents/actions/runs/38625684465; preserved frontend/auth/lint/build gates https://github.com/jadenfix/OrbitAgents/actions/runs/38625684273. Desktop1440/mobile390 actual auth/JWT/SQLite gateway, native draft reload, HTTP contract listing/empty/503 transitions, unavailable Mapbox and logout pass with0 page errors and0 horizontal overflow. Browser artifact11923083827 contains screenshots and receipt. Query fixtures remain explicitly non-MLS/OpenSearch proof; Docker Build is skipped and cloud-plan execution is not an applied-infrastructure claim.

KEEP DRAFT / HOLD: independent audit6168059804 identified a real bcrypt72-byte prefix authentication bypass; the Python owner is repairing it with ASCII+Unicode and real HTTP/restart regressions. The full unfiltered npm audit also reports69 dependency alerts (including1 critical); the research owner is migrating the maintained toolchain while preserving all13 frontend assertions and custom styles. Final combined-head CI and Vercel owning-team access must be reassessed before review/merge or final media capture. No checks are suppressed and no merge/deployment was performed.

This branch had an error being deployed

2 failed deployments
Preview – orbit-agents — 389d77d9 Deployed Oct 14, 2026 by vercel[bot]
Preview – orbitagents — 389d77d9 Deployed Oct 14, 2026 by vercel[bot]
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.

1 participant