fix(ocm): publicKey can be disabled so capabilities do not match

When the public key feature is disabled null is returned for
`publicKey`. So in this case we need to adjust the capabilities
and return type of `jsonSerialize()`.

Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
This commit is contained in:
Ferdinand Thiessen 2025-03-21 09:15:55 +01:00 committed by backportbot[bot]
parent c544e04856
commit 68ddad80e1
4 changed files with 4 additions and 5 deletions

View file

@ -38,7 +38,7 @@ class Capabilities implements ICapability {
* apiVersion: '1.0-proposal1',
* enabled: bool,
* endPoint: string,
* publicKey: array{
* publicKey?: array{
* keyId: string,
* publicKeyPem: string,
* },

View file

@ -46,7 +46,6 @@
"apiVersion",
"enabled",
"endPoint",
"publicKey",
"resourceTypes",
"version"
],

View file

@ -213,7 +213,7 @@ class OCMProvider implements IOCMProvider {
* enabled: bool,
* apiVersion: '1.0-proposal1',
* endPoint: string,
* publicKey: array{
* publicKey?: array{
* keyId: string,
* publicKeyPem: string
* },
@ -236,7 +236,7 @@ class OCMProvider implements IOCMProvider {
'apiVersion' => '1.0-proposal1', // deprecated, but keep it to stay compatible with old version
'version' => $this->getApiVersion(), // informative but real version
'endPoint' => $this->getEndPoint(),
'publicKey' => $this->getSignatory()->jsonSerialize(),
'publicKey' => $this->getSignatory()?->jsonSerialize(),
'resourceTypes' => $resourceTypes
];
}

View file

@ -151,7 +151,7 @@ interface IOCMProvider extends JsonSerializable {
* enabled: bool,
* apiVersion: '1.0-proposal1',
* endPoint: string,
* publicKey: array{
* publicKey?: array{
* keyId: string,
* publicKeyPem: string
* },