Release Date: 09/16/2021

  • Clarifications and rework in the .env and the .yml stack files

  • Re-structured distribution to include multiple stacks and artifacts, added README

  • Added Azure AD SSO support

  • Added support for SSL

  • Added support for backup/restore via nucleus-tools

  • Components updates:

    • Core 111.2

    • Navigator 2.3.0

    • Discovery Service 1.3.0

    • Authentication Service 1.1.0

    • Search Service 2.1.0

    • Thumbnail Service 1.4.1

    • Tagging Service 2.1.1

    • Snapshot Service: removed (features replaced with Checkpoints in Core Nucleus)

View the detailed release notes



  • API server

    • [OM-32581] In-pipeline vulnerability scans, updating packages

  • Connection libraries

    • [OM-34185] Fixing Python connection library total_bytes argument being non-optional in LFTUpload interface

  • Meta dumper

    • [OM-36418] Added removing json dump from previous call

    • [OM-31965] Used idl.py@0.7 package version


  • Docker

    • Tweaked path exclusion regexp to correctly exclude strings with n and r


  • API server

    • Use OpenSSL 1.1.1i

    • [OM-34044]: fixed an stack overflow issue happening in the legacy wildcard code

    • [OM-34853]: list2 command supports optional ‘show_hidden’ flag

    • [OM-30574]: register Nucleus in the Discovery

    • [OM-28547]: support remote server shutdown through the service interface

    • [OM-24981]: Server provides special python module for omni.objects tests

    • [OM-24594]: Server owns omni.objects delta schema and publishes special package ‘omniverse.nucleus-objects.schema’ with this schema and related include files

    • fixing contention issue in authentication related API calls (same user connecting concurrently, say tens of connections at the same time, may see INTERNAL_ERROR on some of them)

    • [OM-24700]: implementing subscribe_read_asset command

    • [OM-27106]: upgrading key space in meta db, optimizing recursive operations

    • [OM-23438]: migrated omniobject business logic into omni.objects plugin

    • [OM-20491]: adding subscribe_list command

    • [OM-20475]: adding create_object command

    • [OM-20476]: adding create_asset command

    • [OM-20477]: adding update_object command

    • [OM-20478]: adding update_asset command

    • [OM-24976]: adding subscribe_read_object command

    • [OM-22912]: [refactoring] porting list command to the new code path

    • [OM-25250]: [refactoring] porting read command to the new code path

    • [OM-24711]: [refactoring] changing list2 & stat command signatures to better support versioning

    • [OM-24492]: [refactoring] porting update command to the new code path

    • [OM-23921]: [refactoring] porting create command to the new code path

    • [OM-22480]: [refactoring] porting delete command to the new code path

    • [OM-23852]: [refactoring] Porting messaging/channels to the new code path

    • [OM-23144]: [refactoring] Porting copy command to the new code path

    • [OM-22366]: [refactoring] websocketslib to support per-listener and per-connection notification callbacks

    • [OM-23843]: Updated the upload_packages.py script to only include what’s needed (both Windows and Linux)

    • [OM-23844]: Updated premake script to not put static libraries and such into the final build directory

    • [OM-21524]: Improved e2e testsuite execution: include more tests to run in parallel

    • [OM-23846]: Used nopy USD libraries for the delta USD plugin

    • [OM-10390]: Instrument ICore

    • [OM-25101]: Stripped artifact’s binaries for linux platform

    • [OM-25079]: [refactoring] Move LFT interface to omni.core

    • [OM-21815]: Added ability to query locked status by using stat/list2 requests. Added generation of unique omniobject ID by using uuid

    • [OM-22692]: idl.cpp should allow to generate C++ code using std::optional

    • [OM-25981]: [refactoring] omni.core: Added content flushing task

    • [OM-26615]: Added verbose valgrind logging and suppression’s rules to reject unnecessary output for correct memory leaks detecting

    • [OM-26513]: [refactoring] Ported mount/unmount/getMountInfo to omni.core, implemented mount cache in omni.core

    • [OM-20193]: Updated crashreporter for uploading minidumps to internal backtrace io

    • [OM-27832]: Idl.Cpp: Reactor should use poll instead of select to support any values of descriptors

    • [OM-27945]: Libcurl >1024 file descriptor support

    • [OM-22047]: Added the CloudEvent-compliant API logging subsystem

    • [OM-27051]: API server can now launch the LFT server directly

    • [OM-23239]: omni.verifier, omni.meta-upgrade tools report back the directories it’s scrubbing

    • [OM-28590]: Added possibility to measure stress tests duration, fail them if they are longer than a per-test limit

    • [OM-24140]: Stage 2 for omni.objects: support for ext. values with dedup, packed multi-part format & multi-part LFT read

    • [OM-21145]: Improved scanPage function: walking through metadb became faster

    • [OM-21145]: Stop request can interrupt list request execution

    • [OM-29538]: Make e2e server tests wait for the API server to start by trying to establish a connection in lieu of a fixed delay

    • [OM-22366]: Ported DeltaManager to omni.core. The new code is using fibers and accessing the meta db directly with transactions.

    • [OM-31141]: backup_asset() function now returns hash information

    • [OM-31143]: backup_asset() function now returns size

    • [OM-xxxxx]: adding omni_objects2 call to the server features interface

    • [OM-xxxxx]: support meta database repair in the meta-upgrade module

    • [OM-xxxxx]: checkpoints can be obliterated by users with write permission, checkpoints are created automatically with write permission preserved (the checkpoint is still immutable)

    • [OM-21815]: The List/SubscribeList requests have lock info in the response structures

    • [OM-xxxxx]: fixing a bug where old clients would get a COPY event with destination field which they don’t know about. Also avoiding doubling the COPY event by only matching the destination, not source.

    • [OM-26684]: use resolvers which are compatible with HTTPS Nucleus Cache

    • [OM-31658]: Stop request can interrupt list2 request execution

    • [OM-xxxxx]: Default ACLs are configurable

    • [OM-32548]: API acls are configurable

    • [OM-32743]: adding ‘max_full_path_length’ parameter to control maximum full path length

    • [OM-29552]: Changing default ACLs for paths

    • Bugfixes:

      • spec: ping response ‘version’ & ‘ts’ fields are now optional to avoid breaking backwards compatibility with 107 servers

      • [PSA-1687]: [fixed] security review

      • [OM-30714]: fixing a bug in legacy delete implementation, doing folder children counter fix during meta upgrade to 111 (db v.5)

      • [OM-28226]: make sure super users always see admin/write/read permissions when doing list/list2/stat

      • [OM-23240]: omni.verifier does not work when paths are specified in a relative manner

      • [OM-21118]: PathEvent doesn’t contain locked/unlocked events

      • [OM-21623]: api_server should never send responses on “stop” command

      • [OM-26234]: Resolved Ctrl+C non-clean exit

      • [OM-27863]: Fixed legacy server mount record generation: use encoded ‘path’ in mount record

  • Connection libraries

    • Use OpenSSL 1.1.1i

    • [OM-24964]: connection library: add a test for LFT/non-LFT + cache/no-cache headers

    • [OM-25180]: omni1Ext*Op* commands should be generated

    • [OM-25719]: ConnLib fails if allowed null callback is passed

    • [OM-25722]: idl.cpp connlib protocol should log json that is failed to be deserialized successfully

    • [OM-25772]: ConnLib hangs when omniStop is called from omniAuthorize/omniAuthorizeToken callback

    • [OM-27493]: Crash when omitting omniClientShutdown

    • [OM-26681]: Secure transport

    • [OM-28728]: ConnLib: LFT logic sometimes does not report error

    • [OM-28724]: ConnLib: implement LFT retry logic

    • [OM-28041]: ConnLib: server in OmniAuth*Settings may have path

    • [OM-28235]: Implement support for connecting to host:port/path in C/C++ Clients for Nucleus

    • [OM-28967]: ConnLib: Problems when omni1 objects are removed from their callbacks

    • [OM-28497]: Improve omni and omniIDL interfaces

    • [OM-28981]: connlib: support proxy management in IDL version of the connlib

    • [OM-29054]: ConnLib: Remove python2 support

    • [OM-28982]: connlib: support channels/messaging in the IDL version of the connlib

    • [OM-29444]: ConnLib: Generate C++ wrapper over omni1.h, service.h and omni1ext.h

    • [OM-29661]: ConnLib: Support for https cache (proxy) servers added. A cache server must be trusted, it sees the unencrypted traffic!

    • [OM-xxxxx]: adding omni_objects2 call to the server features interface

    • Using idl.cpp 0.15

    • [OM-29070]: More documentation for IDL functions

  • Docker

    • Changed resolver-cache image from squid to nucleus-cache

    • Added enable-test-config option for deploying nucleus api image with test config

    • Number of deployed LFTs is now configurable

    • [OM-31589] now prohibiting path elements that consist of . and ..

    • Added options and hookup to deploy with PBR and register in Discovery

    • Message bus is disabled by default

    • Switched nucleus-api, nucleus-dump-processor, nucleus-lft, nucleus-log-processor images to approved ubuntu image

    • Added repair-meta-db.sh tool into Core container

    • Switched meta-dumper to idl.py==0.6

    • Added PACKAGE-LICENSES to meta-dumper, log-processor and utl-monpx


  • API server

    • Increased timeout for stress tests in testharness.py


  • API server

    • OM-30821: [fixed] deleting a checkpoint shouldn’t generate a list notification

    • OM-30773: [fixed] do not create checkpoint if latest state is already checkpointed


  • API server

    • OM-xxxxx: legacy implementation of copy command didn’t reset rollback path and checkpointed fields


  • API server

    • OM-30714: fixing a bug legacy delete implementation, where folder children counter may become corrupted after deleting a folder with files


  • Docker Tooling

    • Added Meta Dumper sidecar

    • Exposed Service API


  • API server

    • enabling versioning by default

  • Connection library

    • Fixed usage of deleted ConnectionInformation

Discovery Service


  • Use idl.cpp 0.15

  • Fixed issues where Discovery returned “localhost” for Nucleus API with sharing option enabled


  • Use default Services over WebSocket transport, if supported_transport is not specified for finding a service

  • Support path-based discovery endpoints in high-level discovery libraries for Python and JavaScript


  • Updated discovery libraries to use idl.cpp@0.14


  • Updated discovery libraries to use idl.py@0.6 and idl.client.js@0.6


  • Fixed executable to run on CentOS

  • Use Python 3.8.7 with proper licenses on workstation

  • Added more details for registration and client logs

  • Fixed a server error caused by empty service metadata

Authentication Service


  • Support secure transport and path-based routing

  • Deprecated @omniverse/web-components library

  • Fixed text alignment on Linux for buttons displayed in the authentication form

  • Changed SAML implementation to read usernames from subject

  • Support specifying NameID format for SAML authentication

  • Authentication status page now detects errors when sending results back to the application that initiates the authentication

  • Fixed vulnerability that allowed to download any file from the deployed container


  • Internal build infrastructure changes

  • Linux fix for the client library


  • Use idl.cpp 0.14 for C/C++ libraries


  • Allow configuring used ports via System Monitor

  • Allow using dots and dashes to register internal accounts


  • Use Artifactory for PIP and NPM

  • Updated omni_config_py library to store data files in a new Omniverse location

Thumbnail Service


  • Removed memory limit checks. Capping the data does not work for larger TIFFs.

  • Added more prometheus counters: create thumbs with and without cache, image download time, load time for hdr files.

  • Added auto-reconnect back.

  • Added config variables for thumbnail cache location and connection retry timeout.

  • Updated the image library Pillow to version 8.2.0.

  • Updated the websockets library to version 9.1

  • Switched to discovering Nucleus as well and enabled path based routing.

  • Updated discovery client to 1.3.0.

  • Updated Python version to 3.8.7.

  • Updated the psutil library to version 5.8.0

  • Disabled ping interval of websockets used in OmniClientTransport.

  • Added task queue to not block the list subscription when possible. Not multi-threaded, just asyncio.


  • Store generated thumbs with .auto.png extension.

  • Updated the image library Pillow to version 8.1.2.

  • Thumbnail cache per file hash in /.system/thumbnailer/.thumbs/[hash]/[resolution]/thumb.png

  • Auto restart on error is only happening for the workstation builds (service runs as subprocess).

  • Upgraded aiohttp to 3.7.4.

  • Updated discovery client to 1.2

  • Updated IDL packages to 0.6

  • Switched to generated python nucleus connection 11.6 (Nucleus 110.3).

    • Supports now file copy and rename events.

  • Using LFT for downloading and uploading files.


  • Updated omni-config-py with bugfixes for paths on Windows.

  • Updated omniverse.discovery.client.py with detailed error logs.

Tagging Service


  • 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.


Upgrades from older versions than 2021.2.0 are not officially supported. Performing such an upgrade may result in loss of data. Contact your technical support representative if you wish to upgrade from a version older than 2021.2.0