Skip to content

Commit 9aead12

Browse files
Merge pull request #11210 from mendix/nc-mp-content-api
MP Content API release
2 parents 60c1c3c + 45e3276 commit 9aead12

2 files changed

Lines changed: 174 additions & 7 deletions

File tree

content/en/docs/releasenotes/marketplace/general-marketplace/2026.md

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,23 @@ weight: 1
77
numberless_headings: true
88
---
99

10+
## May 2026
11+
12+
### May 28, 2026
13+
14+
#### New Features
15+
16+
* You can now accomplish the following additional actions through the [Marketplace Content API](/apidocs-mxsdk/apidocs/content-api/#api-reference):
17+
18+
* Retrieve company-approved status information. The `isCompanyApproved` attribute is included in content responses when the company-approved functionality is enabled.
19+
* Access detailed security vulnerability information for component versions.
20+
21+
* Vulnerable versions include a list of CVE or CWE identifiers and references to security fix versions that address these issues.
22+
* Security fix versions include information about which vulnerabilities they resolve and which versions are affected.
23+
* Version types clearly indicate whether a version is a regular release, contains known vulnerabilities, or provides security fixes.
24+
25+
* Download specific versions of Marketplace components directly through the Content API. The `downloadURL` attribute provides the endpoint to retrieve component packages programmatically.
26+
1027
## April 2026
1128

1229
### April 18, 2026

static/openapi-spec/marketplace-content.yaml

Lines changed: 157 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ paths:
2020
parameters:
2121
- $ref: '#/components/parameters/name'
2222
- $ref: '#/components/parameters/isPrivate'
23+
- $ref: '#/components/parameters/isCompanyApproved'
2324
- $ref: '#/components/parameters/publishedSince'
2425
- $ref: '#/components/parameters/limitContent'
2526
- $ref: '#/components/parameters/offsetContent'
@@ -89,6 +90,24 @@ paths:
8990
$ref: '#/components/responses/error401'
9091
'500':
9192
$ref: '#/components/responses/error500'
93+
/versions/{versionId}/download:
94+
get:
95+
tags:
96+
- content
97+
summary: Downloads the source file of a specific version.
98+
description: "Downloads the original source file associated with the specified version"
99+
operationId: getVersionDownload
100+
parameters:
101+
- $ref: '#/components/parameters/versionId'
102+
responses:
103+
'200':
104+
description: Downloads package version successfully
105+
'400':
106+
$ref: '#/components/responses/error400'
107+
'404':
108+
$ref: '#/components/responses/error404'
109+
'500':
110+
$ref: '#/components/responses/error500'
92111

93112
components:
94113
parameters:
@@ -133,6 +152,13 @@ components:
133152
required: false
134153
schema:
135154
type: string
155+
isCompanyApproved:
156+
name: isCompanyApproved
157+
in: query
158+
description: "Allows you to filter on company-approved content. This filter is only applicable if the company has enabled the company-approved badge functionality. For more information, refer to https://docs.mendix.com/control-center/company-approved/. Supported values are `true` or `false`. If the value is `true`, it returns only the last published versions of the company-approved content. If the value is `false`, it returns only the last published versions of the non-company-approved content. If no value is passed, it returns the last published versions of both company-approved and non-company-approved content."
159+
required: false
160+
schema:
161+
type: string
136162
publishedSince:
137163
name: publishedSince
138164
in: query
@@ -320,6 +346,9 @@ components:
320346
isPrivate:
321347
type: boolean
322348
description: "This indicates whether the content is public or private."
349+
isCompanyApproved:
350+
type: boolean
351+
description: "This indicates whether the content is company-approved. This attribute is only returned if the company has enabled the company-approved badge functionality. For more information, refer to https://docs.mendix.com/control-center/company-approved/."
323352
latestVersion:
324353
$ref: '#/components/schemas/version'
325354
content:
@@ -362,15 +391,136 @@ components:
362391
type: string
363392
format: yyyy-MM-ddTHH-mm-ssZ
364393
example: '2023-09-01T09:04:00Z'
365-
contentVersion:
366-
allOf:
367-
- $ref: '#/components/schemas/version'
368-
properties:
369-
releaseNotes:
394+
downloadURL:
370395
type: string
371-
example: "These are the release notes for this version."
372-
description: "These are the release notes for the published versions."
396+
format: uri
397+
example: "https://example.com/content/versions/{versionId}/download"
398+
description: "This is the URL used to download the specific version of the component."
399+
versionReference:
400+
type: object
401+
description: "A reference to a version with basic identifying information."
402+
required:
403+
- versionId
404+
- versionNumber
405+
- minSupportedMendixVersion
406+
properties:
407+
versionId:
408+
type: string
409+
format: uuid
410+
description: "This is the UUID of the version."
411+
versionNumber:
412+
type: string
413+
pattern: "^\\b((?:\\d{1,3}|1000)(?:\\.\\d{1,3}|\\.1000){0,2})(?:-[a-zA-Z]+)?\\b$"
414+
example: '10.1.1'
415+
description: "This is the version number. The format of the version number is major.minor.patch; for example, `1.0.0`."
416+
minSupportedMendixVersion:
417+
type: string
418+
pattern: "^\\b((?:\\d{1,3}|1000)(?:\\.\\d{1,3}|\\.1000){0,2})\\b$"
419+
example: '10.1.1'
420+
description: "This is the Studio Pro version selected during the onboarding. This means any Studio Pro version equal to or greater than this version is compatible with the latest version of the content."
373421

422+
securityIssue:
423+
type: object
424+
required:
425+
- code
426+
properties:
427+
code:
428+
type: string
429+
example: "CVE-2023-12345"
430+
description: "This is the CVE or CWE identifier for the security issue."
431+
432+
regularVersion:
433+
allOf:
434+
- $ref: '#/components/schemas/version'
435+
- type: object
436+
required:
437+
- releaseNotes
438+
- versionType
439+
properties:
440+
releaseNotes:
441+
type: string
442+
example: "These are the release notes for this version."
443+
description: "These are the release notes for the published versions."
444+
versionType:
445+
type: string
446+
enum:
447+
- Regular
448+
example: "Regular"
449+
description: "This is the version type. It indicates that this is a regular version with no known vulnerabilities."
450+
451+
vulnerableVersion:
452+
allOf:
453+
- $ref: '#/components/schemas/version'
454+
- type: object
455+
required:
456+
- releaseNotes
457+
- versionType
458+
- vulnerabilities
459+
- securityFixVersions
460+
properties:
461+
releaseNotes:
462+
type: string
463+
example: "These are the release notes for this version."
464+
description: "These are the release notes for the published versions."
465+
versionType:
466+
type: string
467+
enum:
468+
- Vulnerable
469+
example: "Vulnerable"
470+
description: "This is the version type. It indicates that this version has known vulnerabilities."
471+
vulnerabilities:
472+
type: array
473+
description: "This lists the CVE or CWE identifiers for the vulnerabilities present in this version."
474+
items:
475+
$ref: '#/components/schemas/securityIssue'
476+
securityFixVersions:
477+
type: array
478+
description: "This lists the security fix versions that address the vulnerabilities in this version."
479+
items:
480+
$ref: '#/components/schemas/versionReference'
481+
482+
securityFixVersion:
483+
allOf:
484+
- $ref: '#/components/schemas/version'
485+
- type: object
486+
required:
487+
- releaseNotes
488+
- versionType
489+
- fixedSecurityIssues
490+
- affectedVersions
491+
properties:
492+
releaseNotes:
493+
type: string
494+
example: "These are the release notes for this version."
495+
description: "These are the release notes for the published versions."
496+
versionType:
497+
type: string
498+
enum:
499+
- SecurityFix
500+
example: "SecurityFix"
501+
description: "This is the version type. It indicates that this version fixes one or multiple security issues."
502+
fixedSecurityIssues:
503+
type: array
504+
description: "This lists the CVE or CWE identifiers for the security issues that were fixed in this version."
505+
items:
506+
$ref: '#/components/schemas/securityIssue'
507+
affectedVersions:
508+
type: array
509+
description: "This lists the vulnerable versions that are fixed by this security fix version."
510+
items:
511+
$ref: '#/components/schemas/versionReference'
512+
513+
contentVersion:
514+
oneOf:
515+
- $ref: '#/components/schemas/regularVersion'
516+
- $ref: '#/components/schemas/vulnerableVersion'
517+
- $ref: '#/components/schemas/securityFixVersion'
518+
discriminator:
519+
propertyName: versionType
520+
mapping:
521+
Regular: '#/components/schemas/regularVersion'
522+
Vulnerable: '#/components/schemas/vulnerableVersion'
523+
SecurityFix: '#/components/schemas/securityFixVersion'
374524
securitySchemes:
375525
Personal Access Token:
376526
name: Authorization

0 commit comments

Comments
 (0)