Ana içeriğe geç

← FOTA Servisi Ana Sayfasi

FOTA Servisi Event Sozlesmeleri

Cikis Eventleri

firmware.download.completed.v1

Dosya indirme basariyla tamamlandiginda

{
"event": "firmware.download.completed.v1",
"meta": {
"schema_version": 1,
"trace_id": "ftp-34cd...",
"producer_service": "ftp-service",
"produced_at": "2026-04-14T12:20:20.120Z",
"process_ms": 1200
},
"context": {
"device_id": "400000011D081B70",
"stream_id": null
},
"data": {
"firmware_id": 12034,
"project_code": "powerstat",
"version": "02.05.23",
"file_name": "02.05.23.hex",
"ftp_path": "/firmware/powerstat/02.05.23/02.05.23.hex",
"bytes_sent": 524288,
"result": "success"
},
"error": null
}

firmware.download.failed.v1

Transfer basarisiz oldugunda

{
"event": "firmware.download.failed.v1",
"meta": {
"schema_version": 1,
"trace_id": "ftp-34cd...",
"producer_service": "ftp-service",
"produced_at": "2026-04-14T12:20:05.000Z",
"process_ms": 350
},
"context": {
"device_id": "400000011D081B70",
"stream_id": null
},
"data": {
"firmware_id": 12034,
"project_code": "powerstat",
"version": "02.05.23",
"file_name": "02.05.23.hex",
"ftp_path": "/firmware/powerstat/02.05.23/02.05.23.hex"
},
"error": {
"failed_stage": "transfer",
"error_code": "TRANSFER_FAILED",
"error_message": "connection dropped during download",
"retryable": false
}
}

firmware.auth.denied.v1

Cihazin proje/surum dosyasina erisim yetkisi yoksa

{
"event": "firmware.auth.denied.v1",
"meta": {
"schema_version": 1,
"trace_id": "ftp-34cd...",
"producer_service": "ftp-service",
"produced_at": "2026-04-14T12:19:59.100Z",
"process_ms": 12
},
"context": {
"device_id": "400000011D081B70",
"stream_id": null
},
"data": {
"firmware_id": 12034,
"project_code": "powerstat",
"version": "02.05.23",
"file_name": "02.05.23.hex"
},
"error": {
"failed_stage": "authorization",
"error_code": "AUTH_DENIED",
"error_message": "device has no access to requested project"
}
}

firmware.file.not_found.v1

İstenen dosya FTP dizininde yoksa

{
"event": "firmware.file.not_found.v1",
"meta": {
"schema_version": 1,
"trace_id": "ftp-34cd...",
"producer_service": "ftp-service",
"produced_at": "2026-04-14T12:20:00.050Z",
"process_ms": 15
},
"context": {
"device_id": "400000011D081B70",
"stream_id": null
},
"data": {
"firmware_id": null,
"project_code": "powerstat",
"version": "02.05.23",
"file_name": "02.05.23.hex",
"ftp_path": "/firmware/powerstat/02.05.23/02.05.23.hex"
},
"error": {
"failed_stage": "file_lookup",
"error_code": "FILE_NOT_FOUND",
"error_message": "requested firmware does not exist"
}
}

Topic Mapping

firmware.download.completed.v1 -> cinga.firmware.download.completed
firmware.download.failed.v1 -> cinga.firmware.download.failed
firmware.auth.denied.v1 -> cinga.firmware.auth.denied
firmware.file.not_found.v1 -> cinga.firmware.file.not_found

Idempotency ve Retry Notu

  • FTP servisi tarafinda retry yoktur.
  • Ayni cihaz ayni dosya istegini tekrar gonderirse yeni bir indirme attempt'i olarak loglanir.
  • Cihaz tekrar denemeyi kendi tarafinda baslatir.

Firmware DB Referansi Notu

  • firmware_id, project_code + version + file_name lookup sonucu cozulur.
  • Lookup basarisizsa firmware.file.not_found.v1 uretilebilir.
  • Redis runtime state'te son indirilen deneme icin firmware_id tutulur.