Projekt als Datei herunterladen und wieder importieren #281

Open
opened 2026-09-29 18:26:31 +02:00 by meleki · 0 comments
Owner

Aus #231 („Vorerst nicht dabei: … Export als Datei.“).

Befund

  • Projekte und Snapshots liegen nur am Server (data/projects/, data/snapshots/). Es gibt keinen Weg, einen Stand herunterzuladen oder einen heruntergeladenen wieder einzuspielen.
  • Seit #85 Runde 8 sind die Dateien auch statisch nicht mehr abrufbar (403). Vorher war das der einzige, unbeabsichtigte Weg.
  • Nebenbefund aus #85 Runde 8: deserializeProject nimmt eine Datei in der Server-Hülle ({id, name, owner, revision, updatedAt, project}) ohne Fehler als leeres Projekt an. Ein Import muss das selbst abfangen.

Zu bauen (Vorschlag)

  • Download: im Snapshots-Dialog je Eintrag und für den aktuellen Stand. Heraus kommt eine .json mit dem Projekt.
  • Import: im Projekt-Picker „Import project…“. Es legt aus so einer Datei ein neues Projekt des eigenen Kontos an, mit neuer Id. Eine Datei ohne erkennbares Projekt wird abgelehnt, statt leer zu laden.
  • Bilder, Fonts und Sounds sind inhaltsadressiert und bleiben am Server. Eine Datei von diesem Server lädt also vollständig.
  • Tests: Unit für den Import (Hülle, fehlendes project, alter Stand), e2e: Download, Import, das neue Projekt zeigt dieselben Assets.

Offen (mit Vorschlag)

  1. Mit Bildern, Fonts und Sounds? Vorschlag: vorerst nur die JSON. Mit Dateien wäre es eine ZIP wie beim Spiel-Export (#278).
  2. Import in ein bestehendes Projekt, als Restore? Vorschlag: nein, immer ein neues Projekt.
Aus #231 („Vorerst nicht dabei: … Export als Datei.“). ## Befund - Projekte und Snapshots liegen nur am Server (`data/projects/`, `data/snapshots/`). Es gibt keinen Weg, einen Stand herunterzuladen oder einen heruntergeladenen wieder einzuspielen. - Seit #85 Runde 8 sind die Dateien auch statisch nicht mehr abrufbar (403). Vorher war das der einzige, unbeabsichtigte Weg. - Nebenbefund aus #85 Runde 8: `deserializeProject` nimmt eine Datei in der Server-Hülle (`{id, name, owner, revision, updatedAt, project}`) ohne Fehler als **leeres** Projekt an. Ein Import muss das selbst abfangen. ## Zu bauen (Vorschlag) - **Download:** im Snapshots-Dialog je Eintrag und für den aktuellen Stand. Heraus kommt eine `.json` mit dem Projekt. - **Import:** im Projekt-Picker „Import project…“. Es legt aus so einer Datei ein neues Projekt des eigenen Kontos an, mit neuer Id. Eine Datei ohne erkennbares Projekt wird abgelehnt, statt leer zu laden. - Bilder, Fonts und Sounds sind inhaltsadressiert und bleiben am Server. Eine Datei von diesem Server lädt also vollständig. - Tests: Unit für den Import (Hülle, fehlendes `project`, alter Stand), e2e: Download, Import, das neue Projekt zeigt dieselben Assets. ## Offen (mit Vorschlag) 1. **Mit Bildern, Fonts und Sounds?** Vorschlag: vorerst nur die JSON. Mit Dateien wäre es eine ZIP wie beim Spiel-Export (#278). 2. **Import in ein bestehendes Projekt, als Restore?** Vorschlag: nein, immer ein neues Projekt.
meleki added the new label 2026-09-29 18:26:31 +02:00
admin added held-back and removed new labels 2026-09-29 18:28:05 +02:00
admin added this to the Development project 2026-09-29 18:28:15 +02:00
admin moved this to Held back in Development on 2026-09-29 18:28:16 +02:00
admin added the question label 2026-09-29 18:31:35 +02:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: meleki/feuerwerk#281