2019-06-16 21:42:52 +00:00
# Changelog
All notable changes to this project will be documented in this file. See [standard-version ](https://github.com/conventional-changelog/standard-version ) for commit guidelines.
2020-04-17 04:40:22 +00:00
### [0.8.2](https://github.com/ssube/salty-dog/compare/v0.8.1...v0.8.2) (2020-04-17)
### Bug Fixes
* **test:** leaking config load ([2fc7d76](https://github.com/ssube/salty-dog/commit/2fc7d7683c22ca81a46b12254a431b89b62cec18))
2020-03-11 12:08:32 +00:00
### [0.8.1](https://github.com/ssube/salty-dog/compare/v0.8.0...v0.8.1) (2020-03-11)
### Features
* **container:** install bunyan and jq for log parsing ([#263](https://github.com/ssube/salty-dog/issues/263)) ([dd37262](https://github.com/ssube/salty-dog/commit/dd372629510feea8da61d9928c443f7ccee08f38))
* make mutate an option within fix mode (fixes [#144 ](https://github.com/ssube/salty-dog/issues/144 )) ([705af89](https://github.com/ssube/salty-dog/commit/705af893a3271c6e72b01015847c00f89608af2b))
* short aliases for common options (fixes [#145 ](https://github.com/ssube/salty-dog/issues/145 )) ([f367291](https://github.com/ssube/salty-dog/commit/f367291540dfcdda14f95e08affd10a2f5260996))
* validate config while loading ([c1ff388](https://github.com/ssube/salty-dog/commit/c1ff388aff9c941aca264a14f91aa55bbfe03d47))
* validate rules while loading ([dbfe042](https://github.com/ssube/salty-dog/commit/dbfe0429fab64325edb097234342e893feed2a55))
* **build:** add sonar job ([1fa6bad](https://github.com/ssube/salty-dog/commit/1fa6bada4723fdb22734045fcb5acf1729a9883a))
* **rules:** add npm package ([42ddb3e](https://github.com/ssube/salty-dog/commit/42ddb3ecd764d6a64be9a925ee9ed41d24bab590))
* **rules:** add rules to validate json schemas ([0b5fe3d](https://github.com/ssube/salty-dog/commit/0b5fe3d5e5305d81db737e8c9e10acc210d42517))
* **rules/kubernetes:** add rule to prevent latest tag, rule to ensure pull policy is set ([8254848](https://github.com/ssube/salty-dog/commit/8254848ef84d106d354ca1270e45fa39347e479d))
* **rules/travis:** add language rule ([9a50046](https://github.com/ssube/salty-dog/commit/9a500461c1e501b1905c53ed81f6039dbab3906d))
### Bug Fixes
* **build:** handle unplaced chunks ([7187cac](https://github.com/ssube/salty-dog/commit/7187cac40c2e5bc73363d5fb609bc7a9b2b67465))
* **config:** accept S regex flag, anchor slashes ([2812254](https://github.com/ssube/salty-dog/commit/2812254ba55075632f526d1a7f683f57d660415d))
* **docs:** put contents in section, use yarn-global target ([84d2ba4](https://github.com/ssube/salty-dog/commit/84d2ba470ba49ca10319f1589186027bab99d6ec))
* **lint:** selectively allow null types ([899dac2](https://github.com/ssube/salty-dog/commit/899dac262ec10948a25d182dd58d96518380c2b1))
* **rules:** remove min length from rule desc ([8c1c45d](https://github.com/ssube/salty-dog/commit/8c1c45dfeba76141cdf7300acaa184b483126cf4))
* **rules/gitlab:** handle include ([b84e7b8](https://github.com/ssube/salty-dog/commit/b84e7b80c605d62e9e93f0c9868286674bb7436d))
* **tests:** cover read config, rule module helpers ([c0eb3e0](https://github.com/ssube/salty-dog/commit/c0eb3e0bfc684847edea44dd69af082b94f62673))
* **tests:** cover rule failures through main ([c053da9](https://github.com/ssube/salty-dog/commit/c053da90514da555fa4e7f3d3f274c7ca667311d))
* **tests:** cover rule loading from file/path ([85b81ea](https://github.com/ssube/salty-dog/commit/85b81ea86c399a6494438817e32d728aff816118))
* **tests:** cover rule module error handling, exclude by level ([b3fa9dd](https://github.com/ssube/salty-dog/commit/b3fa9dd9be9898edb686c63770b4ed614bdebaac))
* **tests:** cover source read and write ([838f87b](https://github.com/ssube/salty-dog/commit/838f87baf521eba6cad2585c9f44f5b0ec0397f5))
* **tests:** mock config when listing rules ([c9b6c9f](https://github.com/ssube/salty-dog/commit/c9b6c9fe4e7b8501f957dd4a4f837d200d911ea1))
* log schema names correctly, do not log unmatched files ([02ccffd](https://github.com/ssube/salty-dog/commit/02ccffda6b66f35eb57398eb94c2bfa1d35fb932))
* manually pass argv to yargs ([11b3bd0](https://github.com/ssube/salty-dog/commit/11b3bd0d09ac5570639495eb3c2fb7218038560a))
* update log level to use enum ([13d42e8](https://github.com/ssube/salty-dog/commit/13d42e8b6fe16a8a848b229aaa6aae24cb74aac4))
2019-11-10 13:28:45 +00:00
## [0.8.0](https://github.com/ssube/salty-dog/compare/v0.7.1...v0.8.0) (2019-11-10)
### ⚠ BREAKING CHANGES
* **visitor:** rule errors must be grouped and returned in the rule
### Bug Fixes
* **build:** add shebang to index ([c746f62](https://github.com/ssube/salty-dog/commit/c746f62))
* **build:** clean up after container builds ([c9a42f3](https://github.com/ssube/salty-dog/commit/c9a42f3))
* **build:** update rollup config from template ([80d3cb8](https://github.com/ssube/salty-dog/commit/80d3cb8))
* **docs:** add rule options to readme ([3cbf443](https://github.com/ssube/salty-dog/commit/3cbf443))
* **rule:** allow leading directories in rule path glob ([00c7b89](https://github.com/ssube/salty-dog/commit/00c7b89))
* export exit statuses ([e0dca3c](https://github.com/ssube/salty-dog/commit/e0dca3c))
* **build:** add full build target for local and containers ([79b4c9a](https://github.com/ssube/salty-dog/commit/79b4c9a))
* **build:** adopt rollup-template makefile, CI scripts ([a5bb2f4](https://github.com/ssube/salty-dog/commit/a5bb2f4))
* **build:** exclude partial typedefs and test bundle from package ([da0e080](https://github.com/ssube/salty-dog/commit/da0e080))
* **build:** include template jobs ([f9d3a44](https://github.com/ssube/salty-dog/commit/f9d3a44))
* **build:** replace template jobs with extends ([3ae9412](https://github.com/ssube/salty-dog/commit/3ae9412))
* **docs:** cover loading rules from module and path ([8ab6bb2](https://github.com/ssube/salty-dog/commit/8ab6bb2))
* **rules:** filter gitlab jobs better ([988b942](https://github.com/ssube/salty-dog/commit/988b942))
* **rules:** group rule errors to trigger correct failure ([#114](https://github.com/ssube/salty-dog/issues/114)) ([0c30036](https://github.com/ssube/salty-dog/commit/0c30036))
* **rules:** remove redundant rule field from result ([b5d4698](https://github.com/ssube/salty-dog/commit/b5d4698))
* **rules:** validate rule check/filter against full JSON schema metaschema ([afeba99](https://github.com/ssube/salty-dog/commit/afeba99))
* **tests:** add gitlab CI test snippet, move test snippets into test dir ([247e1ab](https://github.com/ssube/salty-dog/commit/247e1ab))
* **tests:** cover visit rules pass and errors ([44b1a60](https://github.com/ssube/salty-dog/commit/44b1a60))
* extract rule interface ([ebe15fb](https://github.com/ssube/salty-dog/commit/ebe15fb))
* **config:** group yargs to fix result TS interface ([5fefe0c](https://github.com/ssube/salty-dog/commit/5fefe0c))
* **docs:** note pretty-printing logs ([a3b8341](https://github.com/ssube/salty-dog/commit/a3b8341))
* **rules/tsconfig:** flatten target-lib using data refs ([b3c66dc](https://github.com/ssube/salty-dog/commit/b3c66dc))
* **tests:** use count flag to check example errors ([d2156a5](https://github.com/ssube/salty-dog/commit/d2156a5))
* **visitor:** handle missing errors gracefully ([9725685](https://github.com/ssube/salty-dog/commit/9725685))
* **visitor:** include rule name and selector in error messages ([fcd4740](https://github.com/ssube/salty-dog/commit/fcd4740))
* **visitor:** log added schemas correctly ([29e9462](https://github.com/ssube/salty-dog/commit/29e9462))
* **visitor:** remove error method from context ([842006c](https://github.com/ssube/salty-dog/commit/842006c)), closes [#114 ](https://github.com/ssube/salty-dog/issues/114 )
* build a rule selector from args, log it in list mode ([59e7c13](https://github.com/ssube/salty-dog/commit/59e7c13))
* include active/loaded rule count in list mode output ([05f3f2f](https://github.com/ssube/salty-dog/commit/05f3f2f))
* move completion into main, remove weird exit from arg parsing ([a2a0fb4](https://github.com/ssube/salty-dog/commit/a2a0fb4))
### Features
* adopt rollup template index (fixes [#118 ](https://github.com/ssube/salty-dog/issues/118 )) ([53e00c5](https://github.com/ssube/salty-dog/commit/53e00c5))
* recursively load rules (fixes [#135 ](https://github.com/ssube/salty-dog/issues/135 )) ([6f4b324](https://github.com/ssube/salty-dog/commit/6f4b324))
* **build:** add build-in-image targets to make ([f805945](https://github.com/ssube/salty-dog/commit/f805945))
* **build:** replace tslint with eslint ([7052096](https://github.com/ssube/salty-dog/commit/7052096))
* **rules:** add item index to rule error (fixes [#116 ](https://github.com/ssube/salty-dog/issues/116 )) ([f0b5109](https://github.com/ssube/salty-dog/commit/f0b5109))
* **rules:** load JSON rule files when using --rule-path ([5229ada](https://github.com/ssube/salty-dog/commit/5229ada))
* **visitor:** move jsonpath pick to context for modules to use ([b99431b](https://github.com/ssube/salty-dog/commit/b99431b))
* enable data refs ([2b0dc92](https://github.com/ssube/salty-dog/commit/2b0dc92))
* load rules from directories ([#8](https://github.com/ssube/salty-dog/issues/8)) and modules ([#6](https://github.com/ssube/salty-dog/issues/6)) ([9fbf7cc](https://github.com/ssube/salty-dog/commit/9fbf7cc))
* split rule and helpers, test rule ([b3dc864](https://github.com/ssube/salty-dog/commit/b3dc864))
2019-11-01 11:17:03 +00:00
### [0.7.1](https://github.com/ssube/salty-dog/compare/v0.7.0...v0.7.1) (2019-11-01)
### Bug Fixes
* **build:** publish npm packages to npmjs.org ([b9819b8](https://github.com/ssube/salty-dog/commit/b9819b8))
* **docs:** update readme tags ([e7d1f9f](https://github.com/ssube/salty-dog/commit/e7d1f9f))
* **rule:** log and apply mutation when rule has > 0 diffs ([63b6e48](https://github.com/ssube/salty-dog/commit/63b6e48))
2019-11-01 10:44:58 +00:00
## [0.7.0](https://github.com/ssube/salty-dog/compare/v0.6.1...v0.7.0) (2019-11-01)
### Bug Fixes
* **build:** add tslint back to rollup ([6aa1cb5](https://github.com/ssube/salty-dog/commit/6aa1cb5))
* **build:** pin docker/dind images ([070a623](https://github.com/ssube/salty-dog/commit/070a623))
* **build:** replace app with package in version data ([c76781b](https://github.com/ssube/salty-dog/commit/c76781b))
* **build:** set a default image arch, do not suffix those tags ([37b1aae](https://github.com/ssube/salty-dog/commit/37b1aae))
* **build:** switch to relative imports ([0ab6de7](https://github.com/ssube/salty-dog/commit/0ab6de7))
* **build:** switch to relative imports ([45a53a9](https://github.com/ssube/salty-dog/commit/45a53a9))
* **build:** tag images with architecture ([d2c50a1](https://github.com/ssube/salty-dog/commit/d2c50a1))
* **build:** use npm mirror ([c5aeac0](https://github.com/ssube/salty-dog/commit/c5aeac0))
* **config:** pass include errors as nested cause ([6ab7d9c](https://github.com/ssube/salty-dog/commit/6ab7d9c))
* **config/include:** handle more errors in include ([4a05fcd](https://github.com/ssube/salty-dog/commit/4a05fcd))
* **docs:** disambiguate build/install headers ([47fe866](https://github.com/ssube/salty-dog/commit/47fe866))
* **docs:** fix license section ([100f9ce](https://github.com/ssube/salty-dog/commit/100f9ce))
* **rule:** print failure message when errors are present ([5160eaa](https://github.com/ssube/salty-dog/commit/5160eaa))
* **scripts:** make example tests more shell compatible ([#106](https://github.com/ssube/salty-dog/issues/106)) ([1304cf5](https://github.com/ssube/salty-dog/commit/1304cf5))
* **test:** set mutate option for test contexts ([72920b2](https://github.com/ssube/salty-dog/commit/72920b2))
* **tests:** add async helpers for tests, wrap async tests, make chai external ([0eb9d51](https://github.com/ssube/salty-dog/commit/0eb9d51))
* **tests:** always print actual exit status of test scenarios ([77c1d0c](https://github.com/ssube/salty-dog/commit/77c1d0c))
* **tests:** begin testing friendly errors, other errors (exceptions) ([a13a909](https://github.com/ssube/salty-dog/commit/a13a909))
* **tests:** begin testing rules ([013b1d7](https://github.com/ssube/salty-dog/commit/013b1d7))
* star import ([93f4917](https://github.com/ssube/salty-dog/commit/93f4917))
### Features
* **build:** add alpine image jobs ([017dfd7](https://github.com/ssube/salty-dog/commit/017dfd7))
* include data path in error messages ([67a61f6](https://github.com/ssube/salty-dog/commit/67a61f6))
* **docs:** add fossa badge ([7aaaf29](https://github.com/ssube/salty-dog/commit/7aaaf29))
* **test:** add nyc coverage ([e627a51](https://github.com/ssube/salty-dog/commit/e627a51))
* **test:** add source map support ([489ca33](https://github.com/ssube/salty-dog/commit/489ca33))
* **visitor:** improve error messages ([#20](https://github.com/ssube/salty-dog/issues/20)) ([c9c1a58](https://github.com/ssube/salty-dog/commit/c9c1a58))
* make fix mode mutations and defaults independent ([30ab437](https://github.com/ssube/salty-dog/commit/30ab437))
2019-07-04 17:06:06 +00:00
### [0.6.1](https://github.com/ssube/salty-dog/compare/v0.6.0...v0.6.1) (2019-07-04)
### Bug Fixes
* use global yargs to fix bundle ([23b791f](https://github.com/ssube/salty-dog/commit/23b791f))
2019-07-04 16:02:53 +00:00
## [0.6.0](https://github.com/ssube/salty-dog/compare/v0.5.0...v0.6.0) (2019-07-04)
### Bug Fixes
* **docs:** remove container and package scopes ([fff8155](https://github.com/ssube/salty-dog/commit/fff8155))
* print completion or rules before attempting to load source ([8b9d84e](https://github.com/ssube/salty-dog/commit/8b9d84e))
* wrap yargs and exit after completion ([8b8d669](https://github.com/ssube/salty-dog/commit/8b8d669))
* **build:** test rules during other tests ([3e3cc7d](https://github.com/ssube/salty-dog/commit/3e3cc7d))
* **container:** use git tags as-is ([a72597d](https://github.com/ssube/salty-dog/commit/a72597d))
* **test:** use ref config for example tests ([25d967b](https://github.com/ssube/salty-dog/commit/25d967b))
### Build System
* split jobs to fix image tagging ([c438a8b](https://github.com/ssube/salty-dog/commit/c438a8b))
### Features
* add command completion ([39c0e4b](https://github.com/ssube/salty-dog/commit/39c0e4b))
* **test:** add pragmas to examples, add example tests to build ([b7d0b43](https://github.com/ssube/salty-dog/commit/b7d0b43))
* **test:** rules and tags pragmas ([cce8671](https://github.com/ssube/salty-dog/commit/cce8671))
* **test:** start adding pragma-based tests to examples ([0c7d442](https://github.com/ssube/salty-dog/commit/0c7d442))
* add default rule selector ([15933ba](https://github.com/ssube/salty-dog/commit/15933ba))
* **rules/grafana:** add rule to ensure single env, add staging alert rule ([229a0c8](https://github.com/ssube/salty-dog/commit/229a0c8))
### BREAKING CHANGES
* the `--mode` option has been replaced by a positional
command, but the options and defaults are unchanged.
2019-07-01 01:15:21 +00:00
## [0.5.0](///compare/v0.4.1...v0.5.0) (2019-07-01)
### Bug Fixes
2019-07-01 01:49:12 +00:00
* make -v an alias for --version ([5f5b993](https://github.com/ssube/salty-dog/commit/5f5b993))
* **build:** actually fix mdl config ([675b200](https://github.com/ssube/salty-dog/commit/675b200))
* **build:** add rpt2 cache to cache rather than artifacts ([0996390](https://github.com/ssube/salty-dog/commit/0996390))
* **build:** artifact all output ([9eacea6](https://github.com/ssube/salty-dog/commit/9eacea6))
* **build:** attempt to fix mdl config ([24ebc9e](https://github.com/ssube/salty-dog/commit/24ebc9e))
* **build:** clean up output directory between builds ([30ea7d6](https://github.com/ssube/salty-dog/commit/30ea7d6))
* **build:** move sinon to vendor chunk ([d02b223](https://github.com/ssube/salty-dog/commit/d02b223))
* **build:** run generic build target ([c41d9d0](https://github.com/ssube/salty-dog/commit/c41d9d0))
* **build:** split index into its own chunk ([8351fff](https://github.com/ssube/salty-dog/commit/8351fff))
* **container:** set up as cli tool within container ([ef2a9c9](https://github.com/ssube/salty-dog/commit/ef2a9c9))
* **rules/tsconfig:** correctly enforce lib/target for esnext ([62d58fe](https://github.com/ssube/salty-dog/commit/62d58fe))
2019-07-01 01:15:21 +00:00
### Build System
2019-07-01 01:49:12 +00:00
* image build and global install targets ([8368271](https://github.com/ssube/salty-dog/commit/8368271))
* remove license from chunks ([ac86e69](https://github.com/ssube/salty-dog/commit/ac86e69))
* remove redundant tsconfig options ([37c0dbb](https://github.com/ssube/salty-dog/commit/37c0dbb))
* **package:** set module entry point to main bundle ([7e2d20e](https://github.com/ssube/salty-dog/commit/7e2d20e))
* split vendor chunk ([96d15bb](https://github.com/ssube/salty-dog/commit/96d15bb))
2019-07-01 01:15:21 +00:00
### Features
2019-07-01 01:49:12 +00:00
* **rules:** add tsconfig rules ([27843c6](https://github.com/ssube/salty-dog/commit/27843c6))
* **rules:** kubernetes rule to require labels ([aa350cc](https://github.com/ssube/salty-dog/commit/aa350cc))
* **rules/tsconfig:** check for suppressed errors ([d11f3d6](https://github.com/ssube/salty-dog/commit/d11f3d6))
* **test:** begin testing visitor ([31d1977](https://github.com/ssube/salty-dog/commit/31d1977))
* configure renovate for semantic commits ([fbcc143](https://github.com/ssube/salty-dog/commit/fbcc143))
* extend renovate presets ([2d0b7ad](https://github.com/ssube/salty-dog/commit/2d0b7ad))
2019-07-01 01:15:21 +00:00
2019-06-29 21:52:05 +00:00
### [0.4.1](https://github.com/ssube/salty-dog/compare/v0.4.0...v0.4.1) (2019-06-29)
### Build System
* include license, set binary, fix deps ([7fce611](https://github.com/ssube/salty-dog/commit/7fce611))
2019-06-29 21:30:44 +00:00
## [0.4.0](https://github.com/ssube/salty-dog/compare/v0.3.0...v0.4.0) (2019-06-29)
### Bug Fixes
* **build:** correct runner in version info ([e1d5144](https://github.com/ssube/salty-dog/commit/e1d5144))
* **build:** validate rules during build ([0129221](https://github.com/ssube/salty-dog/commit/0129221))
* **docker:** move rules to app dir, tweak layer order ([b6fe129](https://github.com/ssube/salty-dog/commit/b6fe129))
* **rules:** check numeric cpu limits ([aec3ea9](https://github.com/ssube/salty-dog/commit/aec3ea9))
* **rules:** ensure low CPU limits are non-0 ([97d5c7a](https://github.com/ssube/salty-dog/commit/97d5c7a))
* **rules:** remove test default ([e02cd67](https://github.com/ssube/salty-dog/commit/e02cd67))
* **rules:** validate source names ([4112a1d](https://github.com/ssube/salty-dog/commit/4112a1d))
* **scripts:** use project path for status ([cd3be38](https://github.com/ssube/salty-dog/commit/cd3be38))
* apply schema changes to data ([03b3bfa](https://github.com/ssube/salty-dog/commit/03b3bfa))
* delimit output documents ([79c7e71](https://github.com/ssube/salty-dog/commit/79c7e71))
* docker examples, container output, misc lint ([670e45a](https://github.com/ssube/salty-dog/commit/670e45a))
* list modes in help ([1f1faf8](https://github.com/ssube/salty-dog/commit/1f1faf8))
* use consistent option names in source ([c09d135](https://github.com/ssube/salty-dog/commit/c09d135))
### Build System
* add tests ([35781f8](https://github.com/ssube/salty-dog/commit/35781f8))
* omit cache from npm bundle ([c753d30](https://github.com/ssube/salty-dog/commit/c753d30))
* update image to node 11 ([e7df382](https://github.com/ssube/salty-dog/commit/e7df382))
### Features
* rule selector helper ([a630571](https://github.com/ssube/salty-dog/commit/a630571))
* **rules:** add example grafana rule ([f2579d4](https://github.com/ssube/salty-dog/commit/f2579d4))
* add cli help (fixes [#7 ](https://github.com/ssube/salty-dog/issues/7 )) ([721f85f](https://github.com/ssube/salty-dog/commit/721f85f))
* add rules to image, doc ([e358857](https://github.com/ssube/salty-dog/commit/e358857))
* display diff when rule modifies data (fixes [#3 ](https://github.com/ssube/salty-dog/issues/3 )) ([6f15d1c](https://github.com/ssube/salty-dog/commit/6f15d1c))
* fix mode and type coercion ([719954e](https://github.com/ssube/salty-dog/commit/719954e))
* group config & rules in help ([da42749](https://github.com/ssube/salty-dog/commit/da42749))
* list mode, fix version option ([8efbd99](https://github.com/ssube/salty-dog/commit/8efbd99))
* load definitions from rules (fixes [#2 ](https://github.com/ssube/salty-dog/issues/2 )) ([9eb41fc](https://github.com/ssube/salty-dog/commit/9eb41fc))
* support multiple documents per source ([#11](https://github.com/ssube/salty-dog/issues/11)) ([2bd60c8](https://github.com/ssube/salty-dog/commit/2bd60c8))
### Tests
* **rule:** begin testing resolver ([caca3fc](https://github.com/ssube/salty-dog/commit/caca3fc))
* add em ([1931659](https://github.com/ssube/salty-dog/commit/1931659))
### BREAKING CHANGES
* adds a required `name` property (string) at the
top level of each `--rules` file, used as the schema name
2019-06-16 21:42:52 +00:00
## 0.3.0 (2019-06-16)
### Bug Fixes
* **source:** wait for output write to finish ([72bedc8](https://github.com/ssube/salty-dog/commit/72bedc8))
* refactor parser into a single class ([29f372d](https://github.com/ssube/salty-dog/commit/29f372d))
* **build:** add github status script, remove coverage jobs ([5498236](https://github.com/ssube/salty-dog/commit/5498236))
* **build:** fix artifacts ([f61b568](https://github.com/ssube/salty-dog/commit/f61b568))
* **build:** fix node target ([a1cf4cc](https://github.com/ssube/salty-dog/commit/a1cf4cc))
* **docker:** add stderr config ([8d87332](https://github.com/ssube/salty-dog/commit/8d87332))
* **docker:** only copy bundle into image ([db47b3e](https://github.com/ssube/salty-dog/commit/db47b3e))
* **rules:** make filter optional in meta-rules ([52095ed](https://github.com/ssube/salty-dog/commit/52095ed))
* limit error count ([b1ba817](https://github.com/ssube/salty-dog/commit/b1ba817))
* only print parsed args ([4a124eb](https://github.com/ssube/salty-dog/commit/4a124eb))
### Build System
* add and document target to validate rules ([1b42c26](https://github.com/ssube/salty-dog/commit/1b42c26))
* add CI ([cec3576](https://github.com/ssube/salty-dog/commit/cec3576))
* add dockerfile ([172efb9](https://github.com/ssube/salty-dog/commit/172efb9))
* fix main, do not bundle source map or vendor source dir ([da85fb3](https://github.com/ssube/salty-dog/commit/da85fb3))
* fix version info ([0f78fa4](https://github.com/ssube/salty-dog/commit/0f78fa4))
* use example stderr config when validating rules ([731c87e](https://github.com/ssube/salty-dog/commit/731c87e))
### Features
* **parser:** serialize data via parser ([ab40330](https://github.com/ssube/salty-dog/commit/ab40330))
* add modes, basic readme ([5e05c72](https://github.com/ssube/salty-dog/commit/5e05c72))
* clean rules up with a bit of a visitor pattern ([9a25fb9](https://github.com/ssube/salty-dog/commit/9a25fb9))
* **rules:** add filename as tag ([0876e72](https://github.com/ssube/salty-dog/commit/0876e72))
* make node selectors work ([282e93d](https://github.com/ssube/salty-dog/commit/282e93d))
* make rule filters optional (fixes [#4 ](https://github.com/ssube/salty-dog/issues/4 )) ([9a7f882](https://github.com/ssube/salty-dog/commit/9a7f882))
* write to stdout or file ([a68975c](https://github.com/ssube/salty-dog/commit/a68975c))
* **config:** stream type for bunyan config ([24f91aa](https://github.com/ssube/salty-dog/commit/24f91aa))
* count errors, improve error messaging ([f50f2f1](https://github.com/ssube/salty-dog/commit/f50f2f1))
* project, build, and bundle ([8be80c3](https://github.com/ssube/salty-dog/commit/8be80c3))
* run schema, do everything but select nodes ([29aaa93](https://github.com/ssube/salty-dog/commit/29aaa93))
* working bundle, example config ([e8173d4](https://github.com/ssube/salty-dog/commit/e8173d4))