Skip to content

Releases: prey/prey-node-client

v1.2.2

05 Sep 19:38
Compare
Choose a tag to compare
  • Make sure we use SSLv3 protocol in API requests.
  • Linux Network Provider: Pass relative path to sudoer in access_points_list, to check for different paths.
  • Fixed 'account verify' with --update param.
  • Set shebang to /bin/bash, as /bin/sh can be symlinked to anything. (8 days ago)
  • Build tool: Keep bin/prey in Windows ZIPs, for now. We need it for the Bash/Node upgrade process.
  • Tests: Cover getuid() checks in pre/post install tasks.
  • Removed unused lockpolicy.exe binary in Lock module (Windows).

v1.2.1

05 Sep 19:36
Compare
Choose a tag to compare

Common

  • Updated libs: network, wmic, satan, firewall.
  • Replaced userrun.exe binary with safexec.exe, written in C and without the dependency of the CronSVC process.
  • Replaced the .Net based cronsvc.exe with a lighter C-based alternative: ExSVC. Much better handling of restarts.
  • Updated autowc.exe binary, and fixed the Windows reconnect() function which uses it.

Agent

  • Fixed running.stat check on agent/cli. Don't confuse pidfile write EPERM error with other user owning the process.
  • Fixed process.stdout writing in agent/cli, to ensure Win users do see the status output.
  • Fixes in hardware provider, active_network_interface getter.
  • Windows Wi-Fi netsh parser: Check if we actually got access points.
  • Better logging in agent/cli, log errors when gathering report data.

Plugins

  • Control Panel: More informative error handling on API errors (422 / network errors).
  • Control Panel: Fixed config reload after GUI configuration.

Config

  • Better warnings in install logic so 'npm install prey' process works as expected.
  • Config logger: Fallback to config-log.log if stream is not writable.
  • Don't stop on tasks.activate if this version is already current. This ensures that post_install won't get stopped by it in the middle.
  • Don't call plugins.disable_all if we're just updating (--updating param in pre_uninstall task).
  • Fixed --force argument to GUI (to bypass key verification).
  • Fixed post-install logic for *nix, impersonated activate command.
  • Fixed daemon removal in Windows. Unlink service_run_path when daemon.remove, and handle EBUSY errors when copying service bin.
  • If the Windows Firewall Service is down, don't bail out.

Tools, Tests

  • Fixes so tests pass 100% in Win8.1 and yes, XP.
  • Added specs: post_install, prey_user, daemon.
  • Make sure changes done by build.sh are reset when cancelled halfway through.
  • Build tool: Fixes. Make sure /bin in Windows ZIPs do not contain *nix stuff.
  • Build tool: Pass BUNDLE_ONLY to run_specs' npm install.

v1.2.0: Codename Sniper Wolf

05 Sep 19:17
Compare
Choose a tag to compare

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

05 Sep 17:21
Compare
Choose a tag to compare
  • [NEW] Allow 'Alert' action to be stoppable.
  • [FIX] Handle empty device_key in push driver.
  • Updater: Include child stdout messages as stack trace, if update failed.
  • Cleaner access points list parsing in Linux.
  • Include arguments in debug log messages.

v1.1.5

21 May 23:45
Compare
Choose a tag to compare
  • 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

16 May 01:03
Compare
Choose a tag to compare
  • 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

21 May 23:42
Compare
Choose a tag to compare
  • Updated entry (UPNP mapper) module, along with others (needle, connect, commander, etc). Fixes exception caused when parsing invalid soap responses from routers.

v1.1.2

01 May 01:45
Compare
Choose a tag to compare
  • Linux: Handle unknown distros in configuration routine.
  • Updated build script to enforce packages are always built from a release tag.

v1.1.1

01 May 01:44
Compare
Choose a tag to compare
  • 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

10 Apr 22:54
Compare
Choose a tag to compare
  • 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.