Abruf von Ereignissen über Event Log
Die Ereignisse eines Vorgangs können über den Endpunkt GET /v1/cases/{caseId}/events
des Zustelldienstes abgerufen werden.
Der Zustelldienst liefert das Ereignisprotokoll (Event Log) zurück, eine Liste mit allen Ereignissen eines Vorgangs.
Der Event Log enthält die Ereignisse bzw. Statusübergänge.
Die Authentizität und Integrität der aus dem Event Log abgerufenen Ereignisse SOLLTE bei jedem Abruf geprüft werden. Die notwendigen Prüfungen sind im Artikel Prüfung eines Security Event Token beschrieben.
Über die Queryparameter offset
und limit
können Sie das Gesamtergebnis in kleinere Listen aufteilen.
Die maximale Anzahl der Ereignisse (Events) in einer Teilliste (limit
) beträgt 500 Events.
Der Zustelldienst sendet die Ereignisse als SETs (Security Event Tokens) zurück.
- .NET (SDK)
- curl
Mit dem .NET-SDK erfragen Sie nicht das Ereignisprotokoll (EventLog) eines Vorgangs vom Zustelldienst.
Sie erfragen vielmehr mit der Methode GetStatusForSubmissionAsync()
der Klasse Sender
direkt den Status einer gesendeten Einreichung:
sender.GetStatusForSubmissionAsync(sentSubmission);
Sie finden auf der Seite Einreichung versenden ein Beispiel für das Senden einer Einreichung.
Zudem finden Sie auf der Seite Einreichung anlegen ein Beispiel für das Anlegen einer Einreichung.
Der Quellcode oben ist ein Auszug aus dem Projekt ConsoleAppExample
,
das im Repository Codebeispiele - examples der FITKO hinterlegt ist.
Eine Beschreibung des .NET-SDKs finden Sie im Hauptmenü unter "SDKs > .NET-SDK".
$ SUBMISSION_API=https://submission-api-testing.fit-connect.fitko.dev
$ JWT_TOKEN=eyJhbGciOiJIUzI1NiJ9.eyJJc3N1Z...NL-MKFrDGvn9TvkA
$ CASE_ID=452b5ee6-35df-441a-bd39-6141723cf914
$ curl \
-H "Authorization: Bearer $JWT_TOKEN" \
-H "Content-Type: application/json" \
-X GET "$SUBMISSION_API/v1/cases/$CASE_ID/events"
{
"offset": 0,
"count": 3,
"totalCount": 3,
"eventLog": [
"eyJraWQiOiJkZDA0MDllNS00MTBlLTRkOTgtODViNi1mODFhNDBiOGQ5ODAiLCJ0eXAiOiJzZWNldmVudCtqd3QiLCJhbGciOiJQUzUxMiJ9.ewogICJpc3MiOiAiaHR0cHM6Ly9hcGkuZml0a28uZGUvZml0LWNvbm5lY3QvIiwKICAiaWF0IjogMTYyMjc5NDMxOSwKICAianRpIjogIkVEQ0ZCRjIxLTVCMTYtNEQwNi05OUQwLURDNEMyNkY0RkI5RSIsCiAgInN1YiI6ICJzdWJtaXNzaW9uOkY2NUZFQUIyLTQ4ODMtNERGRi04NUZCLTE2OTQ0ODU0NUQ5RiIsCiAgImV2ZW50cyI6IHsKICAgICJodHRwczovL3NjaGVtYS5maXRrby5kZS9maXQtY29ubmVjdC9ldmVudHMvY3JlYXRlLXN1Ym1pc3Npb24iOiB7fQogIH0sCiAgInR4biI6ICJjYXNlOkY3M0QzMEM2LTg4OTQtNDQ0NC04Njg3LTAwQUU3NTZGRUE5MCIKfQ.TQBR_CBsoULi3cGaGg4oqFelQ9GVn8G-cNokzTVDZgZf4D7x_8wjsDcgTd0aamiy8ErlnV1xoAoDcPw81vajrBCaYgf9KI4sNhsW78jlDi_ywK04YhFbkvloDMioGf_5zCNTBreN9bTnU_VYuWB23R_YrYGi2exONft-ZReN_crEvDaKLdG9hqnaCRFwKJ1t8TbLvIyBKLqQYEqP0Oh6m3WA9IRz3EB41S-PZgJCIzmz_GvXdRvw_1B8A_Q7aHr2SQ6Dc-c406UJ5P_7FuypE6tLyuYf5GkmFZSauQ51H4LLl8pLrsW2PJJ28cMavOEx0AWoRLwB7yKK5bAGtcALWw-0W7Wmw1QEX3DZGTpXbEUM0U_7iXeEFrdtfCCbFPMVbmlK-b66IyKK_6yeaOAEjQvCUOrALfa2sSOS6RWiNOKyA1l1L29VoIBXgQ8np72NMV8-AP7UnQO1NPBghBM6LW6tcXceWeP8ayy4eEaZQ639pqH4TJRRkQqnuoTeADpYL9sX2hM9173O4abWiE-Z8zW2AQ1jhUvVXJ8w9ddtMIyjZJZOqoy3TbHxUYpn4UqbedlDyahpUiKCT7-qU2jOjeXAXEPQvWlSzLigNtFvYCEq-fOe1lpeNktoQQrC3Y-szk2vNj5fT_KmJY1QG1bhyrUMoGbA-pe45c-FcCE7ErQ",
"eyJraWQiOiJkZDA0MDllNS00MTBlLTRkOTgtODViNi1mODFhNDBiOGQ5ODAiLCJ0eXAiOiJzZWNldmVudCtqd3QiLCJhbGciOiJQUzUxMiJ9.ewogICJpc3MiOiAiaHR0cHM6Ly9hcGkuZml0a28uZGUvZml0LWNvbm5lY3QvIiwKICAiaWF0IjogMTYyMjc5NTczMiwKICAianRpIjogIjkwRDlCMjlELUMwNUYtNEYwMy04MUMwLUUyMzMxMTZDNTZEOSIsCiAgInN1YiI6ICJzdWJtaXNzaW9uOkY2NUZFQUIyLTQ4ODMtNERGRi04NUZCLTE2OTQ0ODU0NUQ5RiIsCiAgImV2ZW50cyI6IHsKICAgICJodHRwczovL3NjaGVtYS5maXRrby5kZS9maXQtY29ubmVjdC9ldmVudHMvc3VibWl0LXN1Ym1pc3Npb24iOiB7fQogIH0sCiAgInR4biI6ICJjYXNlOkY3M0QzMEM2LTg4OTQtNDQ0NC04Njg3LTAwQUU3NTZGRUE5MCIKfQ.THmHiZoYEMyyWCu2R4nEJtvgtB5PF0KAqtfu_Z-yVjfjSkXW7TtZnX96UAeCGsjpxkBJvXTXAgSB5n378KjZXebAtI7nbFE0gYgt3fwmxmpJitA-4e8v6KfvhwNcdqJHLKDzYRMq_yw7UiwLx1Cxz6nBiOKfR4piL707muKXTgD7DuP0kv-c6V9dGNQ4KzT_sJP5zDWogEzGWSVaLaJZrmDZHoUZMZ6C9kI7SvC-A7Q0ROkFznU_cpjjEAIG74_YCiICvjr91ueQWTdNyc1DBvxpEBtBWq6nWPTg0d91iQlhPUgNKbmC4QtG_tFctTYhX7stO-JbL-4VnAQjQHD5uw4SvvpPrTN4Z3Wz2IjMm8-ClI9imGKThfAqwTaWtJv7Bn_FDiN_nEuGyN2of-M2vZWa-DlZ2iPFct6ESp9PumaO_pIF5cUrX4IBoe3fcmg788-ClReytCMjD13uPVOVoIb3yimUdupOUROxb3MITowHP2-YG1gWqhQp22XSQXktugDHWezAuN0xuimwAJq_OvyoDxj4lsnn6BQkqZYdqD0hJghwqZIytg8PlIi76Cdvh8NFgVw48xZ0WUOFvBPJO2Qe8PiTSVX_P9CIIWxsKlYwg8vJ226qi0eYfD70ynjBDQIPmsOOSut6bFKgOLBFa9ZvCy6HmhyLa-EsgLhS4uc",
"eyJraWQiOiJkZDA0MDllNS00MTBlLTRkOTgtODViNi1mODFhNDBiOGQ5ODAiLCJ0eXAiOiJzZWNldmVudCtqd3QiLCJhbGciOiJQUzUxMiJ9.ewogICJpc3MiOiAiaHR0cHM6Ly9hcGkuZml0a28uZGUvZml0LWNvbm5lY3QvIiwKICAiaWF0IjogMTYyMjc5NjUzMiwKICAianRpIjogIjBCRjZEQkY2LUNFN0UtNDRBMy04ODlGLTgyRkU3NEMzRTcxNSIsCiAgInN1YiI6ICJzdWJtaXNzaW9uOkY2NUZFQUIyLTQ4ODMtNERGRi04NUZCLTE2OTQ0ODU0NUQ5RiIsCiAgImV2ZW50cyI6IHsKICAgICJodHRwczovL3NjaGVtYS5maXRrby5kZS9maXQtY29ubmVjdC9ldmVudHMvYWNjZXB0LXN1Ym1pc3Npb24iOiB7fQogIH0sCiAgInR4biI6ICJjYXNlOkY3M0QzMEM2LTg4OTQtNDQ0NC04Njg3LTAwQUU3NTZGRUE5MCIKfQ.blxz8Tw_Sl8_tomcqxezamX_DVGyGiu61iYGv3mA3yVLLSDlPscjcHm_MCNm5iq-ODUk-FCW1ljOexN2czZJic8wvLhWhcUt8U2kkkjis-CWz4oqhuB4ynAj7Yyn4H4xkLoH7Y6k9pqW9P2mN7984o_578mJJ4mQSNEGcPr_BDbRc2nUKcupG7iS-hx6VTjrRTP7LGPyOblDB8oL_QyT9qY0US7PT35QgiraUSK3RWhDpj6C0I4bOV5cQeSqlXT2xIfeO3sUPeWLYVmGjuB8QWvDsniKz6JqRN-v39FrAppsOufdiRim36wtBZt9o-3txjtz5wu0_eSfjOueGJbfqAeWsbd2TYwZtL-7Z-MPfoe3XInDNmmTfxo4KXkF1GkRnGnjniwrWBHeh18A04NNHYcX-vsoijEreqDN2lEKwks3pDK5Twe5O9RxJ0cYB8oeKB55rJzs15pfla69qVn9zFvCAc_ji_9WaAa_mIG0zimMucG3qA0KrUww88FaS4heh5-Gs1Ik35QoUOCCa7ZMJMKxYArFCgUqHw-gX60U5mp4hy7tVe3hD-RxIRnlTIkEkHgDGmslVc1t8fC9oPgljQirPcTIeWhVyLmk6rJLgR5nqizujz3hDUCdBuRF43fS6qedmYfHq1MyakJzEFe2ht1rpGw4ftAt0kcOBOf2jyQ"
]
}
Im Ereignisprotokoll (Event Log) dieses Vorgangs sind drei SETs (Security Event Token) eingetragen. Das dritte SET des Beispiels lautet nach der Entschlüsselung (im Klartext):
{
"$schema": "https://schema.fitko.de/fit-connect/set-payload/1.0.0/set-payload.schema.json",
"jti": "8538165b-9ce3-4097-871d-5b9581a3b4d9",
"iss": "40847c29-06aa-40e2-bf28-c29884c694c4",
"iat": 1622796532,
"sub": "submission:02bf1d9f-282d-4abf-810a-c4104baf0afe",
"txn": "case:452b5ee6-35df-441a-bd39-6141723cf914",
"events": {
"https://schema.fitko.de/fit-connect/events/accept-submission": {
"authenticationTags": {
"metadata": "XFBoMYUZodetZdvTiFvSkQ",
"data": "UCGiqJxhBI3IFVdPalHHvA",
"attachments": {
"0b799252-deb9-42b0-98d3-c50d24bbafe0": "rT99rwrBTbTI7IJM8fU3El",
"25abf553-0e53-43b9-a14a-1581b32a9ee5": "i7226HEB7IchCxNuh7lCiu",
"046a9fa5-bed6-494b-aab6-d41056c6db79": "d48LxeolRdtFF4nzQibeYO"
}
}
}
}
}
In einem Security Event Token (SET) sind die folgenden Informationen enthalten:
$schema
: URI des zugrunde liegenden JSON Schemas. Mit diesem kann der SET Payload geprüft werden.jti
(JWT ID): Er hat die eindeutige ID8538165b-9ce3-4097-871d-5b9581a3b4d9
iss
(Issuer): Er wurde vom Empfänger des Zustellpunktes (Destination)40847c29-06aa-40e2-bf28-c29884c694c4
ausgestellt.iat
(Issued At): Er wurde am 04.06.2021 um 10:48:52 (Unixzeit 1622796532) aufgezeichnetsub
(Subject): Er betrifft die Einreichung02bf1d9f-282d-4abf-810a-c4104baf0afe
txn
(Transaction Identifier): Die Submission gehört zur Vorgangsreferenz (Case)452b5ee6-35df-441a-bd39-6141723cf914
events
: Die Submission wurde akzeptiert (accept-submission
)
Aus dem Feld events
des SETs im Beispiel oben lässt sich ableiten,
dass der aktuelle Status der Einreichung in diesem Vorgang (Case) accepted
ist (aufgrund des Ereignisses accept-submission
).
Der Zeitpunkt des Übergangs war 10:48:52, am 04.06.2021.
SETs sind signiert
Da alle SETs im Event Log signiert sind, kann diese Signatur überprüft werden. Die Überprüfung ist im Artikel Prüfung eines Security Event Token (SET) beschrieben.
Abruf von Ereignissen zu einer Einreichung bzw. zu einer Antwort
Seit Version 1.7.0 der Submission API können auch die Ereignisse zu einer bestimmten Einreichung
über den Endpunkt GET /v1/submisisons/{submisisonId}/events
bzw. zu einer Antwort über den Endpunkt GET /v1/replies/{replyId}/events
ausgelesen werden.
Die neuen Endpunkte verhalten sich analog zum bereits beschriebenen Endpunkt zum Abruf sämtlicher Ereignisse eines Vorgangs, liefern aber bloß die Ereignisse zurück, die die entsprechende Einreichung bzw. Antwort betreffen. Die Struktur der gelieferten Ereignisse entspricht dabei exakt der des existierenden Endpunkts.