Skip to content

Orion-LD v1.1.0

Compare
Choose a tag to compare
@kzangeli kzangeli released this 29 Jul 17:03

Fixed Issues:

  • Issue #954 Broker crashes with too big attribute values (Orion-LD's limit for the size of an attribute value is 64k right now)
  • Issue #986 Username and Password for the mongo C driver connection to the MongoDB server
  • Issue #990 mongo::Timestamp support
  • Issue #989 Deprecated bson_append_symbol still in use - change for bson_append_utf8
  • Issue #992 Better implementation of existence check of entities (mongoEntityExists)
  • Issue #1010 Fixed bug related to parsing ISO8601 DateTime strings
  • Issue #1016 Fixed bug related to wrong context in response when input context is an array with a single URL
  • Issue #1015 Implemented 'Concise Input Format' support for all entity/attribute create/update endpoints
  • Issue #1030 Implemented 'Concise Output Format' support for GET /entities/{entityId} and GET /entities
  • Issue #1015 Implemented 'Concise Output Format' support for Notifications
  • Issue #1033 Fixed a bug about Concise GeoJSON returning an Invalid Geometry
  • Issue #1034 Fixed a bug about Array Reduction and Concise Attribute Format
  • Issue #1045 Fixed bug related to TRoE and creation of entity without attributes
  • Issue #1064 Can't forbid '#' in attribute names as it often expands with a hash and we support already expanded attribute names in the payload body
  • Issue #903 SSL connection, etc for mongoc - NOTE: not for legacy driver - only the new, experimental API endpoints (needs testing)
  • Issue #1151 GET /entities?id=X is NO LONGER translated to GET /entities/X - that was a BAD IDEA
  • Issue #280 POST Query was broken - fixed it, including correct treatment of language properties
  • Issue #280 Timestamp support in RANGE in 'q' for subscriptions
  • Issue #280 Support for NOT EQ for range in 'q' for subscriptions
  • Issue #280 New URI param "?local=true", to GET only local entities in GET /entities
  • Issue #280 Support for Prometheus metrics (4 counters for now)
  • Issue #280 Adding tenant to response wherever Location is present
  • Issue #1178 MQTT notifications also when "-notificationMode != threadpool"

New Features:

  • Concise input/output format - more compact but still lossless - see NGSI-LD API spec v1.6.1 for details
  • URI parameter options=simplified as an alias to options=keyValues
  • Support for the OPTIONS method for all NGSI-LD API endpoints
  • 'notifierInfo' and 'receiverInfo' for subscriptions

Replacing the deprecated MongoDB C++ Legacy driver with the newest MongoDB driver (mongoc v1.22.0):

  • Common functions for Getting and Listing tenants now use the new mongo driver
  • Common functions for Geo indices now use the new mongo driver
  • Common function for creation of the _id.id entities index now uses the new mongo driver
  • Using the tenant list when populating the subscription cache instead of querying the database (less Mongo C++ Legacy driver usage)
  • GET /subscriptions/{subId} now uses the subscription cache and no database access is done (less Mongo C++ Legacy driver usage)
  • GET /subscriptions now uses the subscription cache and no database access is done (less Mongo C++ Legacy driver usage)
  • Subscription Cache now uses mongoc and not the old legacy driver
  • Subscription Cache Counters are now updated using mongoc and not with the old legacy driver
  • PATCH subscriptions/{subId} now uses the new mongoc driver

Experimental Features

  • to turn on - start the broker with -experimental.
    Note that this is experimental implementations, not yet thoroughly tested.
    They all pass the basic functional tests, and seem to work just find, but, no promises made.
  • Fresh implementations of services using 'mongoc' (the new MongoDB driver) instead of mongoBackend+Legacy driver:
    • PUT /entities/{entityId} (not supported if -experimental is not used)
    • PATCH /entities/{entityId} (not supported if -experimental is not used)
    • POST /entities (two versions: legacy and mongoc - mongoc version if -experimental is used)
    • GET /entities (two versions: legacy and mongoc - mongoc version if -experimental is used)
    • GET /entities/{entityId} (two versions: legacy and mongoc - mongoc version if -experimental is used)
    • POST /subscriptions (two versions: legacy and mongoc - mongoc version if -experimental is used)
    • DELETE /subscriptions/{subId} (two versions: legacy and mongoc - mongoc version if -experimental is used)
  • Support for LanguageProperty attributes
  • Support for URI parameter 'observedAt' for PATCH /entities/{entityId} in combination with options=keyValues - update existing observedAt sub-attributes