Repository navigation
Versioning and Compatibility
| Accelerator version | 0.6.0 |
| Model version | 2.0.0 |
| Package spec | 2.0.0 |
| Platform compatibility | Fuuz 2026.8.0+ |
| Source dictionary | Plex developer portal, 2026-08-05 |
Accelerator version (0.6.0) is the published package. Model version (2.0.0) is stamped on every data model version in the tenant — it is what tells you which generation of the schema a tenant is actually running, and it is what the deploy tooling compares against.
They move independently: a documentation-only release bumps the accelerator and not the models.
Models are upgraded by deploying a new model version, not by editing the live one. Existing rows are preserved; the migration expression is the identity mapping.
Two platform behaviours are worth knowing before you upgrade:
- A model's own description is set at creation and is not carried by a version. Field descriptions travel with each version; the header description does not. Tooling must push it explicitly or a model's description freezes at whatever the first install said.
- A reverse collection is silently dropped if its child model is not deployed when the parent deploys. The definition claims the field, the schema does not have it, and nothing errors. Verifying an upgrade means introspecting the live schema, not reading the deploy log.
0.6.0 removed 106 relations. They pointed a *Code or *No column at a model keyed on its id — a reference that can never match. Because references are enforced, those were not dud edges; they were rejected writes. Any row carrying a supplierCode would have been refused.
The same change restored 8 real relations that had been suppressed by a name collision with those bad ones.
| 0.5.0 | 0.6.0 | |
|---|---|---|
| Forward relations | 507 | 465 |
| Reverse collections | 325 | 283 |
*Id foreign keys typed String |
8 | 0 |
If you installed 0.5.0 or earlier, upgrade. The relation count going down is the correction — what was removed could not have worked.
Nothing Plex changes reaches this accelerator on its own.
The models were derived from Plex's published API documentation as it stood on 2026-08-05 (see How This Was Built). There is no live connection between developers.plex.com and an installed tenant, and no mechanism by which a vendor change updates a deployed model. The schema is a snapshot, and it stays that snapshot until someone re-harvests the dictionary, regenerates, and publishes a new accelerator version.
This is a property of the approach, not a defect to be fixed later. An accelerator that silently re-shaped itself when a vendor edited their documentation would be far worse: schema changes would arrive unannounced, mid-run, with no review and no version to roll back to.
| Plex does this | You see | Severity |
|---|---|---|
| Adds an endpoint | Nothing. It is simply absent — no model, no error | Invisible until someone asks for that object |
| Adds a field to an existing response | The field arrives and is silently discarded — the mapping writes only fields the model declares | Invisible. Data you are entitled to is being dropped |
| Renames a field | The old column stops being populated and goes null; the new one is discarded | Looks like "the data stopped coming" |
| Changes a field's type | Type mismatch on write. Whole 500-row batch may be refused | Loud, and traceable |
| Removes an endpoint | 404 on every run of that read flow | Loud |
| Changes a key | Rows land under new identities; old rows are orphaned, not updated | Quiet and expensive — duplicates rather than an error |
| Adds a relationship between objects | Not modelled. No relation, no traversal | Invisible |
The dangerous rows are the invisible ones. A 404 gets noticed the same day; a silently discarded new field can go unnoticed for a year.
Every row carries sourceVersion — the dictionary stamp of the model that wrote it — and sourceUrl, the endpoint it came from. A row written today still stamped 2026-08-05 is telling you exactly how old the contract behind it is.
rawPayload is the other half. It stores what Plex actually returned, verbatim, including fields the model does not declare. Comparing rawPayload keys against the model's fields is how you detect a silently added or renamed field — it is the only signal available for the invisible cases in the table above, and it is the main reason that column exists.
The customer or implementing partner owns noticing. MFGx publishes new accelerator versions when the dictionary is re-harvested, but is not monitoring your Plex tenant, is not subscribed to Plex's release notes on your behalf, and has no visibility into when your PCN is upgraded.
A reasonable cadence: re-harvest and diff the dictionary whenever Plex announces an API release, and at minimum before any project that depends on an object you have not used before.
Regenerate, do not hand-patch. A hand-edited model is overwritten by the next version and the edit is silently lost. The generator turns a vendor change into a rebuild rather than an investigation — that is the point of having generated the models in the first place.
Customer & Partner Guide v0.6.0