• Added auto-reconnect back.

  • Added config variable for connection retry timeout.

  • Updated idl.cpp to 0.15.

  • Updated connection lib to 11.13.

  • Updated discovery client to 1.3.0.

  • Updated the websockets library to version 9.1.

  • Updated service to Python version 3.8.7.

  • Updated the psutil library to version 5.8.0

  • Disabled ping interval of websockets used in OmniClientTransport.

  • Fixed deadlock between asyncio sockets and threading.Lock used for DB access.



  • Upgraded PyYaml to 5.4.1.

  • Upgraded aiohttp to 3.7.4.

  • Switched to generated python connection 11.6 (Nucleus 110.3)

  • Updated IDL CPP to 0.14

  • Updated discovery client to 1.2

  • Updated IDL packages to 0.6

  • Added support for path copy and rename events. Tags will be copied to the new path accordingly.

    • New clients will receive the event type (Copy, Rename, Delete) and origin in their subscription responses.



  • Allow configuring ports via System Monitor.



  • Updated connection lib to 10.7 (Nucleus 109.7).

  • Switched to Artifactory pip mirror.

  • Switched to omniverse base docker image.

  • Switched to new location for data storage and log file output.

  • Updated auth client to 1.0.3-main.



  • Updated IDL CPP to 0.13-master.

  • Switched to new release process omniverse flow. master branch renamed to main.

  • Updated discovery client to 1.0.4-main.

  • Updated auth client to 1.0.2-main.

  • Updated connection lib to 10.7-master.

  • Locked pip requirements and added all sub-dependencies to requirements files.

  • Refactored testharness.



  • Fixed: Tag Reset command did not correctly handle list of tags if their tag_names were not all set or not all unset.

  • Fix: Default deployments file was not using as service IP



  • Added support to setup the discovery YAML configuration from a string in the environment variable OV_SERVICE_DEPLOYMENTS.



  • Using SQLITE_TMPDIR in docker stack to setup temp storage location for sqlite3.



  • Removed OmniError Enum from C++ client interface header and replaced it with uint64_t



  • Updated auth and discovery client from dev to master versions.

  • Updated IDL packages to fix connection handle leak.

  • Updated OV Connection to latest Nucleus 109.3 version, fixes transfer and threading issues.



  • Switched to IDL generated interface.

    • Service and client interfaces are now auto generated.

    • Used transport is now websockets instead of omni-messaging.

  • Interface is split into:

    • Tagging Service: Used to modify and query the tags

    • Tag Subscriptions: Used to subscribe for tag-change events.

    • Tag Suggestions: Used to read and write tag suggestions per folder

  • The host for each interface can be retrieved from the discovery service.

  • Slight changes to interfaces, e.g. multiple Tags are now passed as an array of structs.

  • Fixed bug in auth token cache

  • Results returned by tag_query can be limited in the query and in the service’s config.

  • Hidden namespaces can be filtered.

  • Subscription events return an array of tags instead of a single tag to reduce number of events.

  • Reset tag modifications generate remove events for the cleared tags.

  • Create/release client functions got removed. Separate function to generate a client ID.

  • Explicit unsubscribe function got removed from Tag Subscriptions. This is handled now by an asynchronous generator.

  • psutil and prometheus client dependencies moved to pypi.



  • deleting a tagged file will trigger remove event notifications to subscribers

  • removed ACL checks for query results and subscriptions

  • reduced worker thread count of service to 4

  • moved in and outgoing messages from INFO to DEBUG logging level


  • added log rotation to docker stack


  • removed unused typedef in C++ client header



  • storing tags in a relational database local to the service instead of files in OV [OM-9051]

  • improved shutdown speed on signal SIGTERM.

  • made read-only methods of C++ client API const



  • added subscription interface

  • upgrade connection to 107.4 nucleus server version (still 9.10 connection)



  • namespaces & values added as explicit parameters and return values

  • folders can be tagged

  • query data structure is persisted on disk

  • possibility to regenerate the query structure at start (OV_REGENERATE_DB)

  • possibility to update format 1.0 tagging files at start (OV_UPDATE_TAG_FORMAT_1_0)

  • file event listener (reacts on ACL change and file delete)

  • changed behavior of tag modify operator, split Set into Set and Reset.

  • tag suggestions modify operator Set got renamed to Reset.

  • query API got slightly extended:

    • one query per property (path, namespace, tag, value). Intersection (AND) of each query is the final result.

    • empty queries are interpreted as ANY (equal to * wildcard)

    • all queries except path query does/is an exact string match

    • path query does a “startsWith()” match to allow filtering for a common root folder

    • value queries and value returns come with a performance penalty (additional OV read per match)

    • result mask to receive only the properties of interest (bool returnPaths, etc.)

  • changed pointers to IDs for both the connection and the tagging client. Improves resource management and module interoperability.

  • added doxygen documentation for C and C++ headers (output in _doc folder)

  • added and to repository

  • more serious unit testing (tests/cpp)

  • update to connection lib version 9.10

    • fixes deadlock issue

    • version that comes with the 107.0 server release

  • getTags on a path without tags should not return an error

  • some smaller renames in the API for consistency reasons

Python API

  • PEP8 function and parameters naming style

  • made returned future wrappers await-able

  • future wrapper timeout is measured in seconds (floating point) not milliseconds

  • OmniCreateTagServiceClientSettings expects now a connection ID instead of a connection pointer as input. This improves compatibility between modules that share a connection.


  • reduced docker image size

  • adapted to new naming conventions

  • rotating log support

  • separate readme for the image


  • first internal release