0.1.114 — unblock backend Docker build: requests~=2.33.0 to satisfy casdoor 1.41

The first Northflank rebuild after the user pointed the deploy at the right branch failed at the pip3 install -r requirements.txt layer:

ERROR: Cannot install -r requirements.txt (line 58),
  -r requirements.txt (line 59) and requests==2.31.0 because
  these package versions have conflicting dependencies.
The conflict is caused by:
    The user requested requests==2.31.0
    yarg 0.1.9 depends on requests
    casdoor 1.41.0 depends on requests~=2.33.0

casdoor>=1.41,<2 (added in 0.1.96) tightened its dependency to requests~=2.33.0, which is incompatible with the requests==2.31.0 pin that has been in requirements.txt since long before the Casdoor migration. pip's resolver gave up after attempting many cryptography / urllib3 / aiohttp combinations.

Fix

Both backend/requirements.txt and backend/requirements-render.txt bumped from:

requests==2.31.0

to:

requests~=2.33.0

~=2.33.0 matches casdoor's pin exactly: any 2.33.x patch is allowed (so a casdoor patch release that bumps to 2.33.1 won't re-break us), but 2.34 and beyond are not — keeping the solver deterministic.

Why this is safe

  • requests 2.32+ → 2.33 is a minor / patch series with no breaking API changes (the major API surface requests.get/post/Session is unchanged).
  • The other range pins in the requirements file remain satisfiable:
    • urllib3>=1.25.4,<1.27 (kept) — requests 2.33 needs urllib3>=1.21.1,<3, so 1.26.x is in range.
    • cryptography>=42,<48 (kept) — independent of requests.
    • charset-normalizer==3.3.2 (kept) — requests 2.33 needs >=2,<4, satisfied.
    • idna==3.6, certifi==2023.11.17 (kept) — both within requests 2.33's tolerated ranges.

Files changed

  • backend/requirements.txt (line 45)
  • backend/requirements-render.txt (line 35)

Verification

  • No code changes; only a dependency bump. The build will re-resolve on the next docker build and pip should pick requests==2.33.x, urllib3==1.26.19 (already what it was reaching for), and casdoor==1.41.x.
  • After the rebuild, the 0.1.113 boot-log line (Backend.Notechondria.Boot/version_log) will show version=0.1.114 if the layer cache invalidated correctly. If it shows version=0.1.113 the new VERSION file made it in but the install layer reused a cache; if it shows an older version, the build context wasn't refreshed — rebuild with --no-cache (or push another commit that touches a file copied earlier in the Dockerfile to bust the cache).

Operator runbook

  1. git push (or trigger Northflank's manual rebuild) to pick up the loosened pin.
  2. Watch the build log; the pip3 install -r requirements.txt step that previously errored at 7.087 ERROR: Cannot install ... should now resolve and proceed to [ 8/18] and beyond.
  3. After the worker boots, grep Backend.Notechondria.Boot/version_log in Northflank's log stream — confirm version=0.1.114.
  4. curl -sS https://notechondria.trance-0.com/api/v1/auth/casdoor/config/ — expect a 200 with signin_url ending in /login/notechondria (per 0.1.112). At that point the SPA's Casdoor SSO button will redirect correctly.