2

Last modified: July 30, 2024

2.9.1

ImpactDescription
None.Fixed several problems with moving elements around between containers.

2.9.0

ImpactDescription
NoneAdded support for Mendix 6.10.0 (and 6.9.0.1), and updated PageTemplates for MM 6.9.0.
NoneMoving an element to a non-listy property of a new parent element (for example, to widget of a DivContainer) has been fixed.

2.8.1

ImpactDescription
LowFixed metaModelVersion in AbstractModel to actually contain meta model version instead of Mendix product version (which is now stored in mxVersionForModel).
NoneAdded checks for Page name validation (syntax + uniqueness); includes fixes to MxCheck.
NoneFixed order of meta model versions mentioned in documentation and error messages.
NoneUpdated links to reference the updated documentation site.

2.8.0

ImpactDescription
NoneAdded support for Mendix 6.9.0.
None/FixFrom this release on but retro-actively for all Mendix model versions, the microflowCall property of an MicroflowCallAction element is required instead of optional

2.7.0

ImpactDescription
NoneSupport for Mendix 6.7.1 and 6.8.0.
None/FixPrevent exceptions being thrown while deep copying model content with empty by-name references (which is a model inconsistency).

2.6.3

Note that Model SDK 2.6.1 and 2.6.2 have been skipped (and unpublished from NPM) because installing through NPM failed.

ImpactDescription
FixFixed Model SDK for published mendixmodelsdk NPM package missing dist/ and failing on npm install.
NoneAdd support -that's only accessible for trusted back end clients!- for providing a project-to-working copy mapping, locking/unlocking working copies and extra meta data regarding merge requests.
NoneWidened a parameter type in internal interfaces and classes to fix a problem with using the Model SDK in a Safari browser.
NoneRefactored MxCheck expression AST hierarchy.
NoneThe Deploy API now returns an additional field startedFullDeployment which is false if the app was fast-deployed (and completed now), or true if a full deployment was needed and further status of the app can be polled through deployStatus calls.
NoneExposed mergeState in the working copy meta data. Added loadWorkingCopyMetaData to SDK client to obtain it's meta info without opening it. Exposed Version utility class.
NoneFixed/extended SDK documentation for the sortIndex attribute of Module. (Ticket #466184)
NoneReplaced use of Grunt build system with npm.

2.6.0

ImpactDescription
NoneSupport for Mx6.7.0.

2.5.0

ImpactDescription
LowgetFilePaths has been deprecated and renamed to getFiles.
LowImproved the typings of some (internal) APIs.
NoneAdded support for Mendix 6.6.0.
NonegetFilePaths accepts an option objects which can define format (either zip or json), filter (glob pattern) and path (output filename if format is zip).
NoneOutput filename is no longer mandatory for getFile / getFiles / exportMpk. If not provided, raw response is provided in the callback instead.
NoneSupport for forcing full deployment. Deploying a working copy is functionality that's not accessible to regular Model SDK users (as in, non-trusted back ends), so no impact.
NoneFixed a bug with delete deltas not being sent while they should - this for example, caused 2 translations to be created for the title text of a new page, with the translations having the same language code.
NoneMore (complete) support for running model checks from the SDK: corrected implementation of check level groups, renamed hasPrefix standard library method for expressions (checks and queries) to startsWith.

2.4.0

ImpactDescription
NoneSupport for Mendix 6.5.1.
NoneExposed facilities for running consistency checks on models.

2.3.0

ImpactDescription
LowAdded support for Mendix 6.5.0.

2.2.2

ImpactDescription
MediumUpgraded to TypeScript 1.8.x because of using new language features which are incompatible with TS 1.6.y, so you'll have to upgrade to TS 1.8.x (which is backward compatible) as well.
LowAdded support for Mendix 6.4.1.
LowIt is now possible to deep clone elements by using element.deepCopy().
LowserializeToJs no longer crashes when it encounters deleted attributes.
LowAdded publicReadOnly property for working copies.
LowAdded support for retrieving overviews of all the working copies that user is member of.

SDK version 2.2.0 and 2.2.1 were unpublished because they were published in a broken state.

2.1.0

ImpactDescription
MinorAdded support for Mendix 6.4.0
LowWorking copies that are connected to projects can now be deployed and their runtime status can be requested
LowUnit-loading now has an extra optional forceRefresh option. If set, it will then bypass the Mendix MOdel SDK cache, and get the fresh unit straight from the source/server.
MinorAll classes that could be useful for reflection on the model are now exposed through mendixmodelsdk, so imports from mendixmodelsdk/dist/sdk/internal/... should no longer be needed.
MinorPrivate members (starting with an underscore _) were not available in the docs but were available in the public typings and therefore in the IDEs. This has been fixed. It should never be necessary to access these members. However, if you did access them you now need to access the object to any before the typechecker allows you to access these members. The method allProperties() is now available on all structures for reflection purposes.

2.0.0

This release introduces a number of breaking changes in the SDK's API, so because of semantic versioning we need to up the major version.

story#impactdescription
612773HighThe mechanics of model elements being contained has been reworked: see below for more details.
634662LowThe toPlainJson method on elements and units has been renamed to toJSON, because for example, the Chrome Developer Tools understand this to produce nice, human-readable representations of such objects. Rename all usages of toPlainJson to toJSON to fix your code.
639825LowBroken by-name references are automatically fixed when a target is added to the model again.
637545NoneMinor internal modifications for upcoming Mendix 6.3.0.
633932NoneAdded support for long-lived working copies (that are not deleted after 24 hours) to SDK. Note that this is currently not available to non-trusted back ends!
620108NoneRemoved exported interface IObservable from an internal namespace and replaced its use by the one from the MObservable library.
631960NoneAdded support for checking deployment status.
623906NoneAdded support for deploying from the SDK. Note that this is currently not supported on non-trusted back ends!

The following breaking changes are made per 612773 and as a result of new insights on interference between containment and versioning/history of the Mendix modeling language. This interference leads to elements having different kinds of containment throughout their history. In turn, this necessitated us to make some fundamental changes to avoid having to have breaking changes in the future.

  • The container property is not strictly typed anymore; for example, domainmodels.Attribute.container is not of type Entity anymore but of a general Container type.
  • Instead, containerAs<T> properties of type T are introduced on all elements. This property returns the instance of T which contains the element or throws if it's not contained by an instance of T. To avoid those exceptions, use container together with instanceof-guards.
  • In case an element is contained by multiple properties (as in, more than 1), createIn<T>Under<P> methods are generated which creates a new element in a given instance of T under property P. Several previously-existing createIn methods have been replaced by a createIn<T>Under<P> method, where these createIn methods considered only 1 containing property.
  • Elements that are contained by one property in at least one version will have a createIn method that works as expected for those versions and throws for other versions.
  • Elements that are always (as in, in all versions) contained by properties that are derived, will not have any createIn... methods.

Dependent code can be easily fixed by using the containerAs<T> property instead of the container property, and (in a few specific cases) by using a createIn<T>Under<P> method instead of the createIn method.