Releases: FIWARE/context.Orion-LD
Releases · FIWARE/context.Orion-LD
Orion-LD v1.1.1
Minor bug fix: Issue #1227 - case insensitive matching for HTTP request headers
Orion-LD v1.1.0
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
1.0.1
Changes
- introduces an automated release process
- pushes a redhat certification compliant image
1.0.1-PRE-468
Changes
- introduces an automated release process
- pushes a redhat certification compliant image
1.0.0-PRE-460
Changes
- introduces an automated release process
- pushes a redhat certification compliant image
Orion-LD Version 1.0.0
This is the first official release of Orion-LD NGSI-LD Context Broker.
Detailed information on the release found in the 1.0.0 release doc.
Changelog from latest beta release (0.9.0):
- Issue #885 Batch Ops responds with a corrupted payload body if Accept: application/ld+json - fix respond with application/json
- Issue #280 Added a debugging service '/ngsi-ld/ex/v1/ping'
- Issue #280 Performace: saving all DB collection paths ONCE in a tenant-struct instead of creating them before each and every use
- Issue #892 Broker able to receive and act upon NGSI-LD notifications - very first implementation - needs further testing
- Issue #280 Changed the distro for docker images from Debian Stretch to Ubuntu 20.04 - for security and performance reasons
- Issue #897 Fixed a bug in the forwarding mechanism
- Issue #280 Added an URL param 'subscriptionId' to notifications - for ACL in notifications
- Issue #907 CLI param '-noNotifyFalseUpdate' for "no notification when no actual modification has been done"
- Issue #280 Added mongo server version to NGSI-LD version output + better order in the output
- Issue #890 Added check for presence of notification::endpoint when creating subscriptions
- Issue #899 Authorization HTTP header supported for forwarding
- Issue #914 Bug fix for double @context member for GET /attributes?details=true and GET /attributes/{attrName}
- Issue #280 HTTP header NGSILD-Tenant (not FIWARE-Service) in notifications on NGSI-LD subscriptions
- Issue #922 Dynamic allocation of GeoProperties array
- Issue #917 No notification when a compound value is updated without modification
- Issue #926 GET local location of a cached context using URI params location and url - to be able to refresh it in the context cache
- Issue #926 DELETE /contexts/ now also accepts complete URL as "contextId"
- Issue #926 DELETE /contexts/ able to reload contexts (URI param ?reload=true)
- Issue #938 Query on Date-like strings or Datetime
- Issue #925 Bigger char buffer for -troeHost CLI param
- Issue #937 Fixed a Compilation Error in Ubuntu 20.04, RELEASE compilation
- Issue #280 Changed values of HTTP header 'Ngsiv2-Attrsformat' from e.g. 'x-ngsiv2-normalized' to just 'normalized'
- Issue #280 Fixed a problem with the tenant cache for when more than one broker runs against the same DB
- Issue #280 Issue telefonicaid#4012 of Orion repo - HTTPS Key/Certificate max size
Beta 3
This is the Beta 3 release of Orion-LD, an NGSI-LD context broker.
New features with respect to Beta 2 are:
- PATCH requests now support the MIME type
application/marge-patch+json
- datasetId for:
- PATCH /entities/{EID}/attrs/{attrName}
- DELETE /entities/{EID}/attrs/{attrName}
- GET /attributes
- GET /attributes?details=true
- GET /attributes/{attrName}
- GET /types/{typeName}
- POST /temporal/entities
- Services for the @context store/cache that the broker maintains:
- GET /ngsi-ld/v1/jsonldContexts - to get a list of the contexts in the store/cache (
?details=true
also supported) - GET /ngsi-ld/v1/jsonldContexts/{contextId} - to serve an @context
- POST /ngsi-ld/v1/jsonldContexts - to ask the broker to host an @context
- DELETE /ngsi-ld/v1/jsonldContexts/{contextId} - to delete an @context from the context store
- And most importantly, the broker now persists the contexts in DB, so they survive a restart
- GET /ngsi-ld/v1/jsonldContexts - to get a list of the contexts in the store/cache (
Get it on dockerhub
Complete List of fixes (since Beta 2):
- Issue #280 Fixed the response (HTTP Status and payload data) for Batch Create according to update in NGSi-LD API spec
- Issue #280 PATCH ops now support the MIME type 'application/marge-patch+json'
- Issue #280 Removed check for forbidden characters of entity type when inside the payload body
- Issue #280 Better URI validity test
- Issue #280 NGSI-LD entity update requests now provoke notifications regardless on whether any actual change has been done on the entity
- Issue #280 Implemented datasetId for PATCH /entities/{EID}/attrs/{attrName}
- Issue #280 Implemented datasetId for DELETE /entities/{EID}/attrs/{attrName} (supporting URI params 'datasetId' and 'deleteAll')
- Issue #280 Implemented GET /attributes, but only without details=true
- Issue #280 Slightly increased response from Batch Upsert
- Issue #280 Implemented system attributes (createdAt, modifiedAt) for sub-attributes
- Issue #280 Implemented POST /temporal/entities - to add entities to TRoE without actually creating any entity (for the current state)
- Issue #803 Correct HTTP Status Codes for Batch Upsert (201/204/207) according to NGSI-LD v1.3
- Issue #806 Implemented GET /attributes?details=true
- Issue #280 Implemented GET /attributes/{attrName}
- Issue #280 Implemented GET /types/{typeName}
- Issue #807 Important change in context cache - inline contexts are no longer stored in cache
- Issue #280 Experimental implementation of GET /ngsi-ld/v1/contexts (with and without details) - yet to be defined in the NGSI-LD API
- Issue #280 Experimental implementation of GET /ngsi-ld/v1/contexts/{contextId} - yet to be defined in the NGSI-LD API
- Issue #280 Experimental implementation of POST /ngsi-ld/v1/contexts - yet to be defined in the NGSI-LD API
- Issue #280 Experimental implementation of DELETE /ngsi-ld/v1/contexts/{contextId} - yet to be defined in the NGSI-LD API
- Issue #280 Persisting contexts from the cache in mongo
- Issue #280 Added support for MultiPoint in TRoE
- Issue #854 The name of the "value" field was missing in sub-attrs of array or object type in notifications, e.g. "": [1,2,3], instead of "value": [1,2,3]
Orion-LD Beta 2
This is the Beta 2 release of Orion-LD, an NGSI-LD context broker.
New features with respect to Beta 1 are:
- geo+json format supported for:
- entity retrieval
- entity query
- notifications
- Temporal Representation of Entities (in a experimental state)
- Improved Performance
- Bug Fixes
Get it on dockerhub
Complete List of fixes (since Beta 1):
- Issue #280 Implemented a native function for conversion from BSON to a KjNode tree - to gain performance
- Issue #280 Implemented GET /types with options=details
- Issue #280 Much faster response rendering function, giving a performance bump
- Issue #280 GeoJSON formatted response for GET /entities and GET /entities/{EID}, if Accept header set to "application/geo+json"
- Issue #280 GeoJSON formatted notifications, if notification:endpoint:accept is set to "application/geo+json"
- Issue #280 Some requests don't use the @context - e.g. DELETE /entities/{entityId} - those requests now ignore the context
- Issue #280 username, password, and QoS for MQTT notifications - not very tested
- Issue #280 Custom headers for MQTT notifications (using receiverInfo)
- Issue #280 Included
notification::httpInfo::receiverInfo
in subscription retrieval - Issue #280 Fixed a bug about geo+json subscriptions returning the wrong Mime Type (in the notification::endpoint::accept field)
- Issue #732 Fixed the response payload body for GET /types when no types found
- Issue #280 Important concurrency fix - avoiding to download the same context more than once
- Issue #737 Removed the check for forbidden characters in variable names in the 'q' URL parameter
- Issue #280 Fixed the response code and payload body of BATCH Delete
- Issue #280 GET /entities?coordinates=[] didn't allow for the altitude to be present
- Issue #280 Bugfix - location was not included in the response for GET /entities?attrs=X,location
Bugfix 1 for Alpha-6
Fixed a bug regarding geo attribute 'location' in subscriptions
Alpha-6
- Issue #280 Made GET /entities?id=EID call the service routine for /entities/{EID}, if just one single entity id
- Issue #280 Unified all timestamps, with one single call to clock_gettime()
- Issue #550 Added a new notification format for NGSI-LD subscriptions, to notify in NGSIv2 format
- Issue #553 Forwarding X-Auth-Token
- Issue #565 Ability to start broker with traces only to stdout
- Issue #280 Batch Upsert with options=update didn't do what it should - it replaces instead of updates the entities
- Issue #573 URI Check less restrictive than before
- Issue #280 Modify GET /ngsi-ld/v1/types according to the new NGSI-LD spec (1.3.1)
- Issue #280 Fixed Batch Update without options=noOverwrite (didn't replace attributes - now it does)
- Issue #280 Implemented Batch Update with options=noOverwrite
- Issue #280 Default mongo request mutex policy changed from 'all' to 'none'
- Issue #586 Stopped using gtime(), that is not reentrant - gtime_r() is used instead
- Issue #XXX External contributor "@manaty226" fixed an important bug about subscriptions after broker restart - Thanks!
- Issue #605 ORIONLD_MONGO_HOST env var is not parsed correctly - made the buffer for the CLI '-dbHost' bigger (64 -> 1024)
- Issue #559 External contributor "@manaty226" fixed notification on PATCH Entity, updating attributes - Big Thanks!
- Issue #622 unitCode not correctly rendered in NGSI-LD notifications
- Issue #623 "cross-notifications" NGSI-LD to NGSI-V2 with compacted data (attribute names and entity types)
- Issue #652 BATCH Delete with more than one item for the same entity id
- Issue #655 BATCH Create with more than one item for the same entity id
- Issue #658 BATCH Upsert+Replace with more than one item for the same entity id
- Issue #660 BATCH Upsert+Update with more than one item for the same entity id
- Issue #280 BATCH Update with more than one item for the same entity id
- Issue #599 Started with Temporal Representation of Entities (ongoing and highly experimental)
- Issue #280 Made FORWARDING optional - off by default (use CLI -forwarding to turn it on) - for performance reasons