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>
pull/51653/head
Ferdinand Thiessen 1 year ago committed by backportbot[bot]
parent c544e04856
commit 68ddad80e1
  1. 2
      apps/cloud_federation_api/lib/Capabilities.php
  2. 1
      apps/cloud_federation_api/openapi.json
  3. 4
      lib/private/OCM/Model/OCMProvider.php
  4. 2
      lib/public/OCM/IOCMProvider.php

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

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

@ -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
];
}

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

Loading…
Cancel
Save