Serialization

Serialization is a great feature to create share types and other object within the repository or use it while deployment on a server.

The serialization works can be working automatically and deserializing aswell. Depending on the configuration.

 

Configuration

The configuration is defined in appsettings.json. Take a look at Setup & Development / Configuration

"Serialization": {
      "Path": "serialization",
      "SerializerEnabled": [
        "NodeSerializer",
        "UserSerializer",
        "ApiKeySerializer",
        "BlobSerializer",
        "GroupSerializer",
        "LanguageSerializer",
        "NodeTypeSerializer",
        "SettingsSerializer",
        "UserTypeSerializer"
      ]
 },

File Format

Serialized files are JSON based and contains mainly an "id" and object related datas. 

As example:

{
  "AccessBackend": true,
  "InternalName": "NLess.IO User",
  "SortOrder": 0,
  "Groups": [
    {
      "Type": "DefaultGroup",
      "SortOrder": 1,
      "UserTypeId": "cf11883a-cc86-4310-b129-115972a3add0",
      "Fields": [
        {
          "GroupId": "6413e2c0-16e2-4b82-a122-06627b732122",
          "SortOrder": 3,
          "Type": "MultiSelectNode",
          "SettingsRaw": "[]",
          "Settings": [],
          "id": "1c92de4a-d5fb-440f-a5ab-5af26b2cca41",
          "name": "Content Root"
        }
      ],
      "Value": null,
      "id": "6413e2c0-16e2-4b82-a122-06627b732122",
      "name": "Data"
    }
  ],
  "ParentId": "00000000-0000-0000-0000-000000000000",
  "ParentIds": [],
  "id": "cf11883a-cc86-4310-b129-115972a3add0",
  "name": "NLess.IO User"
}

Run manually

In case a manually run is needed. Go to the "Serialization" area and sync/serialize needed types.