#import "@preview/wrap-it:0.1.1": *

== WebApi

#figure(
  image("../../images/webapi-overview.png", width: 100%),
)

WebApi-Tokens ermöglichen externen Clients oder anderen Anwendungen des FF Ecosystems die Kommunikation mit dem FF Admin. Dabei haben WebApis Zugriff auf fast alle Daten des FF Admin, sofern die Berechtigungen gesetzt sind. 
\
\
Kategorisch ausgeschlossen ist der Zugriff auf Accountdaten und Serverinformationen wie z.B. die Version. Weiterhin hat eine WebApi keinen Zugriff auf die Endpunkte für Setup, Reset, Invite und Auth. Eine WebApi kann auch nicht auf andere WebApis und Backupds zugreifen.
\
\
Zur einfacheren Verwendung der WebApi in eigenen Anwendungen kann das NPM-Paket `@ff-admin/webapi-client` verwendet werden. 

Dieses ist unter #link("https://npm.registry.jk-effects.cloud/-/web/detail/@ff-admin/webapi-client") verfügbar.
\
\
#wrap-content(
  figure(
    image("../../images/webapi-form.png", width: 6.5cm),
  ),
)[
Eine WebApi kann mit einem Verfallsdatum erstellt werden. Dieses Ablaufdatum wird fest eingestellt, wenn eine WebApi Zugriff anfordert.

Zusätzlich wird für jede WebApi ein Token erstellt, das zur Authentifizierung der WebApi verwendet werden kann.
]

#wrap-content(
  figure(
    image("../../images/webapi-token.png", width: 6.5cm),
  ),
  align:right
)[
Unter dem Fingerabdruck-Symbol kann das Token der WebApi abgerufen werden.

Diese Token sind JWTS und können daher ohne Kenntnis der Serverkonfiguration nicht gefälscht werden.
]

Die WebApi bezieht den Zugang wie folgt:

#figure(
  image("../../images/webapi.png", width: 100%),
)
