API
Zwei APIs
Abschnitt betitelt „Zwei APIs“Zwei verschiedene Dinge werden hier API genannt, und sie sind nicht dieselbe Oberfläche.
Die lokale API gehört zum Desktop-Begleitprogramm tcc. Der Dienst läuft
auf deiner eigenen Maschine und liefert eine HTTP-Schnittstelle auf der
Loopback-Adresse aus. Alles, was du im Begleitprogramm tun kannst — drei Wörter
prüfen, eine Datei siegeln, Verbindungen auflisten, eine Organisation verwalten
— hat eine Route. Dazu gehört ein eingechecktes OpenAPI-Dokument, aus dem diese
Seiten geschrieben sind, und der Dienst liefert dasselbe Dokument an aufrufende
Programme aus.
Die Plattform-API ist die Serverseite: der gehostete Dienst, mit dem die Apps sprechen. Sie ist nicht veröffentlicht und trägt überhaupt keine nutzerspezifischen Routen — siehe unten, denn der Grund dafür ist bewusst gewählt und keine Lücke.
Was dieser Abschnitt abdeckt
Abschnitt betitelt „Was dieser Abschnitt abdeckt“Diese Seiten decken nur die lokale API ab. Sie beschreiben, wo der Dienst lauscht, wie sich ein aufrufendes Programm authentifiziert, wie die Antworten aussehen und jeden der 79 dokumentierten Pfade.
Sie erklären nicht das Begleitprogramm selbst. Es zu installieren, anzumelden und als Dienst laufen zu lassen, ist in den Seiten zu Begleitprogramm und Kommandozeile beschrieben.
Warum die Plattform-API fehlt
Abschnitt betitelt „Warum die Plattform-API fehlt“Der kurze Grund ist, dass sie kein veröffentlichtes Dokument, keine veröffentlichte Version und kein Stabilitätsversprechen hat, sodass Seiten darüber eine Oberfläche beschreiben würden, die niemand zu erhalten versprochen hat.
Der längere Grund ist der, der sich nicht ändern wird: Es gibt keine nutzerspezifischen Routen auf der Plattform, die man veröffentlichen könnte.
Die Frage “Wie lautet Marias Code?” auf einem Server zu beantworten würde bedeuten, dass der Server das Geheimnis hält, das den Code erzeugt. In dem Moment ist das Ende-zu-Ende-Versprechen vorbei — nicht weil jemand es missbrauchen würde, sondern weil es dann schlicht nicht mehr stimmt. Ein Server, der deine Codes lesen KANN, ist ein Server, dessen Kompromittierung die Codes von allen liest, und keine noch so sorgfältige Handhabung unsererseits ändert etwas daran, was ein Angreifer erbeuten würde.
Deshalb halten wir auf keinem Server, den wir betreiben, ein Nutzergeheimnis vor, und eine nutzerseitige Plattform-API ist etwas, das wir nicht bauen können, ohne davon abzurücken. Was die Plattform tatsächlich offenlegt, ist systemseitige Arbeit von Maschine zu Maschine, die kein persönliches Geheimnis berührt, und ein Kontoinhaber hat ohnehin keinen Zugriff darauf.
Das ist keine Lücke, die irgendwann geschlossen wird. Sollte die Plattform-API eines Tages veröffentlicht werden, wird sie denselben systemseitigen Boden abdecken und weiterhin nichts von dir enthalten.
Die Folge für eine Integration: Das Einzige, das Fragen zu den Verbindungen eines Kontos beantworten kann, ist etwas, das die Schlüssel dieses Kontos hält — das lokale Begleitprogramm. Es behält die Sitzung und die Schlüssel auf deiner eigenen Maschine, erledigt die Arbeit dort und spricht mit der Plattform nur für die Teile, die kein Geheimnis brauchen. Deshalb dokumentieren diese Seiten die lokale API, und deshalb ist sie keine zweitbeste Wahl.