Releases: telefonicaid/fiware-orion
0.27.0
This is the next-to-last version which includes XML support (deprecated since 0.23.0). If you are still using XML clients or notification receivers, you are highly encorauged to migrate to JSON (details in the documentation).
Full documentation at: http://fiware-orion.readthedocs.org/en/0.27.0/
NGSIv2 API reference (beta): http://telefonicaid.github.io/fiware-orion/api/v2/
Changelog:
- Add: proper alarm management, including activation/deactivation in logs (Issue #1582)
- Add: Enable log summary traces using -logSummary CLI (Issue #1585)
- Add: New CLI parameter '-relogAlarms' to see ALL possible alarm-provoking failures in the log-file
- Add: subscriptions triggered by modifications in any attribute without explicitly list them (aka ONANYCHANGE) (Issue #350)
- Add: 'q' expression evaluation in NGSIv2 subscription (at subscription creation/update and update context times) (Issue #1316 and #1658)
- Add: srv=, subsrv= and from= fields to log (Issue #1593)
- Add: POST /v2/subscriptions operation (Issue #1316)
- Add: DELETE /v2/subscriptions operation (Issue #1654)
- Add: PATCH /v2/subscriptions/{subId} operation (Issue #1658)
- Add: reset for notification counters in threadpool mode
- Add: id fields checking for NGSIv2 API and (if -strictNgsiv1Ids is enabled) NGSIv1 API (#1601)
- Fix: entity/attribute operations to align them with the last JSON representation format defined for NGSIv2 (Issue #1259)
- Fix: avoid rendering invalid JSON characters in response payloads (Issue #1172)
- Fix: avoid escaping / in callback field in GET /v2/subscriptions and GET /v2/subscriptions/ operations
- Fix: wrong accumulation in counter sentOK
- Fix: more descriptive error messages for CPr update/query forward fail
- Fix: avoid -g compiler flag in release build
- Fix: supporting decimal values for seconds in ISO8601 strings (Issue #1617)
- Fix: enforcing "http" or "https" schema and better detection of missing port at URLs parsing (Issue #1652)
- Fix: fixed wrong interpretation of empty string keyvalues as empty objects in compounds (Issue #1642)
- Fix: subscription service path is lost at update subscription time (Issue #1693)
- Fix: Mongo driver migrated to legacy-1.0.7 (to get the fix for https://jira.mongodb.org/browse/CXX-699) (Issue #1568)
0.26.1
Full documentation at: http://fiware-orion.readthedocs.org/en/0.26.1/
NGSIv2 API reference (beta): http://telefonicaid.github.io/fiware-orion/api/v2/
Changelog:
0.26.0
Full documentation at: http://fiware-orion.readthedocs.org/en/0.26.0/
NGSIv2 API reference (beta): http://telefonicaid.github.io/fiware-orion/api/v2/
Changelog:
- Add: Add queue+threads for notifications (notificationMode thread:[queue size]:[num threads]) (Issue #1449)
- Add: possibility to limit the maximum number of simultaneous connections, using the CLI option -maxConnections (Issue #1384)
- Add: possibility to use thread pool for incoming connections, using CLI option -reqPoolSize (Issue #1384)
- Add: Unpatterned subscriptions now also in subscription cache (Issue #1475)
- Add: Built-in Timing/Profiling (Issue #1367)
- Add: clearer statistics in GET /statistics and GET /cache/statistics operations
- Add: Simulated/drop notifications mode is now orthogonal to -notificationMode (Issue #1505)
- Add: finer-grain statistics switches: -statCounters, -statSemWait (old -mutexTimeStat), -statTiming and -statNotifQueue
- Fix: avoid indirect usage of DB connections concurrently due to cursors (Issue #1558)
- Fix: safer treatment of database fields lastNotification, expiration and throttling in
the 'csub' collection, assuming that the field can be either int or long (it is always written as long) - Fix: number/bool correct rendering in NGSIv1 compound values
- Fix: ONCHANGE notifications triggered by update context operation are filled avoiding querying entities collection (#881)
- Fix: wrong notification values (duplicated) when triggering update context operations are too close (race condition)
- Fix: A bug in the request reading logic that may cause unexpected Parse Errors or even SIGSEGVs
- Fix: Semaphore releasing bug in unsubscribeContext when subscription ID is the empty string (Issue #1488)
- Fix: Fixed an uptil now unknown bug with throttling
- Fix: Only 1 query at csubs collection/cache is done per context element processing at updateContext (previously one query per attribute were done) (Issue #1475)
- Fix: 'count' and 'lastNotificationTime' now maintained by subCache (and synched via DB) (Issue #1476)
- Fix: updates including several attributes with the same name are now reported as InvalidModification (Issue #908)
- Fix: no longer adding subscriptions from all tenants in the cache if broker isn't multitenant (Issue #1555)
- Fix: resetting temporal counters at synching the subscription cache (Issue #1562)
- Fix: using the text "too many sbuscriptions" at cache statistics operations in the case of too many results
- Fix: crash due to subscription ID not conforming to supposed syntax in request "GET /v2/subscriptions/XXX" (Issue #1552)
- Hardening: exhaustive try/catch (mainly at mongoBackend module)
- Deprecated: ONTIMEINTERVAL subscriptions
0.25.0
Full documentation at: http://fiware-orion.readthedocs.org/en/0.25.0/
NGSIv2 API reference (beta): http://telefonicaid.github.io/fiware-orion/api/v2/
Changelog:
- Add: NGSIv2 operation GET /v2/subscriptions (#1126)
- Add: NGSIv2 operation GET /v2/subscription/ (#1317)
- Add: URI params 'geometry' and 'coords' for GET /v2/entities (#1177)
- Add: CLI argument -notificationMode. Default mode is 'transient' (previous version used 'permanent' implicitly) (#1370)
- Add: CLI argument -connectionMemory for connection memory limit. Default value is 64Kb (#1384)
- Add: CLI argument -noCache to disable cache (recovering $where from 0.23.0 code base to search for subscriptions always in DB)
- Add: githash in --version (#1363)
- Add: contextBroker standard error log in RPM init script (#1175)
- Fix: broken subscription cache (#1308), including the semaphore for subscription cache (#1401)
- Fix: conv op to std op mapping wrongly using patterns in some GET operations (#1322)
- Fix: using 'count' in all paginated queries in NGSIv2 (get entities list was missing) (#1041)
- Fix: add charset=utf-8 for notifications (#1340)
- Fix: incorrect 'details' field rendering (leading to illegal JSON) for error responses in some cases (#843)
- Fix: escaping dot (.) in attrNames field in entities collection in DB (#1323)
- Fix: compound attribute values support in CPr update forwarding (#1440)
- Fix: traces to stdout only if CLI '-fg' is set (#1272)
- Fix: avoid noisy error output in RPM init script (#309)
- Fix: performance problem in NGSIv2 API due to uncontrolled log trace printing
- Fix: trying to update several matching entities associated to the same ID in NGSIv2 API now returns in TooManyResults error (#1198)
- Fix: more accurate text for details field in zero content-length error responses (#1203)
- Fix: description text for parse errors in NGSIv2 JSON requests (#1200)
- Fix: leftover whitespaces in NGSIv2 error names (#1199)
- Fix: clearer error on NGSIv2 entity attribute update, without value in payload (#1164)
- Fix: changed error code from 472 (Invalid Parameter) to 422 (Invalid Modification) in NGSIv1 in the case of missing attribute value (#1164)
- Fix: return error response in NGSIv2 API when the combined length of id/type/servicePath exceeds (mongo) index key length limit (#1289)
- Fix: error responses for NGSIv2 PATCH request on entity without payload (#1257)
- Fix: clearer errors for 'entity not found' and 'conflict too many results' on NGSIv2 update PATCH (#1260)
- Fix: update PATCH request with invalid service-path never returned a response (#1280)
- Fix: error must be Not Found, when updating an unknown attribute of an existing entity on NGSIv2 update PATCH (#1278)
- Fix: POST /v2/entities returns error if the entity to create already exists (#1158)
- Fix: error description for PUT/POST/PATCH request with empty JSON object as payload in NGSIv2 (#1305)
- Fix: improve error description in NGSIv2 PUT on entity, when entity is not found or there is a conflict due to many results (#1320)
- Fix: empty/absent attribute value support, both in NGSIv1 and NGSIv2 (#1187, #1188 and #1358)
- Hardening: mongoBackend checking for field existence and proper type to avoid broker crashes due to DB corruption (#136)
- Hardening: safer input/ouput logic for csub documents in MongoDB and cache
- Remove: proxyCoap binary from RPM (#1202)
- Remove: deprecated command line arguments -ngsi9, -fwdHost and -fwdPort
- Remove: deprecated functionality related with associations
0.24.0
Full documentation at: http://fiware-orion.readthedocs.org/en/0.24.0/
NGSIv2 API reference (beta): http://telefonicaid.github.io/fiware-orion/api/v2/
Changelog:
- Add: FIWARE::StringQuery scope, implementing filtering capabilities (equal, unqual, greater/less than, ranges, existence) (Issue #864)
- Add: APPEND_STRICT action type for POST /v1/updateContext operation
- Add: REPLACE action type for POST /v1/updateContext operation
- Add: Implemented a RAM-cache for patterned ngsi10 subscriptions (Issue #1048)
- Add: API version 2 only supports JSON so we can now distinguish between STRINGS, NUMBERS (all treated as floats for now),
and BOOLEANS (true, false), for the VALUE for ContextAttribute and Metadata (No Issue) - Add: POST /v2/entities - entity creation for API version 2 (Issue #970)
- Add: POST /v2/entities/{entityId} - append or update attributes (by entity ID) for API version 2 (Issue #981)
- Add: URI parameter "op=append", for POST /v2/entities/{entityId} (Issue #983)
- Add: DELETE /v2/entities/{id} - delete an entity (Issue #985)
- Add: Number and boolean rendering for attribute simple values (not compounds) in /v1 operations for JSON encoding
- Add: URI parameter "attrs=a1,a2,a3..." for GET /v2/entities/{entityId} (Issue #971)
- Add: PUT /v2/entities/{entityId} - replace attributes (by entity ID) for API version 2 (Issue #987)
- Add: GET /v2/entities/{entityId}/attrs/{attrName}/value - get a single attribute value (Issue #997)
- Add: URI parameters id, idPattern and type for GET /v2/entities (Issues #952 #953 #969)
- Add: PATCH /v2/entities/{entityId} - modify an entity (Issue #979)
- Add: URI parameter 'q' for GET /v2/entities (Issue #967)
- Add: PUT /v2/entities/{entityId}/attrs/{attrName}/value (Issue #999)
- Add: DELETE /v2/entities/{entityId}/attrs/{attrName} (Issue #993)
- Add: PUT /v2/entities/{entityId}/attrs/{attrName} (Issue #991)
- Add: GET /v2/types/{type} (Issue #1028)
- Add: GET /v2/types (Issue #1027)
- Add: text/plain encoding for GET /v2/entities/{entityId}/attrs/{attrName}/value operation (both Accept header and ?options=text) (Issue #1179)
- Add: monit_log_processing.py script to contextBroker RPM (Issue #1083)
- Add: httpsPrepare.sh script to contextBroker-tests RPM (Issue #2)
- Fix: Fixed a bug about generic error handling for API version 2 (Issue #1087)
- Fix: Fixed a bug about error handling of invalid Service-Path for API version 2 (Issue #1092)
- Fix: Check for illegal characters in URI parameters (name and value) (Issue #1141)
- Fix: Checking for forbidden chars in many fields of JSON payload for API version 2 (Issue #1093)
- Fix: Bug fix for receiving compound metadata values (which is not supported) (Issue #1110)
- Fix: Error handling for non-string entity::id/type (Issue #1108), attribute::type, and metadata::type/value
- Fix: Metadata updates involving boolean/number values were not correctly processed (Issue #1113)
- Fix: Removed the check of forbidden characters for the values of the URI parameter 'idPattern'
- Fix: Made broker respond with 400 Bad Request on encountering invalid items in URI parameter 'options' (Issue #1169)
- Fix: Several older memory leaks has been fixed thanks to improvements in leak-detecting tool
0.23.0
Full documentation at: https://github.com/telefonicaid/fiware-orion/blob/0.23.0/README.md
Changelog:
- Add: Reuse curl context for outgoing notifications, so now connections are persistent if the HTTP server doesn't close them
- Add: CLI paramter -cprForwardLimit to cap the number of forwarding request for a single client request. (Issue #1016).
- Fix: Fixed a bug about pagination problem due to missing ErrorCode with details in the case of queries with forwarding to context providers. (Issue #945)
- Fix: taking into account the pagination limit before adding "potential" entities to be queried in CPrs. (Issue #945)
- Fix: Add multiservice flag for the default configuration in the RPM. (Issue #964)
- Fix: ONCHANGE subscription sends notification when value under condition it is not updated with updateContext-APPEND in some cases (Issue #943)
- Fix: updating attribute metadata without updating attribute value at the same time is now supported (Issue #766)
- Fix: remove unconditional tracing on xmlTreat()/jsonTreat() which was impacting on performance (specially in high-load scenarios)
- Fix: use NOSIGNAL as libcurl option to avoid crashes in that library. (Issue #1016)
- Add: New operation "GET /v2/entities" (Issue #947)
- Add: New operation "GET /v2" (Issue #956)
- Add: New operation "GET /v2/entities/{id}" (Issue #950)
- Add: New operation "GET /v2/entities/{entityId}" (Issue #950)
- Add: New operation "GET /v2/entities/{entityId}/attrs/{attrName}" (Issue #989)
0.22.0
- Add: CORS support for GET requests, configuring allowed origin with -corsOrigin CLI parameter (Issue #501)
- Add: New CLI parameter for the mutex policy: -reqMutexPolicy (Issue #910)
- Add: Measuring the accumulated time waiting for the DB semaphores.
The measures are added to the REST request /statistics, but only if
the new CLI parameter -mutexTimeStat is set (Issue #911) - Fix: Removing trailing slashes for path of URI before treating the request (Issue #828)
- Fix: Fixed a bug regarding subscriptions with empty entity-type (Issue #691)
- Fix: updateContext propagated to the entire Service Path subtree, instead of just scoping to the particular Service Path in the Fiware-Service header (Issue #885)
- Fix: Mongo driver migrated to legacy-1.0.2
- Add: Database connection pool for mongo. Default size of the pool is 10 connections. This is changed using the CLI parameter -dbPoolSize (Issue #909)
- Add: New CLI parameter for Mongo write concern: -writeConcern (Issue #889)
0.21.0
- Add: support for MongoDB 2.6/3.0 (MongoDB 2.4 should not be used any longer as inverted geo-queries will not work in that version) (Issue #415)
- Add: context providers full functionality (Issue #787)
- Fix: unhardwire format to forward requests to context providers (Issue #722)
- Fix: using proper GJSON for location.coords entities information (Issue #415)
- Fix: attribute storing in DB (from vector to keymap) to enable CB Active/Active architectures. As a consecuence of this, '.' in the name of attributes is now stored as
'=' in the key (as MongoDB doesn't allow to use '.' for keys). This is transparant from the point of view of the user, given that '=' is a forbidden character in
the external API (Issue #878) - Fix: simplifying 'GET /v1/contextTypes' and 'GET /v1/contextTypes/' operations, removing attribute types (no longer used as attribute identification since 0.17.0). As
a consequence, the 'attributeFormat' URI parameter is no longer needed in the 'GET /v1/contextTypes', so it is ignored. - Fix: DELETE updates are resolved locally, previously they were forwarded to CPrs (Issue #755)
- Fix: The URI parameter 'notifyFormat' is now treated the same way for subscriptions as for registrations.
- Add: Notifications and forwarded queries/updates are now controlled by a timeout. (Issue #880)
The default timeout is set to 5000 milliseconds (5 seconds), including connection, writing the request and reading the response.
To change this timeout, a new CLI option '-httpTimeout' has been added to the broker. - Fix: Changed the name, type and unit of the CLI option '-timeout'.
New name: '-dbTimeout',
New type: integer (was a floating point number)
New unit: milliseconds (was seconds, but decimals were allowed as it was a floating point number) - Add: Updates of ngsi9 subscriptions now also support the URI parameter notifyFormat
0.20.0
- Add: new CLI parameter '-timeout' to specify DB connection timeout in the case of using MongoDB replica sets (Issue #589).
- Fix: All convenience operations to use the service routines of standard operations (Issue #117)
- Fix: Correct rendering of response to convop "POST /v1/contextEntities/{entityId::id}/attributes/{attributeName} (Issue #772)
- Fix: Made 'POST /v1/contextEntities/{entityId::id}' and 'POST /v1/contextEntities' accept entity::id and entity::type
in both payload and URL, as long as the values coincide. - Fix: A few more of the 'responses without entityId::type filled in' found and fixed (Issue #585)
- Fix: The convenience operations "/v1/contextAttributes/{entity::id}/attributes" now share implementation with
convenience operations "/v1/contextAttributes/{entity::id}" and are thus 100% identical. - Fix: The convenience operation "PUT /v1/contextAttributes/{entity::id}/attributes/{attribute::name}" had a bug
about the metadata in the update, this error has been fixed. - Fix: A registerContext request that uses associations must specify "attributeAssociations" instead of "attributes" to be consistent with DiscoveContextAvailability messages (Issue #823).
- Fix: Fixed a bug that made the broker crash when compound attribute values were used in convenience operations.
- Fix: Implemented URI-parameter 'notifyFormat=XML/JSON' for NGSI9 subscriptions.
0.19.0
- Fix: The option '-multiservice' was ignored and the broker ran always in multiservice mode. Now the option is taken taken into account (Issue #725)
- Fix: Forwarded requests always in XML (Issue #703)
- Fix: internal substitution of servicePath defaults ("/" for update-like operations, "/#" for query-like operations)
- Fix: Temporal hack to allow for forwarding of 'attribute not found in entity found' (Issue #716)
- Fix: Broker crashes dealing with "GET /v1/contextTypes" operation when DB contains entities of the same type, ones with attributes and others without them (Issue #740)
- Fix: Service-Path supported for registrations and discoveries (Issue #719)
- Fix: Service-Path supported for forwarding of registrations between Config Manager and Context Broker (Issue #719)
- Fix: Service-Path supported for forwarding to Context Providers (Issue #719)
- Fix: Hash sign (#) in service-path, or multiple service-paths not valid for updateContext requests (Issue #746)
- Fix: Not forwarding the default Service-Path to context providers (Issue #714)