Skip to content
This repository has been archived by the owner on Jul 16, 2024. It is now read-only.

GREASE V2: The Sports Car

Compare
Choose a tag to compare
@abstract-base-method abstract-base-method released this 27 Dec 16:53
· 224 commits to master since this release
4a33fcd

v2.0.0: The Sports Car

Version II of GREASE! Enterprise operations is hard. GREASE makes it easier and with this release we are making GREASE easier to use too! No longer a skateboard of an idea, this is the sports car version of the GREASE platform

A Complete Rewrite

We've taken lots of feedback while generating the feature set for version two, and the amount we received warranted us just starting again with all the lessons from last time. This allowed us to implement a very robust testing suite and synchronize the naming conventions and coding styles across the project.

NOTE: This is a major release, this is not compatible with v1 clusters

The ChangeLog

  • Documentation!: Full sphinx documentation by default. cloning the repo will now give you a full copy of the documentation. Travel to the docs directory and run make html to get a full documentation website!
  • Unified Commandline: grease, grease-daemon and greasectl are gone and now cross platform work via the single entry point grease
  • A help command: Running grease help will now print out the help information for all commands registered for even better administration experiences
  • Moar Tests!: GREASE has always been stable. This release we can guarantee that even more so with over 200 tests built up so far in our test suite
  • Command Testing: GREASE now has a test case you can extend allowing you to integrate & simplify your requirements for testing your commands by automatically testing your configs and allowing you to write your own methods for testing as much as you want.
  • Windows Tests: AppVeyor is now enabled and running, ensuring compliance on all recent versions of windows!
  • Default Sources!!: We've built basic sources to provide a starting point for GREASE monkeys!
    • SQL Source: Query PostgreSQL databases as a source of information for GREASE!
    • URL Source: Monitor URL's for source data!
    • ElasticSearch Source: Query ElasticSearch for source data!
  • Better distribution of sources: V1 treated sources and logical blocks. If a response gave 1,000 sources those would travel together through the cluster only being distributed at execution time. Sourcing now will fan out detection/scheduling as well to ensure we take full advantage of the distributed nature of the platform
  • Truly ubiquitous daemon experience: grease daemon install/start/stop now works regardless of your platform. From Windows7->10, MacOS via Launchd, and Linux via Systemd GREASE now integrates with all of them natively allowing for a simple experience when controlling your node's service state!
  • More commands from the CLI: Commands have always been able to be executed from the CLI, but with this release you can now craft context via the CLI. Need a variable called hostname in the context? Just pass --hostname github.com and the router now constructs that for you! This means more support for building cross-platform triage and recovery tools that can be wielded by humans or machines via GREASE.
  • A new configuration scheme: This release moves away from environment variables, instead choosing a JSON configuration file, which upon installation and first run, the system will write a template version for you!
  • Multi-Package support: Ever wanted more than one active GREASE plugin? We now support it. By default the configuration has all the internal paths, but building your own extension packages can now run together under one installation allowing for multiple command, sourcing, and prototype packages all co-existing in one installation!
  • No more PostgreSQL: In this release we are moving away from PostgreSQL in favor of MongoDB for the model flexibility this gives us.
  • Variable Storage: Need a command to store things between executions? Commands now have the variable_storage property which is an instance of your own MongoDB Collection.
  • Scheduled Commands: A new command type this command allows for scheduling a job to execute at specific times. This allows for a command to run "every day at 7AM"