111.6

  • API server

    • [OM-38293] [fixed] output logs to stderr

    • [OM-34667] [fixed?] fix non-printable symbols in TSV

111.5

  • API server

    • [OM-36424] [fixed] Deleting files does not delete checkpoints; causing some empty dirs to fail deletion with FOLDER_NOT_EMPTY while they are empty

    • [OM-38134] [fixed] setting new ACLs through set_acl_v2 using either HEAD or any of the checkpoints sets ACLs for all of them”

    • Log processor: now sets a debug copy of a log it’s parsing aside for later debug purposes in event of a crash

111.4

  • API server

    • [OM-xxxxx] adding missing licenses

111.3

  • API server

    • [OM-37492] disabling new style log system

    • [OM-36781] Used libwebsockets b824504c package version with fixed pong payload issue

    • [OM-xxxxx] api server: meta-upgrade - fixing an issue when paths without a history (such as a channel) weren’t upgraded (110->111)

    • [OM-xxxxx] api server: meta-upgrade - v2->v3 DB upgrade incorrect optional field handling when upgrading mounts

    • [OM-xxxxx] api server: meta-upgrade - fixing an issue while upgrading 109->110, functions to correctly create a key in the DB given

    • [OM-xxxxx] fixing freeze scripts

    • [OM-xxxxx] updating idl (ability to deserialize non-positive floats)

111.2

  • 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

111.1

  • Docker

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

111.0

  • API server

    • Use OpenSSL 1.1.1i

    • [OM-34044]: fixed an stack overflow issue happenning 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 ownes 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 comand 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 implemenation, 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]: omni1ExtOp 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

110.8

  • API server

    • Increased timeout for stress tests in testharness.py

110.7

  • 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

110.6

  • API server

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

110.5

  • API server

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

110.4

  • Docker Tooling

    • Added Meta Dumper sidecar

    • Exposed Service API

110.3

  • API server

    • enabling versioning by default

  • Connection library

    • Fixed usage of deleted ConnectionInformation

110.2

  • API server

    • [OM-28238]: better support path based routing for lft_address configuration field

    • [OM-25729, OM-29230] * Make the default timeout for delta manager process startup larger

    • Fixed bug in tasking (access to member of potentially destroyed object)

    • Add missing template parameter to ResponseHanlderData (ApiRouter.cpp)

  • Connection library

    • Fixing backwards compatibility break with 107 servers in ping command response

    • [OM-29194]: ServerFeatures interface extended with versioning() command to check if versioning is on

  • Docker

    • Added nucleus-dump-meta image

    • Log processor: now, reports a note (instead of an error) when the source log isn’t there

110.1

  • Docker

    • Updated CI-related tooling to generate proper branch names

110.0

  • API server

    • Fixing concurrency issues in the legacy code path, when sometimes orphaned paths could appear

    • Content deduplication (stage 1)

      • Upon first server startup existing content is deduplicated

      • Upon uploading content that server already contains, the content is reused and not duplicated

      • It’s possible to create / update a file by simply providing a hash of content

      • create_asset_with_hash/update_asset_with_hash calls

    • Versioning support (stage 1)

      • [OM-18969]: [added] get_branches call

      • [OM-18970]: [added] get_checkpoints call

      • [OM-18968]: [added] replace_branch

      • [OM-18967]: [added] checkpoint_version call

    • [OM-1776]: [added] rename call

    • [OM-19265]: [added] list2 call

    • [OM-13634]: [added] stat2 call

    • [OM-20538]: [added] delete2 call

    • [OM-20703]: [added] copy2 call

    • [OM-18615]: [added] create_directory call

    • [OM-12059]: [added] get_acl2/set_acl2 calls (now it’s possible to provide multiple paths at once)

    • [OM-18149]: [added] lock, unlock, get_acl, set_acl migrated to the new code path, legacy code is deprecated (will be removed in the next release)

    • [OM-18108]: [added] test tokens support

    • [OM-17756]: using faster regex library internally within API server

    • Removing legacy implementation of all user management API calls, ping and get_transaction_id

    • Implementing new ServerFeatures interface to query server-side configuration parameters

    • Make sure static C++ runtime is used on Windows and Linux

    • Using latest omnitrace v0.5

    • Use carb.launcher v0.2 plugin to kill child process (delta server) automatically and avoid keeping it hanging

    • using carb.tasking plugin that is asan-aware on Linux

    • Disabling API server console input by default

    • [OM-9621]: use latest carb.logging, supporting log append (instead of overwrite)

    • [OM-17326]: better handling for long-running connections (problems with LFT access)

    • [OM-20500]: use breakpad on windows and linux builds

    • [OM-17646]: Handling non-ascii / non-utf8 paths

    • [OM-21126]: respond with NOT_OBJECT instead of DENIED when trying to create a usd/usda/usdc file when omniobject_mode: true

    • Removing omniobject_mode

    • Updating license automation

    • bind to localhost for prometheus metrics by default

    • delta server: bind to localhost by default

    • omni.meta-upgrade: support ‘enabled’ config option

    • [OM-13587] Using idl.cpp 0.14

    • Bugfixes:

      • [OM-9621]: [fixed] server purges its log files upon restart

      • [OM-10230]: [fixed] api server, supporting * as host name for LFT address - bugfix

      • [OM-17001]: [fixed] not able to grant write access

      • [OM-17597]: [fixed] Permissions not inherited from directory

      • [OM-17644]: [fixed] Unable to list folders with special characters in their names.

      • [OM-17807]: [fixed] Admin role not recognized on login

      • [OM-18557]: [fixed] simplify meta db storage for mounts

      • [OM-19061]: [fixed] Nucleus Server returns INVALID_PARAMETERS for content ID without uploaded content

      • [OM-19565]: [fixed] fix path existence check

      • [OM-19679]: [fixed] create(overwrite=true) doesn’t work with LFT enabled

      • [OM-19764]: [fixed] access denied for user on localhost server

      • [OM-19765]: [fixed] no user folder created on localhost server when new user is registered

      • [OM-20471, OM-20787]: [fixed] rename bugfixes

      • [OM-18253]: [fixed] convertation of all timestamps to uint64 numbers (internal meta db upgrade)

      • [OM-18287]: [fixed] revive omnitrace coverage in the API server

      • [OM-19804]: [fixed] delta server sometimes can be terminated without it actually hanging

      • [OM-22103]: [fixed] client capabilities check

      • [OM-22105]: [fixed] created timestamp invalidated by delta manager

      • [OM-22111]: Fixed omni1.idl.ts and core.idl.ts interface/protocol description to provide backward compatibility between API server and Connection library up to 107.6 release.

      • [OM-22425]: Fixing confusing message about failing to delete access log by checking whether the log file exists in the first place

      • [OM-22589]: remove breakpad module and using it from Carbonite

      • [OM-19183]: Fixing default permissions for /Users/ folder to be read-only for users

      • [OM-23913]: [fixed] Mechanism to remove renewed files and directory records from the ignore list did not work correctly.

      • [OM-23703]: [fixed] Fixed signal handler to use only signal-safe functions.

      • [OM-23705]: [fixed] Fixed methods versions in omni1.idl.ts and core.idl.ts

      • [OM-19183] Fixing default permissions for /Users/ folder to be read-only for users

      • [OM-22829] Fixing incorrect behavior when omni object created with “overwrite=true”

      • [OM-23913]: [fixed] Mechanism to remove renewed files and directory records from the ignore list did not work correctly.

      • [OM-23703]: [fixed] Fixed signal handler to use only signal-safe functions.

      • [OM-23705]: [fixed] Fixed methods versions in omni1.idl.ts and core.idl.ts

      • [OM-27321]: [fixed] Fixed removal of needsdm flag in the meta db, when deleting files

  • Connection libraries

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

  • Docker

    • Tweaked Launcher to not require server CL on start

    • Added hookups for data conversion/import process

    • Tweaked release-nucleus.py to use repo tags

    • OmniFlow-compliant naming of artifacts

    • Dockertools supporting BuildKit added

109.9

  • Docker / Launcher

    • [OM-25462] Fixed a bug with Launcher’s default configuration preventing creation of paths containing ,

109.8

  • API server

    • [OM-24673] Upgrade to omni-config-cpp 2.0.1

  • Connection library

    • [OM-24673] Upgrade to omni-config-cpp 2.0.1

  • Bugfixes

    • [OM-23462] Pull dependencies through internal instance of Artifactory

    • [OM-23905] Fixing authentication failure when tracing is enabled on the client

  • LFT server

    • Cleaning up access logging

    • [OM-23101] Fixing LFT server performance regression

    • [OM-24385] LFT server: try to extract missing headers from the request by using other headers / remote IP address

  • Tooling

    • omni.verifier improvements (reporting unserialized meta records, support exit_on_failure options)

    • omni.meta-upgrade changes (upgrading meta db to version 4)

  • Connection libraries

    • Bugfixes (OM-17003)

    • Fixing concurrency issue in LFT code

    • Move user callbacks from under the lock to avoid possible deadlocks

    • Removing legacy file-based cache managed by the connection library

    • Adding TOKEN_EXPIRED error code in token-based authentication

    • [OM-18419]: Supporting OMNI_CONN_CACHE env.var to simplify using the new HTTP cache

    • Deprecating omniAuth, OmniAuthSettings, OmniAuthTokenSettings::cacheLocation, OmniAuthTokenSettings::enableCaching

    • Updating IDL internal implementation

    • Supporting separate interface called “ServerFeatures” meant to provide an API to query server features (omniobjects, lft, hash information, etc)

    • Functions to compute hash of content (see create_asset_with_hash/update_asset_with_hash calls)

    • Fixed lock/unlock event names

  • Docker Tooling

    • [No Jira Ticket] Modified CI pipeline and tooling to match OmniFlow versioning, and cleaned up ports allocations

    • [No Jira Ticket] Modified Launcher, tooling to have an option to upgrade Meta DB and exit

    • [No Jira Ticket] Switched Delta Server control tool to new Service API

    • [No Jira Ticket] Switched all Python-based tooling to Python 3.8

    • [OM-8332] Added PACKAGE-LICENSES to lft server image config and licenses.sh script for generating licenses file

109.7

  • Bugfixes:

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

109.6

  • API server

    • [OM-19764] Fixed auth command to add new user to ‘users’ group if that user was added to some other group before first login

    • [OM-19765] Fixed auth to create default folder for new user which was added to some group before first login

    • [OM-19804] Improved connection to delta server process: several attempts are performed. Number of attempts and time interval between them can be configured

    • [OM-20195] Fixed copy() command to create missing directories on copy()-destination path

    • [OM-19912] Fixed data corruption due to lack of thread safety during legacy server meta cache update

  • Connection library

    • [OM-20244] Fixed LFT failure due to missing LFT pools cleaning on shutdown

109.5

  • API server

    • [OM-19787] Fixed data corruption caused by LFT garbage collection

    • [OM-19565] Fixed path existance check in Create command to allow creation of missing folders

    • [OM-19912] Improved transaction usage and legacy server locking in setAclV2 implementation in omni.core.

109.4

  • Connection library

    • [OM-17646] Added UTF-8 checks for input strings

    • [OM-16634] Updated idl.cpp library to avoid hang of connection library due to deadlock

109.3

  • API server

    • [No Jira Ticket] Disabled input system

    • [No Jira Ticket] Fixed API server hang due to infinite loop

  • LFT server

    • [No Jira Ticket] Cleaned up access logging

  • Docker

    • [No Jira Ticket] Added squid to stack config as nucleus-resolver-cache, modified proxy healthcheck (check_px) from launcher

    • [No Jira Ticket] Added star and backslash to the list of disallowed path chars by default

    • [No Jira Ticket] Added support for configuring OO mode (on/off)

    • [No Jira Ticket] Fixed bugs in the stack config. It wasn’t properly mount the Resolver Cache data volume

    • [No Jira Ticket] Removed nginx as nucleus-resolver-cache from image and stack configs as well as nginx prometheus exporter

109.2

  • API server

    • [No Jira Ticket] Fixed server’s incorrect exit code value. Now server returns proper exit code when it couldn’t startup

    • [No Jira Ticket] Fixed API server threading code to prevent possible crashes and data corruption

109.1

  • API server

    • [OM-18366] Fixed incorrect records during meta upgrade

    • [No Jira Ticket] Removed legacy users

109.0

  • API server

    • [No Jira Ticket] Added internal documentation in the code

    • [No Jira Ticket] Added allowance for home directory existence before new user creation

    • [OM-8215] Added support for omniobject cache to enable LFT / cache compatibility

    • [OM-5999] Added server notifications

    • [OM-8969] Added new set_path_options API call that allows to change created/modified/created_by/modified_by properties for a path

    • [OM-12059] Added new get_acl, set_acl API calls for omni.core plugin. Now vectorized forms of these calls are supported through the new auto-generated connection library. Old (scalar) calls are converted to the new form (i.e. an array of size 1)

    • [No Jira Ticket] Added carb.launcher 0.2 version to automatically terminate child process (delta server)

    • [OM-13227] Considered logged in user as an admin in case auth token specifies it

    • [No Jira Ticket] Fixed content refcount issue leading to some pieces of content never being removed

    • [No Jira Ticket] Filtered out non essential ‘list’ event for the message bus and list subscriptions

    • [OM-12617] Fixed access logging

    • [OM-12297] Properly stream a data that will be compressed by the delta process instead of sending it in one giant chunk

    • [No Jira Ticket] Memory management bugfixes: new[]/free mismatch, removing unnecessary heap allocations, fixing heap use after free, etc

    • [OM-10588] Replaced C assert with a special OMNI_ASSERT macro which converts assertion into error messages in the log in release build and behaves like assert in debug build

    • [OM-11850] Updated LOCK command. Now it supports etag as an optional argument

    • [OM-10257] Updated CREATE command. Now it supports ‘overwrite’ flag as an optional argument

    • [No Jira Ticket] Updated to omnitrace v0.4

  • Misc

    • [OM-15078] Changed all OV_ environment variables prefixes to OMNI_

  • LFT server

    • [OM-8215] Added omniobject cache support

    • [OM-14527] Added proper expiration of a content being uploaded through LFT. Fixes an issue leading to pieces of content never being deleted in case file upload was not finalized through the API server

    • [No Jira Ticket] Updated to the latest IDL for interface between API and LFT servers

  • Tooling

    • [OM-14890] Added omni.verifier improvements: reporting unserialized meta records, added exit_on_failure options

  • Connection libraries

    • [OM-6457] Added raising an exception in case connection is not established in python

    • [OM-9047] Added compression improvements

    • [OM-8969] Added new set_path_options API call that allows to change created/modified/created_by/modified_by properties for a path

    • [No Jira Ticket] Exported reactor functionality through the interface to allow integrating with connection library reactor

    • [No Jira Ticket] Removed init.py in python versions of all libraries

    • [OM-10257] Updated CREATE command. Now it supports ‘overwrite’ flag as an optional argument

    • [No Jira Ticket] Updated to omnitrace v0.4

  • Docker

    • [No Jira Ticket] Added ASAN options for special address sanitizing builds

    • [No Jira Ticket] Configured the server to disable terminal control chars in paths

108.1

  • API server:

    • Fixing code generation issue (build issue only)

108.0

  • API server:

    • Metrics improvements

    • Introducing omni.messaging, the interface to the message bus

      • Publish messages about events hapenning in the Omniverse path space

    • Introducing omni.core, fiber-based server

      • Moving user-group management, get_transaction_id, ping, authorization under omni.core

    • Automatically generating meta data serialization code from spec

    • Automatically generating API serialization code from spec

    • Breaking ApiServer.cpp into a command per file

    • Supporting omniobjects mode (see docs)

    • Numerous bugfixes

    • Asynchronous key-value database interface, introducing transactions, basing all new code in omni.core on transactions. Fiber wrappers for callback interfaces.

    • Introducing forward compatibility feature.

      • From this release onward the server will not decline connections from newer connection libraries. Instead clients are expected to check capabilities reported by the server.

    • Fixing config file collision between omni.server and omni.delta-server

    • Supporting meta database upgrade (both in omni.server.app and with a separate tool omni.meta-upgrade.app)

    • Fixing LIST behavior regression

    • Fixing api log regression

    • Supporting copy with 0 transaction id (it’ll use latest)

    • Split delta process communication into blocks of 128Mb

    • Support ‘allowed_users_legacy’ server setting allowing to limit users from using legacy authentication

    • Fixing UPDATE regression (locked updates do not accept non-empty etags)

    • Pseudo accounts disabled by default

    • omni.websockets: increasing maximum length of HTTP headers

  • Misc

    • Env vars renamed to use OMNI_ prefix, and naming generally cleaned up

    • Removed Docker Images’ docs and Kube samples

  • Tooling

    • Separate tool omni.meta-upgrade.app to upgrade meta database from previous installation / deployment

    • log_processor: bugfix: archiving logs subprocess could lead to logs’ corruption and log data loss

  • Connection library

    • Bugfixes

    • Use portable toolchains to build linux x86-64 and aarch64 versions of the connection library

    • Follow redirects when accessing external links

    • Update to latest curl

    • Support encryption and compression (zlib, brotli)

    • Autogenerate new connection libraries for py/js/C++, the current manually implemented library is still supported but is planned for gradual deprecation

    • Fixing time handling in Python bindings

    • Request compressed encoding when accessing external HTTP(S) resources

    • Use the latest omnitrace API

    • Add some more instrumentation to trace commands end-to-end

    • Allows for update-to-readsubscription (replication) latency measurements without server instrumentation

    • Deprecating legacy authentication

  • Docker Hookups

    • Added necessary code to configure Redis for messagebus

    • Added prometheus exporter for Redis messagebus

    • Core API image now exposes an env var for setting a Master password

  • Misc

    • Env vars renamed to use OMNI_ prefix, and naming generally cleaned up

    • Removed Docker Images’ docs and Kube samples

107.11

  • Connection library

    • Use the latest omnitrace API

    • Add some more instrumentation to trace commands end-to-end

    • Allows for update-to-readsubscription (replication) latency measurements without server instrumentation

107.10

  • API server:

    • Cherry-picked “fix delta content process config collision with api server”

107.9

  • Connection library:

    • Exclude unreachable proxy servers when a new connection is created

    • Adding omniIsLocalCacheAvailable function

    • Set OmniReadResult::cached to true when the content was delivered through the shared cache (new cache)

107.8

  • Hang detection logic

    • Switched configuration parameters from int to float to allow setting smaller values than 1 for the bandwidth estimates.

107.7

  • Docker Hookups

    • Configured to allow file mounts from within mnt subdir of the instance’s data dir

107.6

  • API server:

    • Fixed data corruption issues related to incorrect refcounts

    • Fixed issues with communicating to Delta Server due to http_proxy env variable being set for S3 resolver to cache files’ metadata

    • Use S3 resolver which support timeout

    • Fixed mount overwrite bug, where it would be possible to remove content with no regard to content refcount from the content storage by copying a file over from a mount.

    • Supporting delta server metrics making it possible to monitor its performance

    • Ability to change master password (for ‘omniverse’ user) from settings

    • Support “allowed user” feature, a list of users allowed to authorize with the server

    • Make connection failure to delta compressing process a hard stop for the API server

    • Detect if a command has taken too long to respond and, if so, remove it

    • Fixing incorrect behavior in LIST

    • Support deep copy of zero-length files from a mount

    • Update delta format plugins to use latest USD

    • Fixing garbage collection of re-created folders

    • Record delta updates in the access log

    • Try to repair LevelDB database before giving up

  • LFT server:

    • Raise exception instead of returning it (bugfix)

  • Docker Hookups

    • Now using nginx-prometheus-exporter from docker hub rather than nvcr.io

    • Launcher modified to export number of files from Delta Server’s Path Blacklist

    • utl-metricpx renamed utl-monpx and can now show Delta Server’s blacklist at /ds_blacklist URL

    • Added a simple script, dev-deploy.py, to stand up dev instances

  • Tooling

    • nvidia.omniverse.server.control: added commands for Delta Server blacklist management

    • Added ds_control.py command line tool

    • Added ws_command.py command line tool to talk to the Server’s Control Channel

  • Connection library

    • Fixing LFT route choice (only when LFT is accessible) when uploading content using streaming

107.5

  • API server:

    • Support emergency password recovery procedure (add ‘@’ in front of the username to reset password)

    • Fixed bug where path names were being truncated at 512 bytes in length

    • Bugfixes for possible issues initializing metadata

    • config for prometheus - use integers where needed

    • Added a configuration option which lets mount read and list commands run in concurrently. Disabled by default, but to enable it just set “concurrent_mount_commands” to true in the JSON configuration file for the server.

    • Updated delta format plugins to nv-usd and usd_ext 19.11 (newer build, OM-8789)

    • Fixed race condition in omni.eventsystem

    • Load resolver settings correctly - do not use string pairs as this loses JSON typing

    • Optimize requests to resolver (do a single stat if possible and do stat + list if necessary instead of doing stat + list always)

    • Updated Linux build rules - cleanups, preventing from depending on host libstdc++

  • Connection library:

    • Lock Python GIL when omniReleaseConnection callback is called

    • Checks for Python reactor on execute

    • Fixed time handling in Python ConnWrapper

  • Docker Hookups

    • Resolver-cache added to stack

107.4

  • API server:

    • Only use omniobjects if omniobjects library was suscessfully loaded (resolves issue with the index service crashing the server on Centos 7)

  • Docker hookups:

    • Lowered default LFT threshold to 256K

    • Added a “simplified” deploy option to exclude extra infrastructure services

107.3

  • API server:

    • Adding ‘asset_converter’ to the default user list

107.2

  • API server:

    • Fixing config mount issue (OM-7829)

  • Connection library:

    • Load redirections even if LFT server is not available (for Cloudfront redirections)

107.1.9

  • API server:

    • Updating delta manager plugins

    • Use jemalloc on Linux

    • Do not block during lengthy delete/list operations

    • Updating deployment infrastructure

  • Connection library:

    • Updating omni trace library

107.1.8

  • Default mounts

    • Changed to use omniverse-content-production bucket and have a root at /NVIDIA

107.1.8

  • API server:

    • Fixing a bug with updating meta data for just a folder, it was not preserving the ‘created_by’, ‘modified_by’ etc. fields.

    • Using libcurl with a license (built according to the licensing requirements)

  • Connection library

    • Fixing LFT buffer overflow reporting bug

    • Follow redirects when accessing external links

107.1.7

  • API server:

    • mounts/allowed_mount_resolver is a strict whitelist now

    • Fix for read notifications delivery delay

    • Fix for possible (not seen previously) issue where some read notifications may be skippped

    • Fix for crash during reading content during client disconnect

    • Enforce mounts read-only

    • Remove mounts coming from config file during startup before adding a new set of mounts specified in the config file

    • Delta manager optimizations

    • Adding ‘admin’ user (same as ‘omniverse’)

  • Connection library:

    • Fixing incorrect behavior when LFT content buffer data overflow happens

    • 9.10: support omniGetServer, omniGetToken, omniGetUser to clone a connection

107.1.6

  • API server:

    • Support mounts/default_mounts option (specifying this would create mounts on startup automatically)

    • Support mounts/allowed_mount_resolver option (specyfing this would prevent users from mounting using certain resolvers)

    • Support mounts/allowed_file_resolver_root option (specifying this would prevent users from mounting path with certain prefixes)

  • Docker hookups:

    • Added support for default, “out of the box” mounts to deployed servers

107.1.5

  • API server:

    • Support predefined mounts in the configuration file

    • Removing old unnecessary code

107.1.4

  • API server / Delta server:

    • Correctly handle “bye” command and wakeup the server upon receiving SIGINT/SIGTERM

107.1.3

  • API server:

    • Updated delta format plugins to nv-usd and usd_ext 19.11

  • Connection library:

    • Use newer curl (support windows ssl certificates)

  • Infrastructure:

    • Updating core dump processor

107.1.2

  • API server:

    • Fixes to better handle filters during list subscriptions

  • Connection library:

    • Follow redirections when accessing external links (like cloudfront)

107.1.1

  • API server:

    • Fixes for “support list subscriptions to nonexistent paths”

  • Docker hookups:

    • Added nucleus-dumps-processor service to push coredumps to Loki

107.1

  • Connection library:

    • Support list subscriptions to nonexistent paths

    • OMNI_CONN_REDIRECTION_DICT now expects API server port/address

    • v9.9 - More utility functions (omniGetServerStatus, omniRegisterConnectionDestructionCallback)

    • v9.10 - Connection is refcountable. For each omniGetConnectionWithId a corresponding omniReleaseConnection call is expected.

  • LFT server changes:

    • Better handle Content-Range header to be compatible nginx

  • Monitoring:

    • Improved logging in metricpx

    • Improved core dump automation

  • API server:

    • Using gcc 8.2.0 toolchain

    • Support list subscriptions to nonexistent paths

    • Mount fixes

    • statically link C++ runtime in all modules

    • use ld script for all modules to reduce export surface

107.0

  • Repository changes:

    • removed copy_server

    • removed api_server

      • kept docs and tests and move them into api_server_cpp

      • kept scripts and move them into server_tools

    • removed delta_server

    • removed api_server_cpp/ext

    • removed common/templates/python/python_exe_with_cmdargs.py

    • removed tools

    • moved ov-tools into separate repo, omnitools

    • moved ov-dash into omniops repo, tools/ dir

    • renamed api_server_cpp to api_server

    • updated .clang_format for api_server and api_client to be inline with Carbonite

    • made .editorconfig common for both api_server and api_client

  • API server changes:

    • [?] deprecated OmniverseClient. Instead use connection library.

    • moved sources around to adhere to a typical Carbonite project structure.

      • created omni.server module, containing all of the existing API server code

      • renamed OmniverseServer -> omni.server

      • renamed DeltaContentServer -> omni.delta-server

      • moved api_server/plugins to api_server/src/plugins/non-carb.plugins to separate them from real Carbonite plugins.

        • later these plugins will become real Carbonite plugins and we will move them top api_server/plugins/omni.*

      • moved api_server/source into api_server/src/plugins/omni.server

      • moved and organize tests. Those tests which measure performance are under api_server/tests/performance/

      • moved existing server tests to api_server/tests/e2e - end-to-end tests

      • moved private server headers from include/ into src/plugins/omni.server along with the sources

        • include/ now is only supposed to contain public headers, i.e. headers used by other applications or modules

    • Supporting mounts feature

  • LFT server changes:

    • Supporting mounts feature

  • Connection library

    • v9.8 - Deprecated explicit ‘statusDescription’ from each result, added ‘omniGetStatusDescription’ funciton

    • v9.7 - Supporting OmniAuthResult::isSuperuser property

    • v9.6 - Python bindings use logTarget instead of logCallback in init settings.

    • v9.5 - added kOmniErrorTypeLftCouldntConnect, kOmniErrorTypeLftProxyCouldntConnect

    • v9.4 - mount does not use server_redirect_url (options are used instead).

    • v9.3 - list command supports showHidden option (false by default).

    • v9.2 - adds support for omni objects

  • Docker hookups

    • Reworked to support the above

    • Removed special promtail image - Promtail now comes standard as a part of Docker tooling

    • loki-url deploy option renamed to loki

    • omni-instance deploy option renamed to instance

    • Renamed all artifacts to have new Nucleus notation

  • Docker docs

    • kube.md now out of date, renamed to _kube.md to indicate that

    • images.md updated to reflect reality (mainly, naming updates)

106.4

  • Connection library

    • Support subscription to nonexistent paths

    • 9.1b: support omniGetServer, omniGetToken, omniGetUser to clone a connection

  • API server

    • Support subscription to nonexistent paths

    • Fixed verifyPermissions crash

106.3

  • Docker hookups

    • Added promtail log collector

    • Added option for loki-url to stack-config

106.2

  • Connection library:

    • Fixing LFT <-> reactor interaction that leads to hanging LFT downloads

106.1

  • Core Server

    • Handle empty uri in LIST

106.0

  • Core Server

    • User/group management

    • Libwebsockets transport enabled by default

    • Delta compaction using nv-usd 19.07

  • Connection library:

    • Version 9.1:

      • PEP8 compliance

      • Reorganization of the folder structure of the library

      • User/group management

      • Fixing omniStop not being able to stop omniAuthorize

105.5 hotfix

  • Docker hookups

    • When using Stack Config for deployment, newly deployed servers now get a Marker file showing which server and version this is

  • Core Server

    • Backported LIST / show_hidden option

  • Connection library

    • Backported LIST / show_hidden option and bumped the version to 8.8

105.4 hotfix

  • Docker hookups

    • Ditched most of the legacy cpp notations and moved files around to match

    • New service names:

      • core-api remained

      • core-lft remained

      • log-processor renamed core-log-processor

      • metricpx renamed utl-metricpx

    • Renamed image configs to match service names

    • Added a lot of ENV vars for config options for sidecar images (log processor, metricpx, et al)

    • Docs for images and how to get them in docker/doc

105.3 hotfix

  • Core Server

    • Fixed Access.log to not include INFO as Command

    • Instead, INFOs include -- as their “direction”.

  • Log Processor / Metrics Generator

    • Updated to handle the above

105.2 hotfix

  • LFT server

    • Fixing HEAD handler (should fix omnicache)

    • Fixing logging for HEAD request

  • Connection library:

    • Fixing py2/py3 wrapper for delete - changing stop condition to prevent client hangs

  • API server:

    • Internal code changes that shouldn’t affect he API - reorganizing code that gets server time for all responses.

~2019.5~ 105.1

  • Versioning

    • Versioning changed to YYY.ZZ where YYY is sequential version number, starting with 100, and ZZ is patch.

    • This version is assigned version 105.1 to maintain continuity. Next version will be 106.0

  • Architecture

    • LFT added to the Server

  • Connection Lib

    • 07/11/2019 : OM-4110 : Fix a stale char ptr : ssantoleri/ishutov

    • 07/20/2019 : Fixing connection library request id ordering

  • API server changes

    • 06/26/2019 : OM-3100 : Refactored the code base to use RapidJSON for all JSON processing : jratcliff

    • 06/26/2019 : OM-3256 : Fixed bug if commands were issued for files that don’t exist : jratcliff

    • 06/26/2019 : OM-3190 : Added a debug string in ‘MessagePacket’ indicating which record it refers to : jratcliff

    • 06/26/2019 : OM-3232 : Defer deleting the UserAccountInstance until the next pump cycle : jratcliff

    • 06/26/2019 : OM-2856 : You can disable password checking by passing: “-disablepasswords true” : jratcliff

    • 06/27/2019 : OM-3084 : Implemented timestamps for update/read subscription responses : jratcliff

    • 06/27/2019 : OM-3167 : existsRecord method was too slow, sped it up. : jratcliff

    • 06/27/2019 : OM-3575 : Calling ‘flush’ after ever write to a record : jratcliff

    • 07/04/2019 : OM-3113 : Store delta manager repro cases and black list in data dir. Prettyprint json. : sduthaler

    • 07/04/2019 : OM-3114 : ApplyDelta() is run in a separate process to handle crashes and hangs. : sduthaler

    • 07/09/2019 : OM-3535 : Added transaction id to message result for channel messages : brianh

    • 07/11/2019 : OM-3096 : CPP server now using an ‘event based’ API for websockets : jratcliff

    • 07/11/2019 : OM-3096 : Command line argument: -websockets specifies which websockets plugin : jratcliff

    • 07/11/2019 : OM-3096 : Integrated libwebsockets dependencies into the libwebsockets plugin : jratcliff

    • 07/11/2019 : OM-4142 : Implemented the ‘createrandom’ command which runs the create benchmark but in a randomized folder location : jratcliff

    • 07/12/2019 : OM-4142 : Added the ‘-contentflushtime’ command line option, specifies time in seconds before flushing content records. Default value is 10 seconds. : jratcliff

    • 07/12/2019 : OM-4173 : Due to this bug, had to use standard OS file find to fix delete records on startup issue : jratcliff

    • 07/12/2019 : OM-4174 : Created ‘deltatest’ and ‘deltatestlocked’ benchmark commands to diagnose delta server bugs : jratcliff

    • 07/15/2019 : OM-4175 : Hash computation no longer asynchronous

    • 07/19/2019 : OM-0000 : Restored the framed message send with flood control code : jratcliff

  • Docker and Devops Tooling

    • Service name for the API server changed from ov-cpp to core-api

    • Stack name changed to ov-core

    • Image config added and stack config updated to support LFT

    • Fixed RAM footprint control of API server to work again

    • Log processor and stats generator updated to support a couple more stats for API Server, and LFT server support added to it.

    • Core API server now launched via the launcher

    • Now, metrics are exposed by containers individually and aggregated via a new service, ‘metricpx’

2019.4

NOTE: this release was backed out from the release candidate server, so the next release will contain the same changes and some more.

  • Connection Lib

    • 07/11/2019 : OM-4110 : Fix a stale char ptr : ssantoleri/ishutov

  • API server changes

    • 06/26/2019 : OM-3100 : Refactored the code base to use RapidJSON for all JSON processing : jratcliff

    • 06/26/2019 : OM-3256 : Fixed bug if commands were issued for files that don’t exist : jratcliff

    • 06/26/2019 : OM-3190 : Added a debug string in ‘MessagePacket’ indicating which record it refers to : jratcliff

    • 06/26/2019 : OM-3232 : Defer deleting the UserAccountInstance until the next pump cycle : jratcliff

    • 06/26/2019 : OM-2856 : You can disable password checking by passing: “-disablepasswords true” : jratcliff

    • 06/27/2019 : OM-3084 : Implemented timestamps for update/read subscription responses : jratcliff

    • 06/27/2019 : OM-3167 : existsRecord method was too slow, sped it up. : jratcliff

    • 06/27/2019 : OM-3575 : Calling ‘flush’ after ever write to a record : jratcliff

    • 07/04/2019 : OM-3113 : Store delta manager repro cases and black list in data dir. Prettyprint json. : sduthaler

    • 07/04/2019 : OM-3114 : ApplyDelta() is run in a separate process to handle crashes and hangs. : sduthaler

    • 07/09/2019 : OM-3535 : Added transaction id to message result for channel messages : brianh

2019.3

  • Deploy tooling

    • Added hookups to ensure that release versions are returned by deployed stacks

  • OV CLT Tools

    • sync_tree.py - added ability to use e-tags to prevent repeat downloads

  • API server changes

    • 06/07/2019 : OM-0000 : Integrated in-memory keyvalue database plugin : brianh

    • 06/07/2019 : OM-2857 : Fixed bug when downloading mount files over ov-web : jratcliff

    • 06/08/2019 : OM-2867 : Fixed ACL permissions bug after omni-web rename : jratcliff

    • 06/10/2019 : OM-2659 : Moved the DeltaContent operation into a separate process : jratcliff

    • 06/10/2019 : OM-2885 : Integrated the Carbonite process ‘Launcher’ plugin : jratcliff

    • 06/10/2019 : OM-2891 : Partial integration of shared memory IPC library into a plugin : jratcliff

    • 06/11/2019 : OM-2855 : Reduced the CPU consumption of the server : jratcliff

    • 06/12/2019 : OM-2905 : List doesn’t report ‘admin’ folders using an exclusion list : jratcliff

    • 06/13/2019 : OM-0000 : Disabled launching DeltaContentServer as a separate process temporarily : jratcliff

    • 06/13/2019 : OM-2949 : Fixed bug when a copy command referenced a non-existent source diretory : jratcliff

    • 06/13/2019 : OM-2949 : Added a new debug log channel ‘metadirectory’ for virtual file system table : jratcliff

    • 06/13/2019 : OM-2949 : Fixed bug where ‘-logdir’ wasn’t being honored at startup : jratcliff

    • 06/13/2019 : OM-2949 : Fixed a bug with the OmniResolver list command, because the callback can happen immediately : jratcliff

    • 06/13/2019 : OM-2942 : Added a command line option: “-sequentialcommands” to diagnose this bug : jratcliff

    • 06/14/2019 : OM-2964 : Renamed CopyServer to CopyManager and DeltaServer to DeltaManager : jratcliff

    • 06/18/2019 : OM-2995 : Put mount specifications in a separate config file ‘mounts.json’ : jratcliff

    • 06/18/2019 : OM-0000 : Fixed a bug with the configuration code not properly handling -datadir : jratcliff

    • 06/18/2019 : OM-0000 : Fixed a bug in the delta manager, not properly detecting locked records : jratcliff

    • 06/18/2019 : OM-2999 : Implemented a content validation system; to make sure all content matches meta: jratcliff

    • 06/19/2019 : OM-3041 : Added: -contentkeyvaluedatabase <true/false> Option to use leveldb for content: jratcliff

    • 06/20/2019 : OM-3070 : Treat user ‘omniverse’ as a super-user : jratcliff

    • 06/20/2019 : OM-3030 : Normalized record names in the code base (internal cleanup) : jratcliff

    • 06/20/2019 : OM-3077 : Refactored KeyValueDatabase to support instancing, also database logging : jratcliff

    • 06/21/2019 : OM-3085 : Treat all users in the ‘gm’ group as super-users : jratcliff

    • 06/21/2019 : OM-3084 : Implemented timestamps for pings (not update or read events yet) : jratcliff

2019.2:

Deployment tools

  • Added a quick tool to easily build and deploy server (wrapper around build.py/deploy.py)

  • Embedded YYYY.## style versioning into stack config

2019.1:

Note: this is the first ever release notes we check in; and I had to reconstruct a lot of it from commit messages. Please don’t consider this 100% accurate or full, but an early exercise – Fedor ‘Fidot’ Fomichev

Server

  • Added symbols to the build

  • Removed obsolete data and meta backends

  • Lots of cleanup, refactor, housekeeping

    • OM-2685 (rename KeyValueDatabaseAsync -> KeyValueDatabase)

    • OM-2683 (remove content cache)

    • Memory tracking disabled by default

  • Bugfixes

    • OM-2735 (LevelDB crashes on some CPUs because ‘Snappy’ is using a privileged insruction)

    • List subscription bug

  • Delta Service

    • Enabled storing repro cases in case delta server plugins crash

Client (Conn Lib)

  • Connection lib

    • Logging fixes

    • Crash fixes (OM-2706)

    • “Fixed hangup in fetch”

    • nvidia.omniverse.client (Python wrapper)

      • added get_acl()

Installer

  • Now using commint installer template

Tools

  • Cache tool packaging fixes

  • Sync tools (sync_tree.py, upload_tree.py), chmod.py, ls.py added