.. _custom-metadata: Custom Metadata in Tarantool ====================================================== It is often necessary to assign additional metadata to the objects extracted from images uploaded to the card index and now stored in the feature vector database. .. rubric:: In this section: .. contents:: :local: Customize Meta Fields of Face Objects ------------------------------------------ To assign custom meta fields to the face objects, do the following: #. Prepare the list of custom meta fields to assign. #. Open the ``/etc/findface-security/config.py`` configuration file. .. code:: sudo vi /etc/findface-security/config.py #. In the ``FFSECURITY`` section, uncomment the ``CUSTOM_FIELDS`` -> ``face_object`` section and modify the exemplary content, considering the following: * ``field_name``: field's name; * ``type``: data type; * ``default``: field's default value. If a default value exceeds ‘1e14 – 1', use a string data type to specify it, for example, ``"123123.."`` instead of ``123123..``. .. code:: FFSECURITY = { ... # -- Custom model fields -- ... # Edit CUSTOM_FIELDS -> `face_object` section to customize face object fields. ... # 'CUSTOM_FIELDS': { ... 'face_object': { 'items': [ { "field_name": "tag_name_1", "type": "string", "default": "change_me" }, { "field_name": "tag_name_2", "type": "uint", "default": 123 }, { "field_name": "tag_name_3", "type": "bool", "default": True }, ] } }, } #. :ref:`Add the new meta fields ` to the feature vector database structure. #. Restart the ``findface-security`` service. .. code:: sudo systemctl restart findface-security.service You can work with the new meta fields through :ref:`HTTP API ` using the ``objects/faces/`` methods. Customize Meta Fields of Body and Car Objects ------------------------------------------------- Assigning custom meta fields to the body and car objects are similar to the faces. The only difference is that you will need to manually create the ``CUSTOM_FIELDS`` -> ``body_object`` and ``CUSTOM_FIELDS`` -> ``car_object`` sections. It is a good idea to duplicate the ``CUSTOM_FIELDS`` -> ``face_object`` section and use it as a starting point for further modifications. .. code:: FFSECURITY = { ... # -- Custom model fields -- ... # Edit CUSTOM_FIELDS -> `face_object` section to customize face object fields. ... # 'CUSTOM_FIELDS': { ... 'body_object': { 'items': [ { "field_name": "tag_name_1", "type": "string", "default": "change_me" }, { "field_name": "tag_name_2", "type": "uint", "default": 123 }, { "field_name": "tag_name_3", "type": "bool", "default": True }, ] } 'car_object': { 'items': [ { "field_name": "tag_name_1", "type": "string", "default": "change_me" }, { "field_name": "tag_name_2", "type": "uint", "default": 123 }, { "field_name": "tag_name_3", "type": "bool", "default": True }, ] } }, } Similarly, you can work with the new meta fields using the ``objects/bodies/`` and ``objects/cars/`` methods of :ref:`HTTP API `. .. seealso:: To create custom tabs, fields, and filters in cards, refer to :ref:`custom-tabs`.