Skip to content

Releases: FIWARE/context.Orion-LD

Orion-LD v1.7.0

15 Oct 14:19
Compare
Choose a tag to compare

The main new feature of Orion-LD 1.7.0 is the ability to natively receive "notifications" via FastDDS.
In 3-6 months, Orion-LD will also be able to natively push to DDS.
DDS samples (published on a topic) are considered NGSI-LD attributes and to translate a DDS topic info NGSI-LD Attribute Name, Entity ID and Entity Type, a configuration file needs to be filled in. See #1696 for more information.

New Features:

  • Native support for read-only DDS (off by default - to activate use CLI: -wip dds) - see issue #1696
  • Distributed subscriptions: subordinate subscriptions are DELETED when their "father" is deleted.
  • Support for the URL parameter 'csf' in GET /ngsi-ld/v1/csourceRegistrations
  • Support for the URL parameter 'orderBy=attrName' in GET /ngsi-ld/v1/entities, but only if 'local=true' is set. (This is not NGSI-LD standard. Yet ...)
    • Also supporting sorting on entity id, type, and modifiedAt
    • One more URL parameter '?reverse=true' to reverse the sorting order
    • This was later slightly modified and standardized in ETSI ISG CIM and will be part of v1.89.1 of the NGSI-.LD API spec.
  • Support for GET /ngsi-ld/v1/info/sourceIdentity
  • Support for management::localOnly in registrations
  • Support for new CLI parameter '-pageSize' to set the default pagination limit (default is 20 if -pageSize is not used)

Fixed Issues:

#1621: URL-Encoding single quote in attribute values in TRoE DB
#1649: Crash when using subscriptions in a mixed environment (LD and V2)
#1682: Default User Context
#1688: Forward of idPattern URL parameter

Orion-LD v1.6.0

15 Jul 12:24
Compare
Choose a tag to compare

Fixed Issues:

  • #1535: Ignore Subscription::q when matching subscriptions for deletion of an entity
  • #1542: Array Reduction (arrays of one single element are "flattened" to that very element)
  • #1551: format=simplified for distribute GET /entities gave Normalized for entities from other brokers
  • #1557: Cannot count entities if geo query with $near - mongodb doesn't allow it
  • #1573: pagination not working when entities have the exact same creation date (sort also by entity id)
  • #1583: If a 'q' contains an ampersand, that ampersand needs to be forwarded as a semicolon
  • #1593: Modify the type of an entity in a Replace operation (only working in legacy mode)
  • #1612: Support for ISO8601 timezones expressed in +/- HH:mm in 'q' for entity query
  • #1615: Crash in HTTPS notifications with a notification endpoint with empty URL PATH
  • SOF: https://stackoverflow.com/questions/77911109/fiware-to-payload-too-large
  • Fixed a possible crash for TRoE and attributes of type Vocab/Json/Language
  • Forbidden to DELETE the Core Context !!! (it can be reloaded)
  • Bug fix: JSON NULL literal is no longer forwarded!
  • Improved treatment of malfunctioning notification receivers, on timeout (for clients that don't respond to notifications)
  • Core context added to response if @context in payload body (Accept: application/ld+json)

New Features:

  • Support for attributes of type VocabularyProperty
  • Support for attributes of type JsonProperty
  • Support for the new URL parameter "format" for output formats (normalized, concise, simplified)
  • New service: DELETE /ngsi-ld/v1/entities (support for URL param 'type' only - the rest of the options are still missing)
  • First draft of Distributed Subscriptions

Notes

  • TRoE is still not prepared for attributes of type Vocab/Json/Language, so, attributes of those types are not stored in the historical database
  • Improved the @context hosting feature to be according to API spec

The release is available on dockerhub and quay.io.

Orion-LD version 1.5.1

12 Jan 19:12
Compare
Choose a tag to compare

Three bug fixes:

  • Issue #1525: Fixed a bug about cutting of HTTP headers for distributed requests
  • Issue #1495: Fixed a CRASH about HTTP headers longer than 255 bytes for notifications over HTTPS
  • Issue #1532: Adding the port to the Host header for notifications

The release is available on dockerhub and quay.io.

Orion-LD version 1.5.0

28 Dec 17:58
Compare
Choose a tag to compare

Distributed GET /entities

The main new feature of v1.5.0 is "Distributed GET /entities", using the new concept of "Entity Maps", which is a part of the additions in the 1.8.1 version of the NGSI-LD spec about to be published (some time in January 2024).
It is still a work in progress but mostly working, though it is not 100% spec compliant.
To try it out, start Orion-LD with the CLI option -wip entityMaps (and -distributed to turn on distributed operations).

Bug fixes since v1.4.0:

  • #1419 - Fixed a bug in the cleanup of the "URL being downloaded list" - not being cleaned up in case of an error
  • #1427 - Disabling the keep-alive as it seems to be missing in libpaho
  • #1456 - Entity id+type duplicated in forwarded request of "Create Entity"
  • #1458 - Supporting system timestamps (createdAt/modifiedAt) in q
  • #1451 - Bug fix - removed a trailing ampersand from the URI for the connection to mongodb
  • #1418 - Performance - Faster startup when there are GeoProperties in the database
  • #1478 - Fixed an issue about PATCH on non-existent entity in federation giving a 204 instead of a 404
  • #1479 - Fixed problem with "operations" in registrations
  • #1496 - Fixed a crash - a double free()

Other additions from the backlog:

  • Added extensive logging for downloading of contexts
  • Better 501 handling of temporal operations
  • Changed all error codes from InvalidRequest to BadRequestData, except for JSON Parse Error that is still an InvalidRequest
  • Fixed a bug in error detection of downloading errors in arrays of contexts, at lower nesting levels
  • Fixed a crash in the subscription cache for subscriptions with empty URL paths in the notification::endpoint::uri field
  • Fixed two erroneous type values in the response payload body (EntityTypeInformation => EntityTypeInfo and EntityAttributeList => AttributeList)
  • Giving errors for expiresAt in the past (for registrations and subscriptions)
  • Highly experimental feature for subscriptions: allowing a wildcard as value for entity type, to not filter on entity type
  • Support for 'Periodic Notifications' (subscriptions with a 'timeInterval')
  • New CLI (hidden) for extra field in notifications (trigger: "VERB URL PATH"): -triggerOperation
  • Using Via header for loop detection (includes a new field 'hostAlias' in the registrations)
    Use the new CLI parameter -brokerId to set the identifier of the Orion-LD instance (same value as "hostAlias" in registrations for it to work)
  • Fixed a bug in the lookup of pernot subscriptions

The release is available on dockerhub and quay.io.

Orion-LD version 1.4.0

26 Aug 08:30
Compare
Choose a tag to compare

Main additions/fixes since v1.3.0:

  • Protection for POST /temporal/entities against usage when troe is not enabled.
  • Support for different core contexts via CLI parameter -coreContext <v1.0|v1.3|v1.4|v1.5|v1.6|v1.7> (v1.6 is default).
  • Re-implemented the propagation of subscriptions between brokers in HA (sub-cache synchronization).
  • Fixed a stupid bug in the size of the postgres connection pool (a hardcoded size of 10 connections, instead of using the variable tied to the CLI option -troePoolSize, meant for this!!!).
  • Issue #1412: Health check for Postgres connections (external contribution by cfreyth, thank you very much!).

The release is available on dockerhub and quay.io.

Orion-LD version 1.3.0

17 Jul 16:03
Compare
Choose a tag to compare

The release 1.3.0 of Orion-LD introduces the following major improvements:

  • New CLI param to modify the maximum size of incoming payloads (-inReqPayloadMaxSize)
  • The Core Context now part of the broker - meant for airgapped setups
  • System Attributes in Notifications
  • Fixed a bug in the Host header of new notifications

Orion-LD v1.2.1

17 May 11:38
Compare
Choose a tag to compare

Bug fixes for v1.2.0
#1368 - Fixed a bug in subscription patch regarding modification of cached fields 'description', 'q', and 'entities'
#1374 - similar to #1368
#280 - error handling in registration creation - making sure exclusive registrations specify mandatory fields entity-id and attributes
#280 - error handling in registration updates - making sure exclusive registrations specify mandatory fields entity-id and attributes

Orion-LD v1.2.0

03 May 14:07
Compare
Choose a tag to compare

The release 1.2.0 of Orion-LD introduces the following major improvements:

  • Full support for the new MongoDB driver (currently using mongoc v1.22.0)
  • Decent amount of API endpoints supporting distributed operations (as of v1.6.1 of the NGSI-LD API, released in August 2022)
  • Notifications for deletion of entities
  • Implemented PUT /entities/{entityId}/attrs/{attrName}
  • Better trace levels

This is the complete list of features/fixes (quite a few come from issue #280, which means it came from the backlog, not from a user request):

New mongo driver (you still need to start the broker with -experimental for this):

  • Issue #280 Reimplementation of BATCH Upsert, using the new mongo driver (mongoc) - if -experimental is set
  • Issue #280 Reimplementation of BATCH Update, using the new mongo driver (mongoc) - if -experimental is set
  • Issue #280 Reimplementation of BATCH Create, using the new mongo driver (mongoc) - if -experimental is set
  • Issue #280 Reimplementation of BATCH Delete, using the new mongo driver (mongoc) - if -experimental is set
  • Issue #280 Reimplementation of BATCH Query, using the new mongo driver (mongoc) - if -experimental is set
  • Issue #280 Reimplementation of POST /entities/attrs, using the new mongo driver (mongoc) - if -experimental is set
  • Issue #280 Reimplementation of DELETE /entities/attrs/{attrName}, using the new mongo driver (mongoc) - if -experimental is set
  • Issue #280 Reimplementation of PATCH /entities/attrs, using the new mongo driver (mongoc) - if -experimental is set
  • Issue #280 Reimplementation of GET /types, using the new mongo driver (mongoc) - if -experimental is set
  • Issue #280 Reimplementation of GET /types/{typeName}, using the new mongo driver (mongoc) - if -experimental is set
  • Issue #280 Reimplementation of GET /attributes, using the new mongo driver (mongoc) - if -experimental is set
  • Issue #280 Reimplementation of GET /attributes/{attrName}, using the new mongo driver (mongoc) - if -experimental is set
  • Issue #280 Reimplementation of PATCH /entities/attrs/{attrName}, using the new mongo driver (mongoc) - if -experimental is set
  • Issue #280 Reimplementation of GET /csourceRegistrations/{regId} using mongoc AND the Registration cache
  • Issue #280 Reimplementation of POST /csourceRegistrations using mongoc AND the Registration cache
  • Issue #280 Reimplementation of DELETE /csourceRegistrations/{registrationId} using mongoc AND the Registration cache
  • Issue #280 Reimplementation of PATCH /csourceRegistrations/{registrationId} using mongoc AND the Registration cache
  • Issue #280 Reimplementation of GET /csourceRegistrations using the Registration cache
  • Issue #1338 Removed a mongoc-only check, as all operations now support mongoc

New Distributed Operations:

  • Issue #280 Implemented the new forwarding for POST /entities
  • Issue #280 Implemented the new forwarding for GET /entities/{entityId}
  • Issue #280 Implemented the new forwarding for entity deletion, for DELETE /entities/{entityId}
  • Issue #280 Implemented the new forwarding for Batch entity deletion, for POST /entityOperations/delete
  • Issue #280 Implemented the new forwarding for PATCH /entities/{entityId}
  • Issue #280 Implemented the new forwarding for PATCH /entities/{entityId}/attrs
  • Issue #280 Implemented the new forwarding for PATCH /entities/{entityId}/attrs/{attrName}
  • Issue #280 Implemented the new forwarding for DELETE /entities/{entityId}/attrs/{attrName}
  • Issue #280 Implemented the new forwarding for POST /entities/{entityId}/attrs

Other Features and fixes:

  • Issue #280 Implemented support for HTTPS notifications for the new implementation (experimental)
  • Issue #280 Persisting counters and timestamps of subscriptions from the subscription cache in the database
  • Issue #280 New CLI option: -cSubCounters - number of subscription counter updates before flushing to DB (0: never, 1: always)
  • Issue #280 Bug fix: getting lastNotification, lastSuccess, lastFailure from DB in when refreshing the subscription cache
  • Issue #280 TRoE for PUT /entities/{entityId}
  • Issue #280 Better health check - before accepting, a connection to the mongo server is done (and postgres if troe is enabled)
  • Issue #1229 Fixed a CRASH on erroneous q, when creating subscriptions
  • Issue #1258 Fixed a bug in Q-Parser: negative floating point values were not handled
  • Issue #1260 Invalid long-name of an attribute in error responses (eq-sign instead of dot)
  • Issue #1261 'lang' URI param support for PATCH /entities/{entityId}
  • Issue #1262 keyValues/simplified input format for PATCH /entities/{entityId}
  • Issue #1269 Fixed a bug in BATCH Upsert
  • Issue #1287 Fixed a bug in GET /entities/{entityId}?attrs=xxx, that always included 'location' in the response
  • Issue #1297 Fixed a typo in a string (modifiededAt => modifiedAt)
  • Issue #1307 Added the feature of "urn:ngsi-ld:request" to notifications (forwarding a header with its value from the initial request)
  • Issue #1307 Implemented notifications for entity deletion, for DELETE /entities/{entityId}
  • Issue #1312 Better error handling for a specific use case about RHS being 'null'
  • Issue #1315 Ditto
  • Issue #1316 Fixed a bug in sub-cache population for non-default tenant (issue #1315 is about the same)
  • Issue #1317 Removed an unfortunate error message about "not a valid timestamp"
  • Issue #1322 Default port for HTTPS is 443, for HTTP: 80
  • Issue #1322 Fixed an error in subscription stats (for -experimental)
  • Issue #1322 Implemented better notification response reception and much better log messages
  • Issue #1340 Fixed a dangling pointer bug
  • Issue #1343 Added the HTTP header (well, for mqtt notfications also) 'Host' for notifications
  • Issue #1344 Accepting hyphen as a valid character for a tenant
  • Issue #1348 Unsupported value added to mongodb url (hyphen)
  • Issue #1353 properties/relationships in regs is now propertyNames/relationshipNames in all responses for GET Regs
  • Issue #1353 properties/relationships in regs now also supported as propertyNames/relationshipNames in requests for non experimental
  • Issue #1356 Made Orion-LD accept a configurable max size for incoming/outgoing payload bodies

Orion-LD v1.1.2

15 Dec 12:46
Compare
Choose a tag to compare

Fixed a crash in PATCH /entities/{entityId} when updating a property "value" from an array to another array, if any of the two arrays are empty.

Orion-LD v1.1.1

22 Sep 08:15
Compare
Choose a tag to compare

Minor bug fix: Issue #1227 - case insensitive matching for HTTP request headers