Compute: Summen, Durchschnitte und Mediane über verschlüsselte Tabellen und Formulare, direkt im Browser
Ein Ordner mit Tabellen oder Formularen. Compute liest die Dateien in Ihrem Browser, rechnet sie zusammen oder listet einen Wert pro Datei und speichert nur das Ergebnis. Der Server sieht keine Daten.
Ein Ordner voller Tabellen oder Formulare endet meist auf dieselbe Weise. Jemand öffnet jede Datei, überträgt eine Zahl in eine Sammeltabelle und verschickt diese Sammeltabelle. Auf einer Ende-zu-Ende-verschlüsselten Plattform wird dieser Schritt schwieriger. Die einzige Stelle, die das Zusammenrechnen übernehmen könnte, ist der Server, und der kann keine einzige Zelle lesen. Compute ist unsere Antwort darauf: Gerechnet wird in Ihrem Browser, über Dateien, die nur dort entschlüsselt werden. Nur das Ergebnis verlässt Ihr Gerät.
Dieser Artikel erklärt, was ein Compute-Job ist, was er berechnen kann und was nicht, wie er läuft, ohne dass ein Server je Klartext verarbeitet, und für welche Aufgaben er gedacht ist.
Was ein Job ist
Ein Compute-Job ist eine gespeicherte Definition aus drei Teilen.
- Eine Quelle. Ein Ordner in Ihrem Vault samt Unterordnern und ein Dateiformat: Excel und CSV, also .xlsx, .xls, .csv und .ods, oder PDF-Formulare mit ausfüllbaren Feldern.
- Operationen. Jede Operation hat einen Namen, eine Funktion und ein Ziel. Als Funktion stehen „Summe“, „Durchschnitt“, „Median“, „Anzahl“, „Min“ und „Max“ zur Wahl, außerdem „Fehlend / Leer“, das die Dateien zählt, in denen der Wert fehlt, und „Wert (unverändert)“. Diese letzte Funktion übernimmt die Zelle oder das Feld so, wie es ist, auch Text, und listet den Inhalt pro Datei auf, statt ihn zusammenzurechnen. Das Ziel ist eine Spalte eines Tabellenblatts, ein Formularfeld oder eine kleine Formel in Tabellenschreibweise wie
=SUM(B2:E2)oder=C10/C9*100, mit Zellbezügen, Bereichen und den vier Grundrechenarten. Eine Spalte können Sie über ihren Buchstaben oder ihre Überschrift ansprechen. Eine einzelne Zelle wieE8geht ebenfalls. - Eine Ausgabe. Die Ergebnisse auf dem Bildschirm, eine CSV-Datei, die verschlüsselt in einem Ordner Ihrer Wahl landet, oder eine JSON-Nachricht an einen Webhook.
Auf den ersten Lauf kann ein zweiter folgen. Er enthält abgeleitete Operationen, die über die Ergebnisse des ersten Laufs rechnen und sie beim Namen ansprechen, etwa {{output}} / {{capacity}} * 100 für einen Auslastungsgrad über alle Dateien. So liefert ein Job eine Kennzahl statt einer Spalte roher Summen.
Auch Job-Definitionen sind Dokumente, und wir behandeln sie so. Name, Operationen und Name der Ausgabedatei sind mit einem eigenen Schlüssel verschlüsselt. Dieser Schlüssel ist für Sie und für die Kolleginnen und Kollegen versiegelt, mit denen Sie den Job teilen. Der Server speichert einen versiegelten Datenblock und den Ordner, auf den er verweist. Im Audit-Log steht, dass ein Job gelaufen ist, unter einem maskierten Namen.

Wie ein Lauf abläuft
Sie klicken auf „Ausführen“, und Ihr Browser erledigt den ganzen Job.
- Er listet die Dateien im Quellordner auf und lädt sie nacheinander herunter. Jede entschlüsselt er mit Schlüsseln, die Sie bereits haben, genau wie die Dateiansicht.
- Eine Tabelle öffnet er als Arbeitsmappe im Arbeitsspeicher und liest auf dem angegebenen Blatt die Spalte aus oder wertet die Formel aus. Bei einem PDF-Formular liest er die Formularfelder: Ein Textfeld wird zur Zahl, ein Kontrollkästchen zu eins oder null, eine Auswahlliste zum gewählten Wert.
- Pro Datei und Operation behält er einen Wert, überschreibt die entschlüsselten Bytes mit Nullen und geht zur nächsten Datei.
- Am Ende rechnet er die Werte aller Dateien mit der gewählten Funktion zusammen und zeigt eine Tabelle: die Summe, die Zahl der Dateien mit Wert, Minimum, Maximum und Durchschnitt. Lassen Sie die Aufschlüsselung eingeschaltet, kommt pro Datei eine Spalte hinzu. Dann sehen Sie, welche Datei was beigetragen hat und welche gar nichts. Eine Operation mit „Wert (unverändert)“ hat keine Summe. Ihre Zeile zeigt einfach, was in jeder Datei stand, ob Abteilungsname, Berichtszeitraum oder Zahl.
Abgesehen von den Downloads, die der Server bei jeder gewöhnlichen Dateiansicht ebenso ausliefert, berührt dieser Ablauf den Server nicht. Der Server erfährt, dass Sie dreißig Dateien abgerufen haben, und, falls Sie die Ausgabe speichern, dass eine neue verschlüsselte Datei hinzugekommen ist. Eine Zahl erfährt er nicht.

Wohin das Ergebnis geht
Beim Ergebnis muss das Design am klarsten festlegen, was geschieht. Denn ein Aggregat ist Inhalt, den Sie aus Inhalt erzeugt haben.
- Auf dem Bildschirm bleibt es im Browser-Tab, wie eine Vorschau.
- In einem Ordner gespeichert wird es zu einer CSV-Datei. Der Browser verschlüsselt sie vor dem Upload mit einem neuen Dateischlüssel. Das Layout legt der Job fest. Die „Zusammenfassung (eine Zeile pro Operation)“ beginnt mit einem Kopf, der angibt, wie viele Dateien gefunden wurden, wie viele vollständig waren und in wie vielen Werte fehlten, darunter folgt eine Zeile pro Operation. Die „Tabelle (eine Zeile pro Datei)“ enthält eine Zeile pro Quelldatei und eine Spalte pro Operation. Diese Form brauchen Sie, wenn der Job Werte herausziehen statt zusammenrechnen soll. In beiden Fällen ist das Ergebnis eine Datei wie jede andere: teilbar, versioniert, über den Namen auffindbar, löschbar.
- An einen Webhook gesendet verlässt es Ihr Gerät im Klartext. Es geht als JSON-Body an die konfigurierte URL. Der Body enthält die Namen der Operationen, die Aggregate und die Werte pro Datei, im Tabellen-Layout stattdessen einen Eintrag pro Datei mit ihren Werten. Das ist der einzige Weg, auf dem Zahlen unverschlüsselt reisen. Es gibt ihn für die Integrationen, die wir in Make.com and Zapier: automations that never see your files (auf Englisch) beschreiben. Nutzen Sie ihn nur, wenn Sie dem empfangenden System diese Zahlen anvertrauen.

Zeitplanung ohne rechnenden Server
Ein Workflow kann „Berechnungsjob ausführen“ als Aktion haben, zum Beispiel jedes Mal, wenn eine Datei im Eingangsordner ankommt, oder am Monatsersten. Der Server kann den Job nicht ausführen. Er reiht den Lauf deshalb ein und benachrichtigt die Person, der der Job gehört. Wenn sie Sapherbox das nächste Mal öffnet, wartet der ausstehende Lauf oben auf der Seite „Berechnung“. Ein Klick führt ihn in diesem Browser mit den Schlüsseln dieser Person aus. Ein eingereihter Lauf ist eine Bitte, nie eine Berechnung. Gerechnet wird immer erst in der offenen Sitzung eines Menschen.
Wofür es gedacht ist
Compute passt zu jedem Ablauf, in dem viele gleich aufgebaute Dateien jeweils ein paar Zahlen enthalten und jemand diese Zahlen über alle Dateien hinweg braucht, ohne die Dateien herumreichen zu dürfen oder zu wollen.
- Umfragen und Datenabfragen. Ein Verband, eine Aufsichtsbehörde oder eine Konzernmutter schickt ein Formular oder eine Vorlage an ihre Mitglieder. Jedes Mitglied legt eine Datei in einen Eingangsordner, und die Koordination braucht Summen, Durchschnitte und Streuung: die installierte Leistung einer Branche, die Mitarbeiterzahl aller Tochtergesellschaften, den Energieverbrauch aller Standorte. Die Rückläufe bleiben in einem Ordner, den nur die Koordination öffnen kann. Die Zusammenfassung ist eine CSV-Datei, die der Vorstand lesen kann.
- Regelmäßige Berichte nach derselben Vorlage. Monatliche Kostenberichte pro Abteilung, quartalsweise KPI-Blätter pro Geschäftsbereich, wöchentliche Produktionsprotokolle pro Werk. Ein Job, der in jeder Periode über die neuen Dateien läuft, liefert die konsolidierten Zahlen, ohne dass jemand eine Sammeltabelle von Hand pflegen muss.
- Vollständigkeitsprüfungen. Die Funktion „Fehlend / Leer“ zählt die Dateien, in denen ein Wert fehlt. Schon der erste Lauf einer Datenabfrage zeigt also, wer welches Feld nicht ausgefüllt hat, bevor Sie irgendjemandem hinterhertelefonieren.
- Ein Verzeichnis aus einem Ordner voller Rückläufe. Die Funktion „Wert (unverändert)“ macht mit dem Tabellen-Layout aus einem Ordner voller Formulare eine Liste: eine Zeile pro Datei mit dem Namen der antwortenden Stelle, dem Berichtszeitraum, einer Referenznummer und den Zahlen daneben, ohne dass Sie eine einzige Datei öffnen. Die Liste ist selbst eine verschlüsselte CSV-Datei, und die Rückläufe bleiben, wo sie sind.
- Prüfungen und Reviews über einen Dokumentenbestand. Wer als Prüfer Zugriff auf einen Ordner mit Rechnungen hat, die als Tabellen exportiert wurden, kann Beträge summieren, Rechnungspositionen zählen oder den größten und kleinsten Betrag finden, ohne eine einzige Datei auf den eigenen Rechner zu laden. Das Audit-Log zeigt, dass der Job gelaufen ist, nicht, was er gefunden hat.
- Abgeleitete Kennzahlen. Ein zweiter Lauf kann über die Ergebnisse des ersten rechnen und sie beim Namen ansprechen, etwa für einen Auslastungsgrad aus Gesamtleistung und Gesamtkapazität oder für Stückkosten aus Gesamtkosten und Gesamtmenge. Der Job liefert die Zahl, nach der jemand fragt, und nicht die Spalten, aus denen sie entstanden ist.
- Daten an ein anderes System liefern. Mit der Webhook-Ausgabe gehen die Aggregate eines Laufs direkt an ein Reporting-Werkzeug, eine Tabelle oder ein Ticket, wie in Make.com and Zapier: automations that never see your files beschrieben. Die Quelldateien verlassen den Vault dabei nie.
Allen Fällen ist gemeinsam: Es kommt auf die Zahlen an, nicht auf die Dateien, zumindest für die Personen, die die Zahlen brauchen. Mit Compute bleiben die Dateien Ende-zu-Ende-verschlüsselt dort, wo sie sind. Nur die Zahlen bewegen sich. Eine Job-Definition lässt sich außerdem als Datei exportieren und in einen anderen Tenant importieren. So kann eine Organisation ihren Mitgliedern die Vorlage und den passenden Job gemeinsam übergeben.
Was es nicht kann
- Zusammengerechnet werden nur Zahlen. Summe, Durchschnitt, Median, Minimum und Maximum brauchen pro Datei eine Zahl. Text und Datumsangaben werden übersprungen. „Wert (unverändert)“ übernimmt zwar Text, listet aber nur auf und rechnet nie zusammen. „Fehlend / Leer“ ist die einzige Funktion, die einen nicht numerischen Zustand auswertet.
- Eine Spalte, ein Blatt pro Operation. Ein Compute-Job verknüpft keine Dateien miteinander und schlägt keine Werte über mehrere Blätter nach. Muss eine Zahl aus mehreren Zellen berechnet werden, erledigt das die Formel innerhalb eines Blatts. Für Joins gibt es den Reiter „Katalog & Abfrage“ daneben: Er lädt Ordner mit CSV-Dateien als Tabellen in eine SQL-Engine im Browser, dort lassen sich die Tabellen frei verknüpfen, gruppieren und filtern, und das Ergebnis wird auf dieselbe Weise verschlüsselt gespeichert. Kataloge lesen nur CSV; Tabellenkalkulationen und PDF-Formulare bleiben Sache der Compute-Jobs.
- Eine kleine Formelsprache. Summe, Durchschnitt, Anzahl, Minimum und Maximum über Bereiche, dazu Zellbezüge und Grundrechenarten. Nichts, was über das Blatt hinausgreift, keine Bedingungen, keine Textfunktionen.
- Es braucht einen Browser. Ein Lauf lädt jede Datei im Quellordner auf das ausführende Gerät herunter und entschlüsselt sie dort. Ein Ordner mit dreihundert Arbeitsmappen kostet ein paar Minuten und etwas Bandbreite. Ein Ordner mit fünfzigtausend ist keine Aufgabe für einen Compute-Job, und auch ein geplanter Lauf wartet auf einen Menschen.
- Gescannte Formulare zählen nicht. Ein PDF-Formular wird über seine Felder gelesen. Ein Scan eines ausgefüllten Formulars ist ein Bild und liefert nichts. Dieselbe Grenze gilt für die Klassifizierung und für die KI auf dem Gerät.
- Ein Webhook erhält Klartext. Das stand schon oben, und es lohnt sich, es zu wiederholen.
Warum das zu einer verschlüsselten Plattform passt
Eine Auswertung auf dem Server wäre einfacher zu bauen gewesen. Sie hätte aber genau das vorausgesetzt, was der Rest des Produkts ablehnt: einen Server, der Schlüssel hält. Wir rechnen dort, wo die Dokumente ohnehin lesbar sind, im Browser der Nutzerin oder des Nutzers. So bleibt das Versprechen aus Was unsere Server sehen können und was nicht gültig, und die Entscheidung, wohin ein Ergebnis gehen darf, liegt bei der Person, die es erzeugt hat. Das ist dasselbe Verantwortungsmodell wie beim Teilen: Wer den Job ausführt, ist für das verantwortlich, was mit der Ausgabe geschieht.
Fragen?
Haben Sie einen Ordner mit Rückläufen, Rechnungen, Formularen oder Berichten, deren Zahlen heute jemand von Hand in eine Sammeltabelle überträgt? Dann prüfen wir gern mit Ihnen, ob ein Compute-Job diesen Schritt ersetzen kann, und stellen Ihnen die Beispieldaten für das Umfrage-Szenario und die passenden Job-Definitionen zur Verfügung. Schreiben Sie an hello@sapherbox.com.