mirror of
https://github.com/microsoft/onefuzz.git
synced 2025-06-12 01:58:18 +00:00
Create migrating-to-events-2.0.md (#3098)
* Create migrating-to-events-2.0.md * Update migrating-to-events-2.0.md
This commit is contained in:
95
docs/migrating-to-events-2.0.md
Normal file
95
docs/migrating-to-events-2.0.md
Normal file
@ -0,0 +1,95 @@
|
||||
In an effort to increase the reliability of our event and webhook delivery, we are reducing the amount of data being sent. To account for the missing data, we added a new endpoint for downloading an event's complete payload.
|
||||
|
||||
## Example
|
||||
|
||||
### Current Event format
|
||||
|
||||
Here is an example webhook in Onefuzz version 8.1
|
||||
|
||||
```jsonc
|
||||
{
|
||||
"event": {
|
||||
"container": "container-name",
|
||||
"filename": "example.json",
|
||||
"report": {
|
||||
"asan_log": "example asan log",
|
||||
"call_stack": [
|
||||
"#0 line",
|
||||
"#1 line",
|
||||
"#2 line"
|
||||
],
|
||||
"call_stack_sha256": "0000000000000000000000000000000000000000000000000000000000000000",
|
||||
"crash_site": "example crash site",
|
||||
"crash_type": "example crash report type",
|
||||
"executable": "fuzz.exe",
|
||||
"input_blob": {
|
||||
"account": "contoso-storage-account",
|
||||
"container": "crashes",
|
||||
"name": "input.txt"
|
||||
},
|
||||
"input_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
|
||||
"job_id": "00000000-0000-0000-0000-000000000000",
|
||||
"onefuzz_version": "1.2.3",
|
||||
"scariness_description": "example-scariness",
|
||||
"scariness_score": 10,
|
||||
"task_id": "00000000-0000-0000-0000-000000000000",
|
||||
"tool_name": "libfuzzer",
|
||||
"tool_version": "1.2.3"
|
||||
}
|
||||
},
|
||||
"event_id": "00000000-0000-0000-0000-000000000000",
|
||||
"event_type": "crash_reported",
|
||||
"instance_id": "00000000-0000-0000-0000-000000000000",
|
||||
"instance_name": "example",
|
||||
"webhook_id": "00000000-0000-0000-0000-000000000000",
|
||||
"sas_url": "https://example.com", // <------ THIS IS NEW
|
||||
"version": "1.0" // <------ THIS IS NEW
|
||||
}
|
||||
```
|
||||
|
||||
Notice the `sas_url` and `version` properties are new.
|
||||
|
||||
### Events 2.0 sent event format
|
||||
|
||||
When events 2.0 is released, the above event will be _sent_ like this:
|
||||
|
||||
```json
|
||||
{
|
||||
"event": {
|
||||
"container": "container-name",
|
||||
"report": {
|
||||
"input_blob": {
|
||||
"account": "contoso-storage-account",
|
||||
"container": "crashes",
|
||||
"name": "input.txt"
|
||||
},
|
||||
"job_id": "00000000-0000-0000-0000-000000000000",
|
||||
"task_id": "00000000-0000-0000-0000-000000000000",
|
||||
}
|
||||
},
|
||||
"event_id": "00000000-0000-0000-0000-000000000000",
|
||||
"event_type": "crash_reported",
|
||||
"instance_id": "00000000-0000-0000-0000-000000000000",
|
||||
"instance_name": "example",
|
||||
"webhook_id": "00000000-0000-0000-0000-000000000000",
|
||||
"sas_url": "https://example.com",
|
||||
"version": "2.0",
|
||||
"expiration_date": "01/01/2025"
|
||||
}
|
||||
```
|
||||
|
||||
You'll notice many fields are omitted.
|
||||
|
||||
**`event_id`, `event_type`, `instance_id`, `instance_name`, `webhook_id`, `sas_url`, `version`, `expiration_date` WILL ALWAYS BE INCLUDED**
|
||||
|
||||
### How to retrieve the full event payload
|
||||
|
||||
There are 3 options for retrieving the full event payload as it would have been sent in events 1.0
|
||||
|
||||
1. Using the `sas_url` that is included in the event
|
||||
2. Using the new events API at `GET https://{onefuzz instance}/api/events` with a request body `{ "event_id": "00000000-0000-0000-0000-000000000000" }`
|
||||
3. Using the onefuzz cli `onefuzz events get "00000000-0000-0000-0000-000000000000"`
|
||||
|
||||
The event payload data will only be retained until the expiration date. We are currently planning to retain event data for 90 days but this may change in the future.
|
||||
|
||||
_**You can migrate your event handling code today to use any of those 3 options so that you will be unaffected by the future breaking change.**_
|
Reference in New Issue
Block a user