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
webhookURLsrequest property for thePOST /v2/contributors/{contributorId}/extensionsoperation 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/extensionsoperation now includes a new enum valuetruefor the/items/publishedresponse 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.LegacyBearerAuthenticationhas changed fromapiKeytohttp. -
New optional properties have been added to the
GET /v2/contributorsresponse, including/items/descriptionsand/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
webhookUrlshas been added to thePOST /v2/contributors/{contributorId}/extensionsoperation. -
The
POST /v2/extension-instancesoperation 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.Extensionand#/components/schemas/de.mittwald.v1.marketplace.UnpublishedExtensionin theanyOflist. -
Several required properties have been added to the responses of various backup-related operations, including
requestedAtforGET /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.