API Backward Compatibility and Import
-------------------------------------

The VOSS-4-UC system maintains a
Data Model version data store containing all versions that have been
imported onto the system.

While there is always a current version of a Data Model in use on the
system, a check is carried out during the import of data:

  * If the current version is newer than the definition of the imported
    data, then the imported definition data is flagged internally as
    automigration: false to prevent resources from auto-migrating from a
    newer version to an older version.

  * Importing an older version will not replace the latest definition as
    the default schema. The older version will only be added to the
    version store.

The snippet example below shows the automigration attribute:

::

  { "meta": {},
   "resources": [
     { "data": { 
       "name": "test_mig_dm"
       ... 
       },
       "meta": { 
         "hierarchy": "sys",
         "model_type": "data/DataModel",
         "schema_version": "0.1",
         "version_tag": "0.3",
         "automigration": false
       }
     } 
   ]
  }

This model definition version store makes it possible for version
definition imports to be sequence independent, allowing a freshly
installed system to construct the version history for backwards
compatibility.