Releases: telefonicaid/fiware-orion
1.4.1
Changelog (since 1.4.0):
- Add: new value for URI param 'options' (options=noAttrDetail) for NGSIv2 queries to exclude attribute detail, making the query faster (#2073)
- Fix: wrong type in previousValue metadata for notifications triggered by PUT /v2/entities/{id}/attrs/{name}/value (#2553)
- Fix: giving a semaphore in case of mongo exception, which was causing the broker to be unable to serve requests involving the database, and possibly even to crash due to lack of resources (#2571)
- Fix: avoid unused attribute type detail in NGSIv1 queries (which was making the queries slower) (#2073)
- Fix: more accurate actionType in notifications (#2549)
1.4.0
Full documentation at: http://fiware-orion.readthedocs.io/en/1.4.0/
NGSIv2 API reference (release candidate 2016.05): http://telefonicaid.github.io/fiware-orion/api/v2/stable
Changelog (since 1.3.0):
- Add: notification metadata previousValue and actionType (except 'delete') (#2507)
- Add: filtering metadata in notifications (#2507)
- Fix: removed spurious decimals in metadata numbers in NGSIv1 rendering (a follow up of #2176)
- Fix: wrong attributes included in notifications at subscription update time in some cases (both in blacklist and not blacklist cases)
- Fix: csub cache wrong deletion of subscription at subscription update time when new subscription has empty condition attributes list
- Fix: crash when creating entity with metadata when subscription is in place with "mq" on a different metadata (#2496)
- Fix: correct rendering of metadata compound values when a vector (bugfix for issue #1068)
- Fix: crash with request with empty URI PATH (#2527)
- Fix: supporting DateTime filters for metadata (#2443, #2445)
- Fix: wrong matching in metadata existence and not existence filters with compounds
- Fix: missing expression sub-fields (q, etc.) in csubs makes Orion to crash (*)
- Hardening: ensure to use type oriented functions when getting data from DB (safer, but more verbose in error log if DB is not perfectly aligned with what Orion is expecting)
(*) Included also in version 1.2.3.
1.2.3
1.2.2
1.3.0
Important note: the DB model has changes regarding the previous version. Thus, a migration procedure on existing data has to be applied (or DB has to be dropped), see details here. Not applying this procedure could make CB to crash.
Full documentation at: http://fiware-orion.readthedocs.io/en/1.3.0/
NGSIv2 API reference (release candidate 2016.05): http://telefonicaid.github.io/fiware-orion/api/v2/stable
Changelog (since 1.2.0):
- Add: support for geometry, coords and georel in NGSIv2 subscriptions (AKA geo-subscriptions) (#1678)
- Add: Type pattern for subscriptions (#1853)
- Add: New param 'mq' (both in URI param for list all entities operation and expression sub-field in subscriptions) for matching in metadata (#1156)
- Add: FIWARE::StringQuery::Metadata scope (#1156)
- Add: q-string filters for compound values of attributes, both for queries and subscriptions (#1156)
- Add: mq-string filters for compound values of metadata, both for queries and subscriptions (#1156)
- Add: accepting compound values for metadatas (#1068)
- Add: GET /admin/log operation to retrieve log level (#2352)
- Add: new operation: GET /admin/sem, to see list of the brokers semaphores (#2145)
- Fix: NGSIv2 subscriptions payload validation (#1946, #1964, #1965, #1967, #1973, #1974, #1975, #1979, #1980, #1981, #1983, #1984, #1986, #1988, #1999, #2000, #2006, #2007, #2018, #2093, #2095, #2099, #2100, #2184)
- Fix: Return error on NGSIv1 register requests with entity isPattern set to "true" (#2332)
- Fix: UTC as time in log file (#2232) (*)
- Fix: Removed capping in NGSIv2 update forwarding (#2193) (*)
- Fix: In some cases, compound attribute values were forwarded as empty strings (#2237) (*)
- Fix: attribute overwritten when JSON value used in PUT /v2/entities/{eId}/attrs/{attrName}/values (#2246 and #2248) (*)
- Fix: error returned if a NGSIv2 subscription contains no id nor idPattern (#1939)
- Fix: subscription equal filter evaluation on update context logic (#2222) (*)
- Fix: capturing invalid id patterns at json parse time for v2 subscriptions - this bug made the broker crash when receiving invalid id-patterns (#2257) (*)
- Fix: out-of-NGSI service not found error now using 400 Bad Request HTTP response code (instead of 200 OK). Error message has been unified to "service not found" in all cases (#1887).
- Fix: using 404 Not Found - PartialUpdate error when NGSIv2 forwarded update is partially done (previously 204 No Content was used, without providing actual informaton about the partial update)
- Fix: CPrs responding with not NGSIv1-compliant messages was progressed to clients as 204 Not Content in NGSIv2 update forward scenarios (now responding with 404 Not Found)
- Fix: NGSIv2 "attribute already exists" error case was wrongly using 400 Bad Request, now it uses 422 Unprocessable Entity (according to rules defined in #1286)
- Fix: NGSIv2 "duplicated attribute (in request)" error case was wronly using 422 Unprocessable Entity, now it uses 400 Bad Request (according to rules defined in #1286)
- Fix: NGSIv2 "entity does not have such attribute" error case was wrongly using "requested entity has not been found" descriptions (#1890)
- Fix: missing error payload for NotFound error in 'PUT /v2/entities/{eId}/attrs/{attrName}' and 'PUT /v2/entities/{eId}/attrs/{attrName}/value' operations (#1909)
- Fix: missing error payload for TooManyResults error in 'DELETE /v2/entities/{eId}' operation (#1346)
- Fix: correctly rending as JSON error responses that were being rendered as plain text (#1989, #1991)
- Fix: NGSIv2 "InvalidModification" errors changed to "Unprocessable" (according to rules defined in #1286)
- Fix: Using default values for types of Entities, Attributes, and Metadata aligned with the type names used by schema.org (#2223)
- Fix: Allowing trailing semicolon in a string filter, but only one (#2086)
- Fix: NGSIv2 geoquery syntax errors using 400 Bad Request instead of 422 Unprocessable Entity (according to rules defined in #1286)
- Fix: NGSIv2 URI PATH must be all in lowercase, otherwise "service not found" (#2057)
- Fix: A bug fixed in URI param 'q', avoiding false matches when using string match operator (~=) that matches AND some operator that does not match.
- Fix: no longer accepting 'keyValues-style' values for metadatas (e.g. "metadata": { "m1": 6 } )
- Fix: GET /v2/subscriptions/subId error for non existing subscriptions (now using 404 Not Found, previously using 400 Bad Request)
- Fix: 472 Unknown returned as HTTP status code by POST /v2/op/update in some cases (now using 404 Not Found).
- Fix: Correctly returning error on present but empty attribute types in PATCH v2/entites/{id} operation (#1785)
- Fix: Error returned on encountering non-existing attributes in PATCH /v2/entities/{id}/attrs (#1784)
- Fix: Fixed a bug about string lists in URI parameter 'q' (strings treated as numbers, if possible. E.g. '123' => 123)
- Fix: use X-Real-IP header as preferred option for from= field in log traces (#2353)
- Fix: use op= instead of function= in log traces (along with moving the file/line identification from msg= to op=) (#2353)
- Fix: reorder field in log traces lo align with IoTP Operations requirements (#2353)
- Fix: using WARN log level instead of WARNING log level to align with IoTP Operations requirements (#2353)
- Fix: Fixed metadata rendering in NGSIv1, so that the JSON data type is taken into account and not empty string is returned for non-string values (#1068, just a part of it)
- Fix: Fixed a bug about lists in URI parameter 'q' (last list item was skipped)
- Fix: render float values with 9 digits precision in all cases, avoding spurious decimals (#2207, #2176, #2383)
- Fix: Error payload returned on encountering non-existing entity/attribute in PUT /v2/entities/{entity-id}/attrs/{attr-name} (#1360)
- Fix: Added citation marks surrounding strings as response in text/plain.
- Fix: Return NGSIv2 error if citation-mark is missing in PUT /v2/entities/{id}/attrs/{attrName}/value payload for plain text (previously it was NGSIv1 error format) (#2386)
- Fix: invalid regex patterns detection (#968)
- Fix: Better error returned on invalid geoquery (#2174)
- Fix: Better error returned on attribute not found in GET /v2/entities/{entity-id}/attrs/{attr-name}/value (#2220)
- Fix: Metadata identification based on just name instead of name+type (metadata representation at DB changed from vector to object) (#1112)
- Fix: Bug in log level configuration via REST fixed, and log levels in broker modified (#2419)
- Fix: Distinguish between strings and numbers in q string filter (#1129)
- Fix: proper response for 'GET /v2/entities/{id}?attrs=' and 'GET /v2/entities/{id}/attrs?attrs={attrName}' when {attrName} doesn't exist (#2241)
- Fix: Rendering problems in metadata vector (#2446)
- Fix: correct error response for missing value in URI param in /admin/ requests (#2420)
- Fix: In error responses for ngsi9 registrations, the duration is no longer rendered.
- Fix: Do not allow forbidden chars in description for subscription (#2308)
- Fix: Correct error returned when trying to replace a non-existing attribute in PUT /v2/entities/{entity-id}/attrs/{attr-name} (#2221)
- Fix: Empty string detection for entity id, entity type and attribute name in NGSIv2 request URLs (#1426, #1487)
- Fix: Trailing slashes in URI path no longer silently removed, but considered and giving adequate error responses
- Fix: Initial notifications were counted twice when running with subscription cache (which gave erroneous timesSent in GET /v2/subscriptions/{subId})
- Fix: Avoid rendering at the same time id and idPattern fields in NGSIv2 subscriptions
- Fix: Error returned on GET/DELETE requests specifying Content-Type (#2128)
- Fix: Error responses with '405 Method Not Allowed' now return payload to describe the error, for v2 requests only (#2075, #2078 and #2083)
- Fix: Implemented more sofisticated HTTP Accept Header handling (#1037, #1849, #1886, #2175, and #2208)
- Hardening: csubs data model simplification, using a list of attributes for "conditions" instead of a complex structure (#1851)
(*) Included also in version 1.2.1.
1.2.1
Full documentation at: http://fiware-orion.readthedocs.io/en/1.2.1/
NGSIv2 API reference (release candidate 2016.05): http://telefonicaid.github.io/fiware-orion/api/v2/stable
Changelog (since 1.2.0):
- Fix: UTC as time in log file (#2232)
- Fix: Removed capping in NGSIv2 update forwarding (#2193)
- Fix: In some cases, compound attribute values were forwarded as empty strings (#2237)
- Fix: attribute overwritten when JSON value used in PUT /v2/entities/{eId}/attr/{attrName}/values (#2246 and #2248)
- Fix: subscription equal filter evaluation on update context logic (#2222)
- Fix: capturing invalid id patterns at json parse time for v2 subscriptions - this bug made the broker crash when receiving invalid id-patterns (#2257)
1.2.0
Full documentation at: http://fiware-orion.readthedocs.io/en/1.2.0/
NGSIv2 API reference (release candidate 2016.05): http://telefonicaid.github.io/fiware-orion/api/v2/stable
- Add: notification attributes blacklist for NGSIv2 notifications (#2064)
- Add: NGSIv2 custom notifications (#2015)
- Add: -disableCustomNotification CLI to disable custom notification functionality (#2135)
- Add: 'values' option for GET /v2/types operation (#1170)
- Add: ':' as alias for '==' in the NGSIv2 Simple Query Language (#1903)
- Fix: NGSIv2 header name change: X-Total-Count -> Fiware-Total-Count (#2124)
- Fix: NGSIv2 header name change: X-Ngsiv2-AttrsFormat -> Ngsiv2-AttrsFormat (#2124)
- Fix: crash in multi-token query string when attribute value regex comes in first place (#2164)
- Fix: crash when updating entities which corresponding document at DB is somehow large (#2112)
- Fix: several fixes related with 'attrsFormat' subscription field in NGSIv2 API (#2133, #2163)
- Fix: bug disabling throttling when creating a v2 subscription (#2114)
- Fix: wrong text payload when subscription string filter error occurs (#2106)
- Fix: total count return in GET /v2/types operation (#2115)
- Fix: -noCache now avoids populating cache on create/update subscription operations (#2147)
- Fix: accessing to csub cache in update subscription logic to update count and lastNotification without taking semaphore (#2146)
- Fix: potential bug in internal logic at NGSIv2 GET subscription operations, possibly provoking crashes
- Fix: New keyword "DateTime" to replace "date" for attributes that express date/time (#2198)
- Fix: Improved error text "ContentLengthRequired" to replace "LengthRequired" (#2198)
- Fix: POST /v2/op/query was not supporting FIWARE::Location::NGSIv2 filters
- Fix: Expression lost after refreshing subscription cache (#2202)
- Fix: Avoided a possible infinite loop in sub-cache synchronization function (subscriptions stopped working due to this bug)
- Deprecated: /ngsi10 and /ngsi9 as URL path prefixes
- Fix: throttling set to zero (#2030) (*)
(*) Added on July 8th. We realized about this bugfix after releasing the version.
1.1.0
Full documentation at: http://fiware-orion.readthedocs.io/en/1.1.0/
NGSIv2 API reference (beta): http://telefonicaid.github.io/fiware-orion/api/v2/latest
Changelog:
- Add: NGSIv2 notifications (#1875)
- Add: ~= operator to simple query language in order to implement attribute value patterns (#978)
- Add: string support in <, >, <=, >= and range filters (#1945)
- Add: support for geo:line, geo:box and geo:polygon types as ways of specifying entity location in NGSIv2 (#1038)
- Add: GeoJSON support as a way of specifying entity location in NGSIv2 (#1920)
- Add: Add permanent subscriptions (#1949)
- Add: pause subscriptions using the NGSIv2 API (#1328)
- Add: description field for NGSIv2 subscriptions (#1918)
- Add: change/add path /entities/{id}/attrs (#2028)
- Add: Correlator as HTTP header and in log file (#1916)
- Fix: updates on default service path entity causes wrong update in same id/type entity in not-default service path (#1956)
- Fix: crash with some invalid subscriptions in NGSIv2 API (#1947, #1972)
- Fix: csub cache sync logic not persisting lastNotification when the field doesn't initially exist in DB
- Fix: csub cache at mongoBackend update context subscription logic wrongly setting expiration with current time, ignoring actual expires/duration in the request
- Fix: GET /v2/types response payload, from key-map to array (#1832)
- Fix: GET /v2/types response payload, now using array for attribute types (#1636)
- Fix: using "/#" as default service path instead of "/" in subscriptions (#1961, #2024)
- Fix: POST /v2/subscriptions, attributes in notification are optional (#1952)
- Fix: no longer considering service (tenant) for subscriptions when broker is started without '-multitenant' CLI option (#1898)
- Fix: NGSIv2 subscription payload (#2014)
- Fix: right X-Total-Count in GET /v2/types operation (#2046)
- Fix: right 404 Not Found response in GET /v2/types/{type} operation when type doesn't exist (#2056)
- Fix: 'null' attribute value not surrounded by quotes (") in NGSIv1 renderings (#2058)
- Fix: non-string attribute values were breaking JSON in attributeFormat=object mode (#2058)
- Fix: JSON response in log management operations
- Fix: capturing invalid URLs at subscription time (and returning error response) that otherwise would make Orion crash (#2092)
- Deprecate: "location" metadata to specify entity location
1.0.0
Full documentation at: http://fiware-orion.readthedocs.org/en/1.0.0/
NGSIv2 API reference (beta): http://telefonicaid.github.io/fiware-orion/api/v2/
Changelog:
- Add: new value for URI param 'options': unique - like 'values', but avoiding duplicates (Issue #1050)
- Add: PUT /admin/log?level=XXX to change log level in run-time (Issue #1913)
- Add: check min length for IDs in v2 (Issue #1836)
- Fix: over-logging at error level due to not checking field existente in BSON objects
- Fix: aggregating entities without type and type "" in same entry at GET entity types operation
- Fix: DB error relog done at ERROR level (previously it was using WARNING)
- Fix: check for invalid chars in attribute type (Issue #1847, #1844)
- Fix: check for field too long in attribute type (Issue #1845)
- Fix: check for metadatas with empty name (Issue #1438)
- Fix: accepting backslash-slash in JSON v1 payload (Issue #1852)
- Fix: PATCH /v2/entities correct interpretaion of null value and missing type in payload
- Fix: PATCH /v2/entities missing value field (Issue #1789)
- Fix: GET /v2/entities/id/attrs/name/value for type date (Issue #1885)
- Fix: PUT /v2/entities/id/attrs/name/value forbidden chars (JSON) (Issue #1905)
- Fix: PUT /v2/entities/id/attrs/name/value changing type to 'none' (text/plain) (Issue #1904)
- Hardening: use safeMongo get*Field() methods in places not previously using them (mainly in csubs cache library)
- Remove: deprecated functionality related with ONTIMEINTERVAL subscriptions
- Remove: XML support (deprecated functionality) (Issue #1862)
0.28.0
This is the last version which includes XML support (deprecated since 0.23.0) and ONTIMEINTERVAL subscriptions support (deprecated since 0.26.0). If you are still using XML clients or notification receivers and/or ONTIMEINTERVAL subscriptions, you are highly encorauged to migrate to JSON and/or stop using ONTIMEINTERVAL subscriptions (details in the documentation).
Full documentation at: http://fiware-orion.readthedocs.org/en/0.28.0/
NGSIv2 API reference (beta): http://telefonicaid.github.io/fiware-orion/api/v2/
Changelog:
- Add: implemented new operation: POST /v2/op/query (Issue #1080)
- Add: implemented new operation: POST /v2/op/update (Issue #1715)
- Add: orderBy URI param in NGSIv2 queries to sort entities by attribute, entity dates or proximity (Issue #1103)
- Add: orderBy URI param in NGSIv1 queries to sort entities by attribute or entity dates (Issue #1103)
- Add: options=values mode for entity queries in NGSIV2 (Issue #1049)
- Add: NGSIv2 URI param 'georel' (along with 'geometry' and 'coords') proper support (Issue #1677)
- Add: scope FIWARE::Location::NGSIv2 to allow using NGSIv2 geo-queries also with NGSIv1 (Issue #1677)
- Add: support for geo:point type as a way of specifying location attribute in NGSIv2 (Issue #1038)
- Add: date support in attribute values and q filters (Issue #1039)
- Add: dateCreated and dateModified options to get entity creation and modification times as "virtual" attributes (Issue #876)
- Add: ?type param for GET entity in v2 (Issue #915, #972, #990, #998)
- Add: ?type param for DELETE entity in v2 (Issue #986, #994)
- Add: ?type param for PATCH entity in v2 (Issue #980)
- Add: ?type param for POST entity in v2 (Issue #982, #984)
- Add: ?type param for PUT entity in v2 (Issue #988, #992, #1000)
- Add: ?type URL parameter in Location header upon entity creation in NGSIv2 (Issue #1765)
- Fix: error level traces ignoring -logLevel NONE
- Fix: wrong over-logging at error level updating attributes having metadata without type
- Fix: '+' supported in entity ids and names in URLs (Issue #1675)
- Fix: libmicrohttpd 0.9.48 included in contextBroker as static lib (previous Orion versions used 0.9.22 as dynamic library) (Issue #1675)
- Fix: list of attribute names in URI param 'type' (Issue #1749)
- Fix: long servicepath component in NGSIv2 (Issue #1423, #1764, #1774)
- Fix: syntax change in string query 'q' for exist and not-exist (Issue #1751)
- Fix: sanity check for string query 'q' - detect 'left-hand-side missing' (Issue #1754)
- Fix: more sanity checks for string query 'q' (q empty, parts of 'q' empty - parts of 'q' are separated by ';')
- Fix: error message when updating attribute value for two entities with same id (Issue #1387)
- Fix: bug causing false not-a-number when it really is a valid number (very very rarely)
- Fix: not detecting forbidden chars in entityID for PATCH v2 (Issue #1782)
- Fix: detect forbidden chars in entity ids and attr names in URI (Issue #1793)
- Fix: segfault caused by parameter without value in query string (Issue #1805)
- Fix: some of the operations reported an incorrect 'Allow' HTTP Header on Bad Verb, now fixed
- Fix: Returning 422 InvalidModification instead of 404 NotFound when POSTing entity (Issue #1817)
- Fix: using string "none" as default entity/attribute/metadata type in NGSIv2 (Issue #1830)
- Hardening: sanity checks for numbers (Issue #1306)