Breaking (!) API changes for v2 API, April 25 to May 2
During the week of April 25 to May 2, 2025, the mittwald API introduced several changes, including updates to the webhook URLs in the extension registration process, modifications to response properties for extension retrieval, and the addition of new required properties in backup-related endpoints.
Summary
-
The
webhookURLs
request property for thePOST /v2/contributors/{contributorId}/extensions
operation has undergone significant changes: a new subschema was added, its type/format changed, and several properties were removed, includingwebhookURLs/extensionAddedToContext
,webhookURLs/extensionInstanceRemovedFromContext
,webhookURLs/extensionInstanceSecretRotated
, andwebhookURLs/extensionInstanceUpdated
. Note that these changes are breaking. -
The response body type/format for the
GET /v2/extensions/{extensionId}
operation has changed, and multiple required properties have been removed, includingassets
,blocked
,context
,contributorId
,description
,disabled
,id
,logoRefId
,name
,published
,scopes
,state
,statistics
,subTitle
, andsupport
. This is a breaking change. -
The
GET /v2/extensions
operation now includes a new enum valuetrue
for the/items/published
response property. -
Several optional properties have been removed from the
GET /v2/extensions/{extensionId}
response, includingdeprecation
,detailedDescriptions
,externalFrontends
,frontendComponents
,frontendFragments
, andpricing
. -
The security scheme type for
de.mittwald.v1.commons.LegacyBearerAuthentication
has changed fromapiKey
tohttp
. -
New optional properties have been added to the
GET /v2/contributors
response, including/items/descriptions
and/items/imprint
. -
The
GET /v2/contributors/{contributorId}
operation now includes new optional properties:/anyOf[#/components/schemas/de.mittwald.v1.marketplace.Contributor]/descriptions
,/anyOf[#/components/schemas/de.mittwald.v1.marketplace.Contributor]/imprint
, and/anyOf[#/components/schemas/de.mittwald.v1.marketplace.OwnContributor]/imprint
, as well as a required property/anyOf[#/components/schemas/de.mittwald.v1.marketplace.OwnContributor]/contributorNumber
. -
A new optional request property
webhookUrls
has been added to thePOST /v2/contributors/{contributorId}/extensions
operation. -
The
POST /v2/extension-instances
operation now includes a non-success response with the status403
. -
The response body for the
GET /v2/extensions/{extensionId}
operation has been updated to include#/components/schemas/de.mittwald.v1.marketplace.Extension
and#/components/schemas/de.mittwald.v1.marketplace.UnpublishedExtension
in theanyOf
list. -
Several required properties have been added to the responses of various backup-related operations, including
requestedAt
forGET /v2/project-backups/{projectBackupId}
,GET /v2/projects/{projectId}/backups
, andPOST /v2/projects/{projectId}/backups
.
Disclaimer: This summary is AI-generated. If you find any discrepancies, please refer to the detailed changes below.
Detailed changes
Changes in "Register an Extension"
-
⚠️ Breaking: added '#/components/schemas/de.mittwald.v1.marketplace.WebhookUrls, subschema #2' to the 'webhookURLs' request property 'allOf' list
-
⚠️ Breaking: the 'webhookURLs' request property type/format changed from 'object'/'' to ''/''
-
removed the request property 'webhookURLs/extensionAddedToContext'
-
removed the request property 'webhookURLs/extensionInstanceRemovedFromContext'
-
removed the request property 'webhookURLs/extensionInstanceSecretRotated'
-
removed the request property 'webhookURLs/extensionInstanceUpdated'
-
added the new optional request property 'webhookUrls'
For details, refer to the POST/
endpoint.
Changes in "Get an Extension"
-
⚠️ Breaking: the response's body type/format changed from 'object'/'' to ''/'' for status '200'
-
⚠️ Breaking: removed the required property 'assets' from the response with the '200' status
-
⚠️ Breaking: removed the required property 'blocked' from the response with the '200' status
-
⚠️ Breaking: removed the required property 'context' from the response with the '200' status
-
⚠️ Breaking: removed the required property 'contributorId' from the response with the '200' status
-
⚠️ Breaking: removed the required property 'description' from the response with the '200' status
-
⚠️ Breaking: removed the required property 'disabled' from the response with the '200' status
-
⚠️ Breaking: removed the required property 'id' from the response with the '200' status
-
⚠️ Breaking: removed the required property 'logoRefId' from the response with the '200' status
-
⚠️ Breaking: removed the required property 'name' from the response with the '200' status
-
⚠️ Breaking: removed the required property 'published' from the response with the '200' status
-
⚠️ Breaking: removed the required property 'scopes' from the response with the '200' status
-
⚠️ Breaking: removed the required property 'state' from the response with the '200' status
-
⚠️ Breaking: removed the required property 'statistics' from the response with the '200' status
-
⚠️ Breaking: removed the required property 'subTitle' from the response with the '200' status
-
⚠️ Breaking: removed the required property 'support' from the response with the '200' status
-
⚠️ Breaking: removed the required property 'tags' from the response with the '200' status
-
removed the optional property 'deprecation' from the response with the '200' status
-
removed the optional property 'detailedDescriptions' from the response with the '200' status
-
removed the optional property 'externalFrontends' from the response with the '200' status
-
removed the optional property 'frontendComponents' from the response with the '200' status
-
removed the optional property 'frontendFragments' from the response with the '200' status
-
removed the optional property 'pricing' from the response with the '200' status
-
added '#/components/schemas/de.mittwald.v1.marketplace.Extension, #/components/schemas/de.mittwald.v1.marketplace.UnpublishedExtension' to the response body 'anyOf' list for the response status '200'
For details, refer to the GET/
endpoint.
Changes in "List Extensions"
- added the new 'true' enum value to the '/items/published' response property for the response status '200'
For details, refer to the GET/
endpoint.
Changes in ""
- the component security scheme 'de.mittwald.v1.commons.LegacyBearerAuthentication' type changed from 'apiKey' to 'http'
For details, refer to the unknown operation endpoint.
Changes in "List contributors"
-
added the optional property '/items/descriptions' to the response with the '200' status
-
added the optional property '/items/imprint' to the response with the '200' status
For details, refer to the GET/
endpoint.
Changes in "Get a contributor"
-
added the optional property '/anyOf[#/components/schemas/de.mittwald.v1.marketplace.Contributor]/descriptions' to the response with the '200' status
-
added the optional property '/anyOf[#/components/schemas/de.mittwald.v1.marketplace.Contributor]/imprint' to the response with the '200' status
-
added the optional property '/anyOf[#/components/schemas/de.mittwald.v1.marketplace.OwnContributor]/imprint' to the response with the '200' status
-
added the required property '/anyOf[#/components/schemas/de.mittwald.v1.marketplace.OwnContributor]/contributorNumber' to the response with the '200' status
For details, refer to the GET/
endpoint.
Changes in "Create an extension instance"
- added the non-success response with the status '403'
For details, refer to the POST/
endpoint.
Changes in "Get a project backup"
- added the required property 'requestedAt' to the response with the '200' status
For details, refer to the GET/
endpoint.
Changes in "List Backups belonging to a Project"
- added the required property '/items/requestedAt' to the response with the '200' status
For details, refer to the GET/
endpoint.
Changes in "Create a Backup of a Project"
- added the required property 'requestedAt' to the response with the '201' status
For details, refer to the POST/
endpoint.