* Adds a new method for the server to push notifies to the client, which require administration privileges from the user. If there are messages in queue but user is not privileged, she is notified of pending messages
* Fix unit tests
* Increase timeouts on tests
* Add translations
* * Aggregate admin messages
* Send admin message on auth fail
* Sending messages over bus
* XSS filtering of objects sent over the REST API
* Warn users if their instance is world readable
* Fix adminnotifies init()
* Fix couple issues from Codacy
* Auth resolve now supports async/await
* Read only tokens can be used for authentication and the UI shows privileges for these accounts correctly
* Failed attempt at authenticating an API_SECRET or token delays subsequent auth attempt by 5000 ms
* Allow auth tokens to be passed in the api-secret header and used in the client in place of the API secret
* Fix unit test
* Fix admin test
* Reload page when token is used as a secret
* extended .gitignore for Visual Studio 2017
* creating a lib for api3 and exposing it's swagger file
* adding pilot test (for /swagger.yaml)
* implementing public GET /version
* setting api version to 3.0.0-alpha
* creating authorization skeleton + fetching some API env variables
* reusing authorization library
* implementing security
* forcing HTTPS and removing x-powered-by from response
* moving messages to constants, creating https instance fixture
* testing HTTPS requiring
* testing Date header
* testing permission check
* testing allowed operation
* refactoring + storage stub
* create architecture for generic operations
* beginning of READ operation
* tidying the code up
* basic READ part
* going further with READ operation
* DELETE operation
* handling fields parameter
* refactoring to classes
* going further with SEARCH operation
* refactoring file structure
* filtering for SEARCH operation
* preparations for fallback deduplication
* CREATE operation
* UPDATE operation
* PATCH operation
* HISTORY operation
* creating more precise variant of HISTORY operation
* autopruning
* long for timestamps in swagger
* bug fix (when search fields=srvCreated)
* creating skeleton for generic collection API test
* specific HISTORY skeleton
* distinguish between collection logical and storage name
* renaming operation to LAST MODIFIED and getting it to work
* fallback for LAST MODIFIED operation
* tidying a bit
* LAST MODIFIED documentation
* bugfix + emitting data-received
* adding some validations
* bugfix - remove 'token' parameter from filtering
* testing and debugging generic workflow
* test fix for empty db
* fixing security test fixture
* trying to fix Travis CI testing DB problem
* multiple auth callback bugfix + adding user field on authed create/update
* messages for Travis CI debugging
* messages for Travis CI debugging
* messages for Travis CI debugging
* test fix (to be prepared for future dates in db)
* test fix
* adding fallback created_at filling on each create/update
* STATUS operation with API permissions
* querying srvDate from storage + include storage version info
* bugfix of missing apiConst require
* getting mongo version with read-only user rights
* getting mongo current date with read-only user rights
* trying to diagnose travis CI timeout
* refactoring storage version caching (due to some environments problems)
* making VERSION work on empty database
* more fixes
* skipping API HTTPS test for node 8
* making code more readable using ES6 (Promises, async + await)
* extending treatments collection docs by inspecting the careportal code
* tidying existing API3 tests up to allow further grow
* tidying the authorization code up to increase readability and performance a bit
* more refactoring to ES6 and making APIv3 files structure more extendable
* normalizing incoming dates to UTC and storing utcOffset
* fixing srvDate to be of node.js server, not the mongo DB
* preparing test fixtures for permissions testing + skeleton for CREATE operation test
* intensive CREATE operation testing + minor bug fixes
* correcting the deduplication test
* more deduplication testing of CREATE operation
* adding test skeletons for other generic operations
* added variability in filtering by date, created_at, srvModified, srvCreated fields
* fixing test accordingly to previous commit
* adding new collection settings for centralized apps' settings storage
* trying to solve travis CI testing problem - adding default collections names
* another attempt to travis CI test fix
* adding some tests for READ operation
* adding custom error handler (overriding bodyparser's errors)
* securing settings collection more and updating swagger accordingly
* making HISTORY timestamp parameter more flexible + updating swagger documentation
* more testing and bug fixing
* sending only HTTP status with empty body, when there is no message + minor bug fixing
* more refactoring and testing (especially of UPDATE operation)
* PATCH testing + adding userModified field for troubleshooting purposes
* basic SEARCH operation testing
* more SEARCH operation testing
* adding alternative 'now' query parameter to 'Date' header to make GET easier
* adding 'now' to reserved query parameters for SEARCH operation
* more testing
* renaming field user to subject (and modifiedBy)
* bugfix - fixing RFC 2822 constant for moment parsing
* storageSocket: creating skeleton for new Socket.IO namespace
* storageSocket: authentication by accessToken
* storageSocket: authorizing to subscribe rooms
* storageSocket: emitting create, update and delete events
* APIv3: adding support for swagger UI at /api/v3/swagger-ui-dist
* solving some problems detected by eslint
* solving some problems detected by eslint
* APIv3: testing and debugging Socket.IO
* APIv3: testing and debugging Socket.IO
* APIv3: Socket.IO documentation
* APIv3: making the sample real
* APIv3: starting to create a simple tutorial MD file
* APIv3: small corrections
* APIv3: minor corrections after dev merge
* APIv3: adding CREATE and READ operations to the tutorial.md
* APIv3: adding SEARCH, LAST MODIFIED, UPDATE operations to the tutorial.md
* APIv3: finishing the tutorial.md
* APIv3: minor bugfix (bad location after upsert)
* APIv3: refactoring SEARCH complexity
* APIv3: refactoring mongoCollection complexity
* APIv3: refactoring complexity
* APIv3: tidying up a bit
* APIv3: refactoring security (start)
* APIv3: refactoring lastModified
* APIv3: refactoring create (start)
* APIv3: refactoring create (finish)
* APIv3: refactoring delete
* APIv3: refactoring history
* APIv3: refactoring update
* APIv3: refactoring patch
* APIv3: refactoring read
* APIv3: refactoring search + removing deprecated authorizationBuilder
* APIv3: adding best practise for identifier constructing
* APIv3: refactoring and enhancing the validation (immutable fields)
* APIv3: adding security.md documentation file
* APIv3: refactoring - splitting index.js into multiple files
* APIv3: calculating identifier on server side + deduplicating
* APIv3: refactoring cosmetics
* APIv3: updating the documentation
* APIv3: making basic and security tests more readable using async/await
* APIv3: making the rest of tests more readable using async/await
* APIv3: adapting test of previous API
* APIv3: adapting test of previous API
CC @jasoncalabrese, this is debatable, I think this is what you were referring
to, I'd prefer to use the sha1sum (which is fewer bytes) and use that as the id
to lookup/store in mongo instead of this, but not sure.