# Redfish Scalable Platforms Management API

Die Redfish Scalable Platforms Management API (Redfish) ist eine Spezifikation zur Fernwartung von Server-Systemen über eine REST-basierte Softwareschnittstelle. Redfish wurde erstmals im August 2015 von der Scalable Platforms Management Forum (SPMF) Arbeitsgruppe der Distributed Management Task Force veröffentlicht. Zu den Hauptzielen von Redfish zählt unter anderem, mittelfristig das IPMI-over-LAN Protokoll zu ersetzen, das mehrere Sicherheitsprobleme aufweist.

## Ziele

Bei der Entwicklung von Redfish wurden unter anderem folgende Ziele verfolgt:
* Bereitstellung einer einheitlichen Programmierschnittstelle zur Server-Fernwartung.
* Verwendbarkeit sowohl für Client-Anwendungen als auch für Browser-basierte GUIs.
* Sicherer, Multi-Node-fähiger Ersatz für IPMI-over-LAN.
* Schema-basierte Ausgaben, die jedoch auch für Menschen einfach lesbar sind.
* Nachträglich als neue Funktion in die Firmware für bereits bestehende Baseboard Management Controller integrierbar.

## Eingesetzte Techniken

Die folgenden Techniken kommen bei Redfish zum Einsatz:
* Hypertext Transfer Protocol Secure (HTTPS) zur Datenübertragung
* Representational State Transfer (REST) als Programmierparadigma
* JavaScript Object Notation (JSON) als Datenformat
* Open Data Protocol (OData) als Schema-basiertes Datenmodell

## Versionen

Die Redfish Programmierschnittstelle (API) und das Redfish Datenmodell (Schemata) werden getrennt entwickelt. Während die API über lange Zeiträume möglichst konstant bleiben soll, kann mit dieser Vorgehensweise parallel das Datenmodell entsprechend den aktuellen Anforderungen der IT-Industrie laufend aktualisiert werden.

### Redfish API Specification

Die folgenden Redfish API Versionen wurden bislang veröffentlicht:
| Version | Veröffentlichungsdatum | Dokumentendatum | Änderungen |
| 1.19.0 | 21. September 2023 | 3. August 2023 | |
| 1.2.0 | 22. Mai 2017 | 21. Mai 2017 | Unterstützung für Redfish Composability Service ergänzt. |
| 1.1.0 | 8. Januar 2017 | 30. Dezember 2016 | Redfish Service Operation to Privilege Mapping sowie Hinweise zur Redfish Host Interface Specification ergänzt. |
| 1.0.5 | 3. Januar 2017 | 23. Dezember 2016 | Errata Release mit zahlreichen klargestellten Formulierungen. |
| 1.0.4 | 30. August 2016 | 28. August 2016 | Errata Release mit zahlreichen klargestellten Formulierungen. |
| 1.0.3 | 14. Juli 2016 | 17. Juni 2016 | Errata Release mit zahlreichen klargestellten Formulierungen. |
| 1.0.2 | 2. Mai 2016 | 31. März 2016 | Errata Release mit zahlreichen klargestellten Formulierungen. |
| 1.0.1 | 16. Dezember 2015 | 17. September 2015 | Errata Release, diverse grammatikalische Korrekturen und klargestellte Formulierungen. |
| 1.0.0 | 4. August 2015 | 4. August 2015 | Initiale Version. |

### Redfish Host Interface Specification

Mit der Redfish Host Interface Specification wurde eine „in-band“ Redfish Host Schnittstelle spezifiziert, die einen direkten Zugriff auf Redfish über das Betriebssystem ermöglicht. Die folgenden Redfish Host Interface Specification Versionen wurden bislang veröffentlicht:
| Version | Veröffentlichungsdatum | Dokumentendatum | Änderungen |
| 1.3.1 | 21. September 2023 | 3. August 2023 | |
| 1.0.0 | 13. Januar 2017 | 30. Dezember 2016 | Initiale Version. |

### Redfish Schema

Die folgenden Redfish Schema Versionen wurden bislang veröffentlicht:
| Version | Veröffentlichungsdatum | Änderungen |
| 2023.2 | 21. September 2023 | |
| 2017.1 | 22. Mai 2017 | Neue Schemata, u. a. für CollectionCapabilities, CompositionService, ResourceBlock, ResourceBlockCollection sowie mehrere kleinere Aktualisierungen |
| 2016.3 | 8. Januar 2017 | Neue Schemata, u. a. für HostInterface, PrivilegeRegistry sowie mehrere kleinere Aktualisierungen. |
| 2016.2 | 18. September 2016 | Neue Schemata, u. a. für Fabric, MemoryDomain, PCIeDevice, SoftwareInventory, UpdateService sowie mehrere kleinere Aktualisierungen. |
| 2016.1 | 31. Mai 2016 | Neue Schemata für AttributeRegistry, Bios, Drive, Memory, MemoryCollection, MemoryMetrics, SecureBoot, Storage, StorageCollection und Volume sowie mehrere kleinere Aktualisierungen. |
| 1.0.0 | 3. August 2015 | Initiale Version. |