Datenresidenz
Formfeed rendert nur in der EU: Dokumente werden in Frankfurt gerendert und in der Europäischen Union
gespeichert. Ein Teil ist nicht auf die EU beschränkt, das API-Gateway auf Cloudflares Edge; die Tabelle sagt, was
es hält. Der Endpunkt für Ihre Integration ist https://api-eu.formfeed.dev/v1.
Komponenten
| Komponente | Anbieter und Standort | Hält |
|---|---|---|
| Datenbank, Authentifizierung, Schriftenspeicher | Supabase, Frankfurt (AWS eu-central-1) | Konten, Vorlagen, Render-Metadaten, Schriften und die Anfragen von Renderings, solange der Workspace sie aufbewahrt |
| Rendering und Umwandlung | Fly.io, Frankfurt (fra) | Der Render-Dienst (Chromium), der Office-Konverter (LibreOffice) und der Dienst, der E-Rechnungen und PDF/UA-1-Dateien erzeugt und prüft. Dokumente liegen im Arbeitsspeicher, solange sie bearbeitet werden, sonst bleibt nichts von ihnen; Schriften und Bilder, die Vorlagen aus dem Web laden, werden bis zu 7 Tage auf den Festplatten der Render-Server zwischengespeichert. Der Render-Dienst sendet auch die Webhook-Ereignisse und die Kopien in Ihren eigenen Bucket. |
| Ausgabespeicher und Auslieferung | Cloudflare R2 (EU-Jurisdiktion) hinter cdn.formfeed.dev | gerenderte Dateien bis zum Ablauf, Batch-Zips (siehe unten) und das zusammengesetzte HTML eines fehlgeschlagenen Renderings 24 Stunden lang |
| Bibliotheks- und Vorlagendateien | Cloudflare R2 (EU-Jurisdiktion) | in die Dateibibliothek geladene Dateien, Logos des Brand Kits, Word- und PowerPoint-Vorlagendateien |
| API-Gateway | Cloudflare-Edge, ausgeführt am Standort, der dem Aufrufer am nächsten liegt | Anfrageverarbeitung; leitet Nutzlasten nach Frankfurt weiter, ohne sie zu speichern. Hält Metadaten zu API-Schlüsseln, Vorlagenversionen und das Brand Kit eine Minute, Schriftenlisten zehn Minuten und die Antworten auf Anfragen mit Idempotenz-Schlüssel 24 Stunden im globalen Key-Value-Speicher von Cloudflare und zählt die Anfragen pro Workspace für das Rate-Limit. formfeed listen leitet Webhook-Ereignisse über ein Objekt in Cloudflares EU-Jurisdiktion weiter, das nichts speichert |
| Resend (USA, EU-Standardvertragsklauseln) | Empfängeradressen und der Text von Transaktionsmails | |
| Abrechnung | Stripe (Merchant of Record) | Rechnungskontakt, Rechnungen, Zahlungsdaten |
| Fehler und Verfügbarkeit | Sentry (EU-Datenregion), Better Stack | Fehlerspuren ohne Dokumentinhalte, Prüfungen öffentlicher Endpunkte |
Die vollständige Liste mit Änderungsbenachrichtigung ist die Seite der Unterauftragsverarbeiter.
Was die EU verlässt
Gerenderte Dokumente verlassen die EU nur, wenn der Workspace ein eigenes Ziel einrichtet
(eigener Speicher): Dann kopiert der Render-Dienst in Frankfurt jedes Dokument in
den Bucket, den der Workspace verbunden hat, wo auch immer dieser liegt. Dieses Ziel wählen Sie. Ihr eigener
Bucket ist kein Unterauftragsverarbeiter von Formfeed, die Liste der Unterauftragsverarbeiter nennt ihn
deshalb nicht. Dasselbe gilt für Ihre Webhook-Endpunkte: Ein Ereignis trägt das Rendering mit seinem
Download-Link und Ihrem meta und geht dorthin, wohin die URL des Endpunkts zeigt.
Diese Teile sind nicht auf die EU beschränkt:
- Das Gateway auf Cloudflares Edge kann außerhalb der EU ausgeführt werden, wenn der Aufrufer außerhalb der EU ist. Es leitet die Anfrage nach Frankfurt weiter, ohne die Nutzlast zu speichern, und hält die in der Tabelle genannten kurzlebigen Caches im globalen Key-Value-Speicher von Cloudflare.
- Konto-E-Mails gehen über Resend und Zahlungsdaten über Stripe, unter Standardvertragsklauseln.
Hosts
| URL | Verhalten |
|---|---|
https://api-eu.formfeed.dev/v1 | Die EU-Region. Nutzen Sie diese. |
https://api.formfeed.dev/v1 | Dasselbe Gateway. Es wählt keine Region nach dem Host: Jede Anfrage rendert in der Region des Workspace ihres Schlüssels, und das ist die EU |
https://api-us.formfeed.dev/v1 | Reserviert für eine US-Region, die nicht geöffnet ist. Heute ist auch er dasselbe Gateway und behandelt eine Anfrage genau wie api-eu, in der EU |
Die Region eines Renderings ist die seines Workspace. Die EU ist die einzige Region, die rendert; lassen Sie
das Feld region einer Anfrage deshalb weg. Die SDKs und die CLI nutzen standardmäßig den EU-Host.
Aufbewahrung und Löschung
- Ausgaben werden für die Aufbewahrungsfrist des Plans aufbewahrt (1 Tag im Free-Plan, 30 Tage im Starter-Plan, 365 Tage im Pro-Plan, ohne Limit im Business-Plan) oder für die kürzere Frist, die ein Workspace unter Einstellungen → Aufbewahrung der Ausgaben (Tage) oder eine Anfrage mit
expires_insetzt. Ausgaben von Test-Renderings werden höchstens 24 Stunden aufbewahrt.DELETE /renders/{id}/outputsentfernt sie früher (von der Kommandozeileformfeed renders delete-outputs <id>). Siehe Download-Links, Zugriff und Aufbewahrung. - Batch-Zips (
"zip": true) werden gelöscht, wenn die erste Datei darin abläuft, sodass kein Dokument in einem Zip länger bleibt als seine eigene Aufbewahrungsfrist. Werden die Dateien eines Renderings früher gelöscht (DELETE /renders/{id}/outputs), bleibt ihre Kopie bis dahin im Zip. Der Download-Link eines Zips läuft nach höchstens sieben Tagen ab. - Das zusammengesetzte HTML eines fehlgeschlagenen Renderings, das seine Daten enthält, wird 24 Stunden aufbewahrt, damit das Render-Protokoll zeigen kann, was fehlgeschlagen ist.
- Einträge im Render-Protokoll behalten Metadaten (Status, Zeiten, Einheiten, Vorlagenversion,
meta, den Nachweis der Reproduzierbarkeit), nie das Dokument. Sie werden 13 Monate aufbewahrt: Einmal im Monat werden ältere Einträge gelöscht, mit den Batch-Jobs, zu denen sie gehörten. Ein Eintrag, dessen Datei noch gespeichert ist, bleibt so lange wie die Datei, bei einem Plan ohne Aufbewahrungsgrenze also unter Umständen dauerhaft. Die Summen jedes Abrechnungszeitraums bleiben, aberGET /usagenennt die Tage und Vorlagen eines Zeitraums nur, solange seine Einträge existieren. - Anfrage-Nutzlasten werden nur aufbewahrt, wenn der Workspace in seinen Einstellungen Render-Anfragen aufbewahren einschaltet: standardmäßig aus, 24 Stunden ab Starter, bis zu 7 Tage ab Pro. Sie ermöglichen es, ein Rendering aus dem Render-Protokoll erneut auszuführen. Ein asynchrones Rendering hält seine Anfrage nur, solange es in der Warteschlange wartet; ist die Einstellung aus, wird sie gelöscht, sobald das Rendering fertig ist. Passwörter der Nachbearbeitung werden nach dem Rendering nie aufbewahrt. Jeder Lesezugriff auf eine aufbewahrte Anfrage (
GET /renders/{id}/input,formfeed renders pull, die App) wird ins Audit-Log geschrieben; siehe Ein fehlgeschlagenes Rendering nachstellen. - Kopien in einem Bucket, den der Workspace verbunden hat (eigener Speicher), liegen außerhalb der Aufbewahrung von Formfeed: Formfeed löscht sie nie, und das Löschen von Ausgaben, eines Workspace oder der Organisation lässt sie, wo sie sind. Das Löschen eines Workspace oder der Organisation vernichtet die gespeicherten Zugangsdaten des Buckets sofort.
- Das Löschen eines Workspace widerruft seine Schlüssel sofort; sein Inhalt wird nach 30 Tagen entfernt. Das Löschen einer Organisation legt sie sofort still und entfernt ihre Daten 30 Tage später, Backups innerhalb weiterer 30 Tage.
Verträge
Ein Auftragsverarbeitungsvertrag (Art. 28 DSGVO) ist Teil jedes bezahlten Plans und für Free-Workspaces auf Anfrage erhältlich: formfeed.dev/legal/dpa. Die Sicherheitsmaßnahmen sind unter formfeed.dev/security beschrieben.