v.1.1.3

Improvements:

  1. Logging settings were updated. LOG_TO_STDOUT, LOG_TO_FILE, and MULTILINE_STACK_TRACE parameters were added. See the description in the service configuration file.

  2. OpenAPI documentation can now be obtained with GET “/docs/spec” (yaml or html). See openapi docs resource.

  3. Development Manual can now be obtained with GET “/docs/dev”. See sphinx docs resource.

  4. A new geo_position field was added to the event location field. Geo position is specified by the geographic coordinates of the place where the event occurred: longitude, latitude (in degrees). See get events, match events, get event stats resources.

  5. Functions for getting event descriptor by event_id were improved. Error messages of GET “/events/{eventId}/descriptor” are now supported. More details: get event descriptor.

  6. Service version was updated. Current API version is 2.

  7. Event top_similar_face_list field was replaced with top_match.label and list_id was replaced with label for result matching.

  8. The attribute_id columns were removed from event and match_result tables.

  9. Use postgres BIGINT column type for “id” and “numeric_id” columns. Migration is required.

  10. The “/events/{event_id}” resource with HEAD and GET methods was added.

  11. An event_match_result table was added. The match_result table was renamed to face_match_result. Top match result is now returned as a separated top_match object, which consists of:

    • face_id or event_id, a top matching candidate (instead of top_similar_face_id);

    • label, a matching label (instead of top_similar_face_list);

    • similarity, a top matching similarity (instead of top_similar_face_similarity).

The top_similar_face_id, top_similar_face_list, top_similar_face_similarity targets were replaced with the top_match target. The top_similar_face_id and top_similar_face_similarity statistic filters replaced with the top_similar_object_id and top_similar_object_similarity respectively.

  1. The detections was replaced with face_detections for incoming and extract_result was replaced with detections for outcoming event(s).

  2. The handler_id, face_id, event_id, and other identifiers are of any UUID now (previously were UUID4 only).

  3. The attributes field for incoming events became optional. From now on, events can be created without both descriptor and basic attributes. See create events.

  4. Datetime fields in the database are stored in UTC format now. The service response format depends on the storage_time setting as follows:

    • LOCAL is the time offset from UTC according to the time zone (In ISO 8601, the associated time would be written as 2020-01-01T23:28:34+01:00);

    • UTC is Coordinated Universal Time without timezone offset (In ISO 8601, the associated time would be written as 2020-01-01T08:15:00+00:00).

  5. A new mask field was added to an event. The field corresponds to a predominant mask, which was estimated on event face detections. See get events, match events, get event stats resources.

  6. All database migrations since version v.1.0.9 were replaced with a single migration.

  7. The attributes was replaced with the face_attributes for incoming event(s).

  8. The body_attributes and body_detections were added for incoming event(s).

  9. For the purpose of descriptors type distinguishing, the descriptor_type query parameter was added to matching method.

  10. For the purpose of descriptors type distinguishing, the descriptor_type query parameter was added to getting event’s descriptor method.

  11. Events can now be saved and filtered with utf-8 chars in tags.

  12. The alembic migration version is used for a database state check now. If an expected migration version does not match with a real migration version, the service will not start.

Bugs fixed:

  1. When float is equivalent to an integer value, the events are not saved now (these values will be set to an integer. e.g.: 1.0 equals 1).

How to update from previous version:

To update from previous version, replace all folders with files and update dependencies from requirements.txt. Then run the commands:

alembic upgrade head