Repository navigation
Conversation
…ckerfile compose passes VITE_WHITEBOARD_APP_URL to osionos-app (docker-compose.yml:277), but app.Dockerfile declares no ARG for it, so Docker drops it with a warning. Since osionos 2e24e1e8 an empty URL hides the whiteboard in production builds. The check reads the base and public compose files and, per service, requires that a stage declares each arg and then uses it (a $NAME reference, or a later RUN). Red on develop: osionos-app drops VITE_WHITEBOARD_APP_URL; opposite-osiris, drawnosaurus, mail and calendar drop none. Rung 5 (a small helper): no YAML parser in the bats image (CI apk-adds coreutils, jq), and `docker compose config` would print every resolved build arg, secrets included.
…e build compose passed it (docker-compose.yml:277) but the Dockerfile declared no ARG, so Docker dropped it. Since osionos 2e24e1e8 (appUrls.ts:49) the whiteboard URL falls back to localhost only in dev builds, so every image built through compose came out with an empty URL and isWhiteboardReady() false: no View items, no rail app, no /whiteboard, and no import button on retired draw blocks. groot main and develop pin osionos 001ec2da, which contains 2e24e1e8. The default is the URL compose passes (https://localhost:3007); the public overlay still passes "" and keeps the whiteboard hidden. The compose comment said the flag defaults OFF and that an empty URL does not gate the tab; both have been false since 2e24e1e8.
fix(osionos): app.Dockerfile hands VITE_WHITEBOARD_APP_URL to the vite build
…s only Runs the real infrastructure/tls/nginx.conf in nginx:1.27-alpine in front of a stub drawnosaurus-gateway that answers like drawnosaurus's fastify-cors: Allow-Origin https://localhost:3001 for ANY origin, DELETE advertised. Red on develop: the edge forwards the preflight, so upstream advertises DELETE and no If-Match, and evil.example and https://127.0.0.1:3001 get an Allow-Origin. Expose-Headers and upstream's Allow-Origin also leak on /v1/boards and /healthz. DELETE, /v1/share and the framing CSP already hold and are kept as regression checks.
…wnosaurus's The inline whiteboard block's POST /v1/boards from https://localhost:3001 needs a preflight. The front door forwarded it to drawnosaurus's fastify-cors, which names its CORS_ORIGIN for any Origin, advertises DELETE and sends no Vary: Origin. The preflight is now answered at the edge, for $osionos_origin only: - Allow-Methods GET, HEAD, POST, PUT, PATCH; Allow-Headers Content-Type, If-Match (what whiteboardClient.ts sends); no credentials (it sends none); Vary: Origin always. - Upstream's Access-Control-* headers are hidden on every route, so this block is the one place CORS is decided. - DELETE and /v1/share stay 403. - One literal origin now feeds the CSP lines too. OPTIONS stays in limit_except: nginx applies limit_except when it picks the location, before the location's `if` runs, so dropping OPTIONS from the list turned every preflight into 403 (measured by the new test). Known weakness §7 records that the rule fences reads, not writes. Devil verdict PROCEED-WITH-CONDITIONS; each condition is a test in tests/drawnosaurus-edge/cors.bats or a line in this message.
fix(tls): the :3007 front door answers CORS for osionos and hides drawnosaurus's
|
3 of 28 tasks
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.



Promote develop → main: #99 and #100. (#95, 3d0c065, is already on main.)
Commits (origin/main..origin/develop)
9 files, +457 / −10. main is an ancestor of develop.
Pins (unchanged: identical on main and develop; each reachable from its repo's origin/main and origin/develop)
ADR 0025
None of these commits touches session cutoffs or revocation: no models/*.sql, migrations, bridge.Dockerfile or OSIONOS_SESSION_CUTOFFS. osionos stays pinned at 001ec2da on purpose; there's no bump before O2–O4 have run on prod (docs/adr/0025-app-sessions-end-at-a-polled-per-user-cutoff.md:3, :92-94).
CI note
Fresh-machine's full
make alljob doesn't run on PRs (fresh-machine.yml:102), so the push to main will be the first full bring-up of #99 + #100. The GR2 red on main (run 39255595261) was a flake and passed on re-run.Heads-up @LESdylan.