Releases: prey/prey-node-client
Releases · prey/prey-node-client
v1.2.0: Codename Sniper Wolf
Common
- Added new libs: sudoer, satan, ocelot, linus, wink, petit, tuna, clean-exit.
- Lock additional version packages in shrinkwrap (scrambler, memorize, reply).
- Updated libs: getset, triggers, entry, needle (better querystring builder).
- Use 'whenever' lib for loading some modules. This speeds up loading and reduces memory usage.
- Cleanup: Moved exceptions from agent into common ground, with a few fixes.
- Removed unused utils: scrambler.js and finder.js. Replaced exit.js with clean-exit module.
- Replace system/linux/sudo.js with sudoer library.
Agent
- New plugin structure, based on 'wink' module that provides an easy way to extend the agent.
- Boot logic: Load triggers before plugins. Handle plugin load errors on boot (remove from config if not found).
- Fixed actions. Now require function returns synchronously.
- Rename process title to 'prx'.
- bin/prey: Using a shell-based version, using exec so we don't spawn a new process when run.
- Fixed bin/prey script so it works when symlinked via npm -g install
- Added agent.reload() function. Removed unused agent.engage().
- Removed --driver option from agent/cli.
- Much better signal handling logic. Shutdown gracefully with a custom time limit, and make sure we don't exit with a 0 on SIGTERMs.
- Better log message when agent is running. Added our logo to the log message header!
- Better handling of network errors in agent and actions (ENETDOWN, ENETUNREACH, EADDRINFO, ENOTFOUND).
- Moved (enhanced) reconnect logic from connection watcher to agent index. And make connection watcher acts as a trigger.
- Return a NO_VERSIONS_SUPPORT code error when updater.check() cannot continue.
- Renamed 'endpoints' to 'transports', and fixed a few things. Removed unused 'default.options' files.
- Moved command logic to ./lib/agent/command.
- Moved store/restore commands from db into agent/commands.js.
- Fixed build command in commands.parse.
- Removed unused helpers.
- Removed tunnel.js in favor of new 'tuna' module.
- Removed logger.js in favour of smaller implementation in 'petit' library.
Plugins
- Refactored existing drivers into plugins, added tests, and ensure they do unload on plugin.unload().
- Refactored interval/push drivers into a 'control-panel' plugin, that now includes the 'api' module and encapsulates all CP-related stuff.
- Added retry-reports plugin.
- Added email-sender plugin.
- Added campfire plugin, using our custom version of 'node-campfire' module. Now includes data processors to allow posting images and map URLs.
- CP: Better map/unmap/stop/retry port mapping logic for CP's push adapter. Make sure PMP client is closed when unmapping port.
- CP: Log notification_id update failures.
- CP: Fixed setting of host/protocol options in API (both in plugin and conf modules).
- CP: Don't delete API key on plugin deactivation.
- Console: Notify action status in console.
Config
- Big refactor in 'lib/conf'. Split it into separate modules (GUI, account, tasks, etc).
- Updated default.options and prey.conf.default file, using new plugin structure (e.g. api_key/device_key is now scoped under 'control_panel').
- Added 'config plugins' section that allows enabling, disabling and setting up installed plugins.
- Added 'config log' option that shows log output and allows dumping to file.
- Removed 'config settings' section that was pretty useless.
- Removed deactivate command.
- 'config activate' now ensures is never run as root on Linux or Mac.
- Refactored much of the post_install/pre_uninstall logic. post_install now handles user creation and permissions.
- 'post_install' hook also activates installation, so there's no need to run both commands on installation.
- Much cleaner 'check if writable' logic in conf/cli, as well as root/non-root detection.
- GUI: Fixed bin path detection in Linux and OSX configurators. Fixed logo rendering in OSX.
- Better argument parsing in Operetta library. Added 'keyword' option. Show help message when command doesn't match.
- Fixed cp() util. Added error handling.
- Use new 'satan' lib for setting up daemon and init script. So removed all .plist and .conf stuff that we don't need.
- Moved conf/prompt script to control-panel plugin setup routine.
Tools, Tests
- Removed post_install/pre_install scripts as their logic is now completely handled inside the 'conf' module.
- Moved (dev) ./scripts into ./tools.
- Updated build tool. Allow building specific version.
- Added code coverage command, using 'istanbul' lib.
- Specs are back to 100%. Refactored big parts of it and removed deprecated stuff.
- Added several new specs: exceptions, plugin loader, install/update, control-panel plugin, etc.
v1.1.6
v1.1.5
- Handle socket errors for NAT-PMP client. Should fix #37.
- Removed some duplicate code.
- Don't notify exceptions if testing.
- Don't load triggers/hooks in console mode.
- Better error management, specially ENOENT.
- Fixed run_synced callback from activate_new_version (conf/cli).
- Update packages: wmic, entry, triggers.
v1.1.4
- Fixed nasty syntax bug in Windows' Wipe action.
- Rewrote, fixed and added a few tests
- Improved mapping detection logic in Push Driver.
- Set interval to 30 seconds when port mapping fails.
- Replaced unzip library with decompress-zip. Lets us preserve file attributes when unzipping new packages.
- Allow passing a 'silent' option when turning on logger again.
- Fixed config install [file]. Allow passing specific --version to bin/prey config upgrade.
- Removed duplicate 'package' module in lib/conf.
- Updated entry and triggers module.
v1.1.3
v1.1.2
v1.1.1
- Retry API requests when we get a connection/timeout error.
- Added checksum validation for package downloads. Use HTTPS endpoint.
- Handle Socket.closed errors on run_synced().
- Don't load jpegtran since we're not using it. Should fix ENOMEM error on some Windowses.
- Filter number of APs before sending geolocation request. Fixes "Request too long" error.
- Improve distro name and version detection in Linux.
- Add --force option to Linux/Mac prey-config.
- scripts/create_user: Make sure user has sudoer privileges, either if existing or not.
- Add 1 second wait time for OSX webcam capture.
v1.1.0: Codename Norris
- Fixes in process list provider.
- Added PMP mapping support.
- Fixes for Linux webcam grabbing, when video device is /dev/video1.
- Added ram_module_list getter in hardware info provider.
- Sudo.js: Fixed locating binaries in different paths.
- conf/cli.js: Reset api key if common.setup fails.
- Updated modules, stripped some code and turned them into their own (wmic, network).
- Mac webcam: Clear kill timeout when finished.
- Refactored some old code in alarm module.
- Handle spawn errors on spawn_as_logged_user.
- Log removed files when wiping.
- Linux APs: Handle 'Resource busy' errors when doing iwlist scan.
- Wipe: Remove dirs for all users in path, not just process.env.HOME.
- Better network device detection in Linux.