feat: F6.1 FILIUS files on F: projects from examples and .fls, copies, export
/svc/examples lists FILIUS' examples, which lie beside F in the image (GPL like this repository, kept out of the dashboard); /svc/projects makes a project from one; /svc/projects/<id>/import takes a .fls (up to 64 MiB), /copy copies a project as it is now, /export gives it back as a .fls with its warnings. Large files go into the blob store on import and come back from it on export, which is refused when one is missing. Found on the way: Node's request body is a Buffer, and Yjs takes no Buffer into a document, so every .fls with binary files would have failed; and fflate, now in the bundle, imports createRequire itself, which the build's banner declared again, so F did not start. The banner names it otherwise and a test builds and starts the bundle. The proxy's /svc/ takes 70 MB. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
+29
-6
@@ -185,14 +185,36 @@ server {
|
||||
proxy_send_timeout 120s;
|
||||
}
|
||||
|
||||
# ── The dashboard's service route: /svc/ ─────────────────────────
|
||||
#
|
||||
# Guarded by `FILIUS_SERVICE_KEY`; the dashboard reaches F under this
|
||||
# name, so if this proxy is down, creating, importing and deleting
|
||||
# projects is down too. A FILIUS file the dashboard imports comes here
|
||||
# whole, with its pictures (`/svc/projects/<id>/import`, F takes up to
|
||||
# 64 MiB, `IMPORT_BYTES`); nginx' default of 1 MB would refuse a class's
|
||||
# project with a few screenshots in it. F limits everything else under
|
||||
# `/svc/` to 64 KiB itself. The limit is again above F's, so that F
|
||||
# answers a file too large itself (see `/blobs`).
|
||||
location /svc/ {
|
||||
proxy_pass http://$filius_upstream;
|
||||
proxy_http_version 1.1;
|
||||
|
||||
proxy_set_header Host $host;
|
||||
proxy_set_header X-Forwarded-Host $host;
|
||||
proxy_set_header X-Real-IP $remote_addr;
|
||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||
proxy_set_header X-Forwarded-Proto https;
|
||||
|
||||
client_max_body_size 70m;
|
||||
proxy_connect_timeout 10s;
|
||||
proxy_read_timeout 120s;
|
||||
proxy_send_timeout 120s;
|
||||
}
|
||||
|
||||
# ── Everything else ──────────────────────────────────────────────
|
||||
#
|
||||
# The editor's page and bundle, `/__auth` (ticket in, cookie out),
|
||||
# `/svc/*` (the dashboard's service route, guarded by
|
||||
# `FILIUS_SERVICE_KEY`; the dashboard reaches F under this name, so if
|
||||
# this proxy is down, creating and deleting projects is down too) and
|
||||
# `/healthz`. F limits the bodies of `/svc/*` to 64 KiB itself, so
|
||||
# nginx's default of 1 MB stays.
|
||||
# The editor's page and bundle, `/__auth` (ticket in, cookie out) and
|
||||
# `/healthz`; nginx's default of 1 MB for a body stays.
|
||||
location / {
|
||||
proxy_pass http://$filius_upstream;
|
||||
proxy_http_version 1.1;
|
||||
@@ -219,4 +241,5 @@ server {
|
||||
# | Editor opens, but "connection lost" right away | `/sync` or `/sim` gets no `Upgrade`, or `FILIUS_ORIGINS` does not name this host (F logs `sync.foreignOrigin`). |
|
||||
# | Sign-in in the dashboard's frame fails silently | The stack runs with `FILIUS_INSECURE_COOKIE=1`, or the dashboard of the other environment issued the ticket. |
|
||||
# | Large picture: "upload failed" without a reason | `client_max_body_size` in `/blobs` is below 16 MiB. |
|
||||
# | Importing a FILIUS file fails with 413 (an HTML page, not F's JSON) | `client_max_body_size` in `/svc/` is below 64 MiB. |
|
||||
# | Editor in the dashboard stays a white box | Something sets `X-Frame-Options` for this host. `curl -sI https://filius.hub.mdg-hamburg.de/` |
|
||||
|
||||
Reference in New Issue
Block a user