Phase 1 — bootstrap: FastAPI/Mangum scaffold + container entry swap#89
Closed
chrisbc wants to merge 2 commits into
Closed
Phase 1 — bootstrap: FastAPI/Mangum scaffold + container entry swap#89chrisbc wants to merge 2 commits into
chrisbc wants to merge 2 commits into
Conversation
- add strawberry/fastapi/mangum/pydantic (legacy graphene/flask kept until cutover)
- app.py: FastAPI + GraphQLRouter + Mangum + CORS
- strawberry_schema.py: minimal QueryRoot.about at SDL parity
(auto_camel_case=False, root type QueryRoot to match legacy + kororaa corpus)
- serverless.yml: image.command -> solvis_graphql_api.app.handler; drop
serverless-wsgi plugin + custom.wsgi
- Dockerfile: CMD -> app.handler; drop bogus /bin/bash -c entrypoint
- verified: amd64 docker build OK + handler imports in-image; uvicorn {about}
byte-matches legacy; full legacy suite 77 passed
Refs #86
This was referenced Jun 24, 2026
Member
Author
|
Landed via the combined PR #95 (one merge → one test-stage deploy, per runbook G7). Per-phase detail preserved here. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Stacked migration — PR 2 of N. Base =
migrate/strawberry(Phase 0, #88). Retarget todeploy-testafter #88 lands.Epic: GNS-Science/nshm-toshi-api#359 · Tracking: #86 · Log:
docs/MIGRATION_LOG.mdStands up the new stack alongside the legacy Graphene/Flask app (removed at cutover). No deploy yet — the migrated app isn't wired to the real schema until Phase 2, so the stack merges as one unit at cutover (runbook G7).
Changes
strawberry-graphql0.316,fastapi0.137,mangum0.21,pydantic2.13 (legacy kept alongside).app.py— FastAPI +GraphQLRouter+ Mangum + CORS.strawberry_schema.py— minimalQueryRoot.aboutat SDL parity (auto_camel_case=False; root typeQueryRootto match legacy + the kororaa corpus fragments). Namedstrawberry_schema.pybecause legacy Graphene ownsschema.py(Model G4); rename at cutover.serverless.ymlimage.command=solvis_graphql_api.app.handler; droppedserverless-wsgiplugin +custom.wsgi;DockerfileCMD =app.handler(removed bogus/bin/bash -centrypoint). The serverless-wsgihandler.pyworkaround is now unused (deleted at cutover).dev.ymlbranches:filter so stacked PRs get CI (Trap add id resolver; #14);.yarnrc.ymlnow tracked + age gate (§4.6).Verification (local)
docker buildsucceeds (all deps incl. geo stack install)docker run … python -c "import solvis_graphql_api.app"→ Mangum handler + FastAPI import clean inside the imageuvicorn/TestClient{ about }byte-matches legacy;{ __typename }→QueryRoot