Releases: prey/prey-node-client
Releases · prey/prey-node-client
v1.2.2
- 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
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
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.