This document records all notable changes to Deployd. This project adheres to Semantic Versioning.
- db: convert skip/limit arg to integer (86e6f5f6)
- package:
- user-collection: ensure password is a string (e81c6c7b, #735)
- session: use socket.io rooms for emitToUsers (ff5f840c95)
- dpd.js: use encodeURIComponent (8d58a12e)
- repl: update outdated property name (05f731c8, #680)
- session:
- test: allow some time for sessions to be cleaned up (ca0ca85e)
- script: memoize dynamic function (ff6a4dce)
- dpd:: dpd CLI was crashing (shelljs global missing) (e1729f2d88)
- User-collection:
- collection: can't rename or delete new, empty collection (thx @docnoe) (49f769600)
- Dashboard: Property types in dashboard are sortable (thx @docnoe) (ab7cec630)
- Dependency Update:
- qs to version 5.2.0
- shelljs to version 0.5.3
- grunt-contrib-jshint to version 0.11.3
- sinon to version 1.17.1
- request to version 2.65.0
- Cleanup: request to version 2.65.0 (0adf309a5)
- Build: Our tests now run on NodeJS 4.2 (a5687dc352)
- bin/dpd: prevent process quit when latestversion is not writable (d8a507d5)
- collection: object queries on booleans would be converted to false (84a1d039)
- internal-client: add null check for ctx (d3ccf38f)
- session: improve how socket.io connection to finds session (bb05ce4a)
- user-collection: null check to prevent crash (36c4ec2d)
- collection:
- http:
- internal-client:
- script:
- chore: update mongo and socket.io
-
UserCollection:
onGet
event can break session handling (74f23631) -
db: Properly report database connection issues (25308f89)
-
http:
-
internal-resource: handle errors in type events (7cec886c)
-
session: socket disconnection after login (56fe4d83)
-
store: add error handling in callbacks (0bbce4e7)
-
user-collection: do not allow empty passwords on PUT/POST (fa076553)
NB: There's a breaking change for an undocumented feature: due to the CORS improvements, all unknown origins will be rejected for CORS requests. For more info, please refer to this message
- collection: add AfterCommit event (1d6bec51)
- dashboard: height of code editor should fill window (7ed76106)
- session: allow multiple sockets per sessions And add options.origins (f67ee1ec)
- collection: should not crash on deleting non existent id (1b85c2127c)
- UserCollection: res.cookies not available from internal client (5717c4d1)
- cli:
- dashboard: use ejs delimiter instead of open and close tag (776e17cf)
- delete: call Delete event for every record matched (462c6766)
- dpd.js: dpd.socket null (5331ac39)
- script: memory leak and performance improvement (578bd28d)
- server: allow request.rawBody for middlewares (59fbdbab, #519)
- user-collection: crash when password is not specified in login (65f4170b)
- typeload: load custom resources from package.json if exists (f1f0738)
- attach.js: mkdir resourcesPath if not exists (55cf4b36)
- collection:
- config-loader: improve the 'resources' dir reading (67218018)
- db:
- internal-client: exec resource.path is missing (c1acee8e)
- script: null values in domain were changed to {} (26311eea)
- session: correct usages of an emit queue. (53b226ad)
- session.js: Refactor session creation code to use promises in order to fix a possible race condition while inserting a session to the database. (3080de2f)
- tests: call done() properly from async function (061f16de)
- correctly delete cookies, update cookies-dependency
- collection: $addUnique for MongoDB $addToSet support (from yoneal PR #252) (730e980e)
- config-loader server: customize server and public dirs through options (f17d296d)
- core: wait for promises in events (964ec452)
- dashboard: sort sidebar resources in alphabetical order (4cf89a63)
- events: Expose ctx object to the event scripts (c0b39d3a)
- server: add deployd.attach to extend http/expressjs/connect server and provide a middleware (29cf94b4)
- session: get session by uid (ffb33bf5)
- dpd.js add promises to client library
- Add ability to query by subproperty within GET event
- Add X-Requested-With header for AngularJS support
- Add auto https support to dpd.js client lib
- Removed Forever Monitor support from CLI
- Fix bug with repl causing typed characters to be printed twice and not executed correctly
- Fix bug where dashboard would not load if a config had not yet been created
- Fix issue where number query params for string type properties were not being converted to strings on server
- Fix MongoDB startup and settings
- Add check for $inc operands to ensure numbers before attempting to increment
- Add more core tests, and features to make mocking easier within tests
- Fixed bug where missing content-type header when updating a user threw an error.
- Fixed bug where query strings were not properly parsed.
- Fixed certain errors returned as HTML rather than JSON.
- Fixed bug where changing a property type from "number" to "string" made existing properties uneditable.
- Fixed bug where
changed()
was returning true for values that had not changed. - Fixed certain error's returned as HTML rather than JSON.
- Data editor
- Fixed bug where data editor would expand as the page scrolls
- Fixed bug where the cursor would randomly move around while editing text
- Removed overlay for inline editing
- Fixed bug where
internal-client
was not accessible from modules - Fixed restarts caused by 404s of unexpected http verbs
- Fixed CORS incorrectly requiring a referer header
- Added
dpd.once(name, fn)
function to execute a realtime handler exactly once - Added
dpd.off(name, [fn])
function to remove a realtime handler - Added
dpd.socketReady(fn)
function to listen for the built-inconnect
event - Added
dpd.socket
property to provide direct access to socket.io. - Fixed bug where username and password could be updated by an unauthenticated put.
- Usernames and passwords can be updated only by that user's session, a root session, or an internal request.
- Made
data
folder smaller by default indevelopment
environment - Added
cancelIf()
,cancelUnless()
,errorIf()
, anderrorUnless()
functions to event API for more declarative events - Added
hasErrors()
function to event API - Added
isMe()
function to event API - Fixed external prototype bug causing custom external prototypes to fail
- Removed docs from repository. They are now available at http://docs.deployd.com or https://github.com/deployd/docs.
- Added new data editor
- Fixed major bug where calling error() would not always cancel the request
- Fixed bug where PUT would fail without an error if you provided a query
- Changed root behavior - no longer ignores cancel() in events
- Fixed bugs preventing events from being
emit()
ed to users in certain connection states - Fixed bug where boolean query values (?bool=true) were not treated as booleans
- Fixed unnecessary error when parsing JSON body
- Added more intelligent body parsing
- Added
changed()
method in collection events - Added
previous
object in collection events - Fixed
dpd showkey
prompt for missing keys.json
- Added CORS support
- Exposed the server object to modules as
process.server
- Fixed a rare bug where the first request after a login would not be authenticated
- Fixed minor bug when loading only node modules
- Fixed
process.send
bug - Remote DB Authentication
- Fixed incorrect Content-Length response header.
- Removed dependency on jQuery for dpd.js
- JSON-formatted "bad credentials" login error
- Improved error reporting on CLI when port is in use
- If in development mode, and no port has been specifically requested, CLI will retry with up to 5 different ports
- Fixed "no open connections" bug on startup
- Renamed
Db.connect()
toDb.create()
- Db connections are now lazy and only occur once a request is made
- Added 500 and 404 error pages
- Added module domain error handling for better module errors
- Added automatic reloading on error
- Dropped support for node 0.6
- Fixed rare but annoying bug where server would crash for no good reason ("Cannot set headers") on a request
- Bumped the default recursion limit to 2 levels
- Fixed rare case where a resource's dashboard would not load
- Fixed user events
- Fixed several validation bugs
- In a UserCollection /users/me will return 204 instead of 401
- Restructured Deployd app folder structure. Let us know if you need to migrate any 0.5 apps.
- Changed the "email" property of a UserCollection to "username", in order to be less opinionated about user logic.
- Rebuilt the dashboard
- You can now manage resources from any page on the dashboard. Navigation has also been improved
- You can now reorder properties in a collection
- Added custom resource API. You can now write your own resources and include them in your app. See the [docs] for examples and reference.
- Fixed bug where your session could get elevated to root after using the Dashboard (causing cancel() in events to be ignored)