actionhero

Actionhero is a realtime multi-transport nodejs API Server with integrated cluster capabilities and delayed tasks

APACHE-2.0 License

Downloads
14.5K
Stars
2.4K
Committers
127

Bot releases are visible (Hide)

actionhero - v8.0.8: Bug Fixes

Published by evantahler over 10 years ago

Fixes

  • allow empty api.servers.servers on start (thanks @DarrenAllen)
  • limit and offset have been removed as default params for connections
  • connection.id for web connections is no longer just the cookie/fingerprint. We now append a random id to avoid collisions from the same user doing more than one action
    • connection.rawConnection.fingerprint has been added to web connections, which will be the same from all clients.
    • you can split connection.id by "-", and the first portion will match the fingerprint
    • be sure to update your authentication logic
  • IISNODE will no longer attempt to user readline

Updates

  • async package updated to v7.0.0

Licence

actionhero now uses the Apache open source license.

actionhero - v8.0.7: connection.disconnect

Published by evantahler over 10 years ago

connection.disconnect

  • servers use connection.disconnect() internally
  • servers (when possible) will sever the "pipe" to the client with connection.disconnect() and remove the connection from any rooms and api.connections.connection

plugin load order

  • all actions, tasks, initializers, etc from plugins will be loaded and _started before those in your actionhero project
actionhero -

Published by evantahler over 10 years ago

actionhero - v8.0.5: Mutli-Callback Prevention and Redis Choices

Published by evantahler over 10 years ago

Redis Package Config

Changed the options in api.config.redis from fake: true to package: 'fakeredis'. This way, you can select from an redis client, including those which are sentinel-aware. Examples provided within generated redis.conf

Double-Callbacks Blocked within Actions.

If in your action you have a situation where you might have called next(connection, true) more than once, actionhero will now prevent the client from being messages twice, and the server will log an error about this.

Misc

  • Boot message added
  • Helpers updated for cleaning/removing locket sockets when binding web server to unix socket
  • Generated paths (clearly) locked to package defaults
actionhero - v8.0.4: Bug Fixes

Published by evantahler over 10 years ago

Bug Fixes

  • Fix a bug which prevented loading servers properly on windows (@liago86)
  • default tests in newly generated actionhero projects to fakeredis=true

Package Updates

  • async => v0.6.x
  • node-resque => v0.5.2
actionhero - v8.0.3: JSON padding and socket help

Published by evantahler over 10 years ago

  • allows the padding on JSON http responses to be set with api.config.servers.web.padding
  • more help around booting within a cluster and a stale http socket
actionhero - v8.0.2: Config Load Fixes

Published by evantahler over 10 years ago

Config Load Fixes

@rwatler has fixed a load-order problem with the new config system where config-a.js would rely on a not-yet-loaded config-b.js

Other

  • Upgrade dependent packages
actionhero - v8.0.1: Fixes

Published by evantahler over 10 years ago

You didn't think a major version would be perfect the first time, did you?

Bug Fixes

  • actionhero will no longer crash if a default director is missing (tasks, servers, etc)
  • removed sample plugin from generated config

Additions

  • api.staticFile.path is now a function. You can modify this in an initializer to update the behavior of the public directory for static files.
actionhero - v8.0.0: Plugins

Published by evantahler over 10 years ago

v8.0.0

actionhero V8.0.0 brings the launch of a plugin system for you to share common code between projects and release those packages on npm! This new wiki page has all the details. This will allow us to release common utilities for actionhero, like a redis session manger package or a mongo/mysql ORM collection.

To aid in the creation of plugins, actionhero has changed its configuration system to be more modular, and separated the monolithic config.js to smaller config files per section. Rather than have a directory of environment overrides to the default config, this is now done in each file.

Breaking Changes

  • New file syntax and layout for configuration
    • Each item in the api.config.general.paths collection is now listed as Arrays rather than individual strings. This means you can have multiple locations for actions, tasks, etc.
    • Enabling individual servers( web, websocket, socket) is now managed by enabled: true and enabled: false within their individual configuration files located in /config/servers.
    • The optional environment variable ACTIONHERO_CONFIG, if used, should now reflect a path, not a file
    • The optional argument config, if used, should now reflect a path, not a file

Other updates

  • The project generator has been updated to create these new configuration files
  • The project map has been updated to reflect these new configuration files
  • api.utils.hashMerge will now execute any element of a hash which is an function when merging
    • api.utils.hashMerge can now accept a third argument, arg, which will be passed to any key which is a function as it is resolved

Misc

  • We will no longer be testing actionhero on Travis.ci for node version v0.8. This requires more investigation
  • Many initialization methods have been simplified with a new utility: api.utils.recusiveDirecotryGlob which will locate all matching files (.js), including sub-directories.
actionhero - v7.6.11 global boot and socket binding

Published by evantahler over 10 years ago

Bug Fixes

  • actionhero executable commands now work when actionhero is installed globally
  • the webserver can now be bound to unix sockets
  • node-resque upgraded
actionhero - v7.6.8: deployment symlinks

Published by evantahler over 10 years ago

allows actionhero to resolve symlinks which change under a running process

actionhero - v7.6.7: Cleanup before v8

Published by evantahler over 10 years ago

Cleanup

  • decode URI params set from routes (@bluesunrise)
  • api._commands renamed to api.commands
  • api.watchFileAndAct will handle clearing node's require.cache automatically
  • test suite for node v0.8.x runs on travis.ci again. We now test v0.8, v0.9, v0.10 and v0.11 (successfully!)
  • upgraded dependent node_modules (list here)
  • safety around missing returns from middleware
  • grunt packages moved to optionalDependencies

Windows fixes

  • we now run the test suite with /test/runner.js rather than an ENV based command in package.json
  • general fixes to running the test suite

Bug Fixes

  • you can now get the api documentation with a GET request to /api/, but you cannot have any params in the request
  • config.general.filterParameters defined properly in config.js and template projects (@omichowdhury)
  • typos
actionhero - v7.6.6: Params and Bugs

Published by evantahler over 10 years ago

Better support for posting JSON body payloads to actionhero (https://github.com/evantahler/actionhero/pull/318)

  • Does not strip params from connections.params until the actionProcessor
    • will ensure that all posted params are available in preProcessor middleware
    • 'dry' up code to only have one place where params are stripped
  • allows for more complex JSON payload parsing in web server.

Bug Fixes

  • actionhero will no longer respond with a Transfer-encoding: Chunked header. All requests will only have a Content-length header.
  • worker names in pidfiles for actionhero servers when running under startCluster will now be simpler, IE: actionhero-worker-1, actionhero-worker-2, etc
  • Other misc fixes
actionhero - v7.6.5: Custom Error Reporters

Published by evantahler over 10 years ago

Custom Error Reporters

api.exceptionHandlers.reporters is an array that contains all the error reporters. Upon an uncaught exception from an error or task, all the reporters in the array will be invoked with (type, err, extraMessages, severity). You can remove the default sdtout reporter by setting api.exceptionHandlers.reporters = [];

As an example, here is the default stdout logger:

var consoleReporter = function(type, err, extraMessages, severity){
  for(var i in extraMessages){
    var line = extraMessages[i];
    api.log(line, severity);
  }
  var lines = err.stack.split(os.EOL);
  for(var i in lines){
    var line = lines[i];
    api.log('! ' + line, severity);
  }
  api.log('*', severity);
}

api.exceptionHandlers.reporters.push(consoleReporter);
actionhero - v7.6.4: middleware and posts

Published by evantahler over 10 years ago

Middleware

  • Moved action preProcessors to fire before checking sanitizing connection params. This means that you can inspect/modify all the connection's params before the action. Be careful!

JSON post bodies

  • Allow the webserver to parse params sent as a JSON body payload, ie: curl -X POST -d '{"thing": "fromBody"}' "http://api.com/api"

Bug Fixes

  • Fixed a bug which would not rebroadcast websocket connections between nodes. This would have effected websocket clients degraded to long polling.
actionhero - v7.6.3: Bug Fixes

Published by evantahler over 10 years ago

Bug Fixes

  • The Task initializer will now shut down before user-generated initializers
  • actionhero (in general) will sleep 500ms before exiting to allow any connections more time to exit
  • (actionhero generate) new projects will not be created with a task example
  • The "x-powered-by" header is moved to config.js to be user configurable
  • The websocket server will not accept new connections when actionhero is shutting down
  • The web server will not properly serve the index file for 'deep' public paths
  • a 500 error will be properly returned when an action fails to HTTP connections
actionhero - v7.6.2: Test Helper Fix

Published by evantahler over 10 years ago

  • Fix a test case where the specHelper might loop forever (until mocha's timeout)
  • Allow config override in gruntfile
  • Obey toRender in specHelper
  • Enforce "charset=utf-8" in JSON responses (thanks @PhilWaldmann)
actionhero - v7.6.1: filterParameters

Published by evantahler over 10 years ago

config.general.filterParameters

  • list params that you don't want to appear in logs.
  • user's data will be presented as "[FILTERED]" rather than the actual value.

FileServer updates for index files

  • actionHero can now serve index files from within folders
  • we have moved the config option api.config.servers.web.directoryFileType to api.config.general.directoryFileType to help this
actionhero - v7.6.0: lowercase

Published by evantahler almost 11 years ago

actionHero is renamed to actionhero (lowercase)

In order to satisfy NPM's requirement that all packages be named in lowercase, all new versions of actionhero, starting with v7.6.0 will be named actionhero. actionhero was fortunate enough to be "grandfathered" into NPM's naming conventions, but stricter requirements on new versions of NPM will require a lowercase name.

In order to not break compatibility with existing projects, both actionHero (old) and actionhero will be up in the NPM repository for a few months. CHANGE YOUR PROJECTS NOW, as the old actionHero project will be deleted in the near future.

notes

  • actionhero is now the name of the node binary
  • actionheroClient is now the name of the frontend JS client, and it is included with actionheroClient.js
actionhero - v7.5.2: optional param un-saftey

Published by evantahler almost 11 years ago

The ability to disable param scrubbing

  • You can now optionally disable actionHero's default behavior of 'scrubbing' away all input params from clients that aren't listed within an action's input hash
  • api.config.general.disableParamScrubbing is now in config.json to control this
  • thanks @omichowdhury

_stop

  • in both initializers and servers, we have renamed the method which will be called on sever shutdown to _stop(). The method was previously named teardown()

Generator cleanup and better templates