=====================
Automatic Migrations
--------------------
- WARNING - It is strongly advised to perform a backup before upgrading to or
above this version. The ``it:sec:cpe`` migration described below WILL remove
invalid ``it:sec:cpe`` and some associated nodes from the Cortex.
Migrate invalid ``it:sec:cpe`` nodes if possible. Migration of these nodes
will only be successful if one of the CPE 2.3 (primary property) or the CPE
2.2 (``:v2_2``) strings are valid CPEs. If both CPE strings are invalid, the
node will be removed from the Cortex and stored in a Cortex queue
(``model_0_2_31:nodes``).
The structure of items in this queue is opaque. The intent is for Power-Ups
to be able to process the queue in an attempt to fix the invalid nodes on a
per Power-Up basis (the idea being that Power-Up data vendors probably make
the same mistake consistently).
During migration or removal of invalid ``it:sec:cpe`` nodes, referencing
nodes with readonly properties will be removed and also stored in the queue.
We are unable to automatically migrate these nodes due to the dynamic nature
of their construction.
(`3918 <https://github.com/vertexproject/synapse/pull/3918>`_)
- See :ref:`datamigration` for more information about automatic migrations.
Model Changes
-------------
- Update the parsing of CPE 2.2 and CPE 2.3 strings to be strict according
to the CPE specification (NISTIR 7695).
(`3918 <https://github.com/vertexproject/synapse/pull/3918>`_)
- See :ref:`userguide_model_v2_187_0` for more detailed model changes.
Features and Enhancements
-------------------------
- Update storm ``queue.put()`` and ``queue.puts()`` methods to return the
offset of the queued item.
(`3918 <https://github.com/vertexproject/synapse/pull/3918>`_)
- Add CPE migration helper functions. The following functions were added to
assist with invalid nodes that were queued as part of the CPE model
migration: ``$lib.model.migration.s.model_0_2_31.listNodes()``,
``$lib.model.migration.s.model_0_2_31.printNode()``, and
``$lib.model.migration.s.model_0_2_31.repairNode()``
(`3918 <https://github.com/vertexproject/synapse/pull/3918>`_)
- Added a ``getNodeData()`` API to the Storm Layer object for yielding
node data by node iden.
(`3918 <https://github.com/vertexproject/synapse/pull/3918>`_)