Skip to content

Commit ea52a5f

Browse files
committed
Merge branch 'misc'
2 parents 19521a3 + fe5e4cb commit ea52a5f

File tree

1 file changed

+28
-3
lines changed

1 file changed

+28
-3
lines changed

docs/11-proposals/PROPOSAL_marketplace_modules.md

Lines changed: 28 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -96,11 +96,36 @@ may be rejected at the gateway with 400.
9696
}
9797
```
9898

99+
### Download URL — blocked
100+
101+
The `.mpk` download URL follows the pattern:
102+
103+
```
104+
https://files.appstore.mendix.com/<company-id>/<component-id>/<version>/<filename>.mpk
105+
```
106+
107+
None of the path components are returned by the marketplace API:
108+
109+
| Path segment | Example | In API response? |
110+
|---|---|---|
111+
| `company-id` | `5` (Mendix), `50537` (third party) | No |
112+
| `component-id` | `170`, `219862` — differs from the API's `contentId` | No |
113+
| `version` | `11.5.0` | Yes (`versionNumber`) — but useless without the other segments |
114+
| `filename` | Varies per module (`CommunityCommons_11.5.0.mpk`, `ExternalDatabaseConnector-v6.2.4.mpk`, `JamAuditLog.mpk`) | No |
115+
116+
The CDN itself is **public** (no auth needed for GET), but the URL cannot be
117+
constructed from API data. The marketplace website at `marketplace.mendix.com`
118+
contains the download links but requires AAD SSO — PATs do not work against
119+
the web app.
120+
121+
**Unblocking paths:**
122+
1. Mendix adds a `downloadUrl` field to the content or versions API response
123+
2. `mxcli` gains AAD device-code auth (see `PROPOSAL_platform_auth.md` Phase 6)
124+
to access the web app and scrape the download link
125+
3. Mendix publishes a CLI-accessible download endpoint (e.g., `POST /v1/content/{id}/versions/{versionId}/download` returning a signed URL)
126+
99127
### Open Endpoint Questions
100128

101-
- **Download URL**: The `.mpk` download path is not yet identified. Candidates to probe next:
102-
`/v1/content/{id}/versions/{versionId}/download`, a `downloadUrl` field inside the version
103-
object, or a separate binary host referenced by the version response.
104129
- **Search semantics**: `?search=database` accepted without error but truncated output made
105130
it unclear whether the result set was actually filtered vs. returned unchanged.
106131

0 commit comments

Comments
 (0)