Commit Graph

174 Commits

Author SHA1 Message Date
Mike Arpaia
796e0af8be
Initial CLI and file format for fleetctl
This PR implements a program called `fleetctl` which scaffolds a high level CLI interface which can be used to manage a Fleet server. Configuration is articulated using an intent-based API that resembles the API that is used to configure Kubernetes clusters. The idea here is to use the Kubernetes file format as a pattern to reduce the need for operators to become too intimately familiar with dramatically different file formats. (#1578)
2017-11-12 11:58:19 -07:00
Mike Arpaia
4a90414f2e make binary-bundle (#1575)
Make utility for generating binary bundles
2017-10-18 10:45:01 -06:00
Mike Arpaia
baeb80f3b5
eval pre-fleet for docker build containers 2017-10-17 17:30:02 -06:00
Mike Arpaia
d69e8e245d Make it harder to accidentally release macOS binaries (#1566) 2017-10-16 17:35:14 -06:00
Mike Arpaia
8425fe2214 Use dep instead of glide (#1564) 2017-10-13 09:00:58 -06:00
Mike Arpaia
90c623d27d Remove license linting (#1563) 2017-10-12 11:06:29 -06:00
Mike Arpaia
1e16b12638 Move cli directory to cmd/fleet (#1560) 2017-10-12 10:42:13 -06:00
Mike Arpaia
80b082ea26 Renaming CI/Packaging things to Fleet (#1556) 2017-10-04 15:28:11 -06:00
Mike Arpaia
018b91ab2c Rename project to Kolide Fleet (#1529) 2017-06-22 15:50:45 -04:00
Zachary Wasserman
0d11c8a995 Update go get packages in make deps (#1474) 2017-04-06 12:12:20 -07:00
Kyle Knight
a64d88ff67 Update Webpack to v2 (#1393) 2017-03-13 15:13:33 -04:00
Victor Vrantchan
fdb3c55562 add tools and scripts to generate apt and dpkg repositories (#1183)
the scripts in tools/pkgrepos can be used to update apt and yum repositories as well as create zip archives for a release. 

The dl.kolide.co repository is archived as a static bucket on GCP.
2017-02-16 11:47:10 -05:00
Mike Arpaia
b8805803fd Installation docs (#1214)
* Adding infrastructure install documentation

* publishing the latest tag on releases
2017-02-13 15:57:16 -07:00
Zachary Wasserman
728c2c3475 Add license linting and dependencies.md (#1184)
Adds a `make lint-license` command that will crawl through the Golang and
Javascript dependencies, trying to automatically determine the license of each
dependency. If any dependencies have incompatible licensing (or if the
automatic detection fails), the tool will print an error and exit with a
non-zero status code. After a successful run, the
docs/third-party/dependencies.md file will be updated with attribution
information as determined by the crawl.

The configuration file has been bootstrapped with the manual analysis needed for
all of the existing dependencies.
2017-02-10 12:51:33 -08:00
Zachary Wasserman
f4060402f4 Migrate NPM to Yarn (#1197)
- Modify `make deps` to use yarn
- Add `yarn.lock`
- Add yarn to `kolide-builder` docker image
- Remove `npm-shrinkwrap.json`
- Remove build for `node-sass` (fixes #1151)
2017-02-10 10:22:26 -08:00
Zachary Wasserman
de44b39411 Add npm-shrinkwrap.json and pin Bourbon (#1190)
Temporary workaround for #1189
2017-02-09 12:13:04 -08:00
Mike Arpaia
41c25443bf Use localhost if MySQL environment variable is not set (#1175)
I think that this will make it easier to use the demo dump utilities
with minimal configuration.
2017-02-06 12:34:56 -07:00
Victor Vrantchan
7297a87a74 Move deployment steps into circle.yml config (#1140) 2017-02-02 11:30:23 -05:00
Mike Arpaia
a000751bfe renaming kolide-ose to kolide (#1143) 2017-02-01 10:20:50 -07:00
Victor Vrantchan
589a813293 use version based on git tags (#1130) 2017-01-30 14:37:27 -05:00
Victor Vrantchan
0b017031df make command to build deb and rpm packages (#1128)
Add a make command which uses https://github.com/jordansissel/fpm
to build linux packages.
2017-01-30 11:34:29 -05:00
Mike Arpaia
444aa96c06 Demo database dump (#1058)
This PR includes:

- `make demo-dump` which dumps all tables from your running development Kolide instance into `./tools/app/demo.sql`

```
$> make demo-dump
mysqldump --extended-insert=FALSE --skip-dump-date \
        -u kolide -p \
        -h 192.168.99.100 kolide \
        > ./tools/app/demo.sql
Enter password: ******
$>
```
- `make demo-restore` which restores `./tools/app/demo.sql` into your MySQL database, to be demo'd and extended by your running Kolide instance

```
$> make demo-restore
mysql --binary-mode -u kolide -p \
        -h 192.168.99.100 kolide \
        < ./tools/app/demo.sql
Enter password: ******
```

This included demo dump contains the following content:

## Queries

- 34 queries shared as ~70 scheduled queries

## Packs

- 8 Packs
- 13 Scheduled Queries in the "Intrusion Detection" pack
- 7 Scheduled Queries in the "Osquery Monitoring" pack
- 4 Scheduled Queries in the "Asset Management" pack
- 12 Scheduled Queries in the "Hardware Monitoring" pack
- 8 Scheduled Queries in the "Incident Response" pack
- 8 Scheduled Queries in the "Compliance" pack
- 6 Scheduled Queries in the "Vulnerability Management" pack
- 10 Scheduled Queries in the "Systems Monitoring" pack

## Labels

- 2 Labels

## Hosts

There are intentionally no hosts. Live hosts should be fabricated using Docker and attached to a running demo instance, to better look and behave like a real infrastructure.
2017-01-23 10:32:19 -07:00
Jason Meller
35c7fd6e03 Build assets for production (#1022) 2017-01-19 10:24:10 -05:00
Victor Vrantchan
650bae2ffb remove dev mode from cli options (#1027) 2017-01-19 09:42:45 -05:00
John Murphy
56b8772f13 Modify User (as a regular user) fails #891 (#959) 2017-01-18 00:43:59 +08:00
John Murphy
f4ae2c1446 Added make task with coverage and race analysis (#754)
* Added make task with coverage and race analysis

* removed coverage and race conditons from test task

* changed test-analyze-go to analyze-go
2017-01-04 15:59:17 -06:00
John Murphy
62748bfbb1 App Settings - /admin/settings #363 (#590) 2016-12-20 15:54:30 -06:00
Mike Arpaia
4b2decc060 Fix for setting the NODE_PATH env var on Windows (#647)
* Fix for setting the NODE_PATH env var on Windows

* making the makefile a bit more uniform
2016-12-15 11:39:01 -05:00
Victor Vrantchan
3d47be28c6 change docker tag to use short git sha for version (#594)
master:
   switch "latest" to SHA
PRs:
   switch "dev-prNumber" to "dev-prNubmer-SHA"
2016-12-08 12:54:21 -05:00
Mike Arpaia
f2e030ace9 Fixing the goose dep to install the command (#543) 2016-11-29 12:21:46 -08:00
Mike Arpaia
a036c5da9f Add attributes to packs (#524)
* Adds created_by attribute to packs

This PR also updated the distributed query code to use the pattern
established here (service checks context)

* add enable/disable state to packs

* add query_count to packs API responses

* add host_count to packs API responses (very, very poorly)

* pack description should not be required

* counting hosts in packs via mysql

* removing extraneous newline in test

* Switch case instead of if/if else

* add description to update query for SavePack method

* change AND to WHERE in query as per @zwass

* add ordering and list options as per @murphybytes' suggestion
2016-11-22 13:56:05 -08:00
John Murphy
531535c168 Refactored database migrations to use goose (#515)
* Refactored database migrations to use goose
2016-11-19 01:02:51 +08:00
Mike Arpaia
bf4ee40c41 Fixing make generate-dev (#492)
This commit adds the SQL bindata file generation to generate-dev
2016-11-16 09:56:40 -08:00
John Murphy
6a825c11e3 Datastore refactor (#439)
Removed Gorm, replaced it with Sqlx

* Added SQL bundling command to Makfile

* Using go-kit logger

* Added soft delete capability

* Changed SearchLabel to accept a variadic param for optional omit list
instead of array

* Gorm removed

* Refactor table structures to use CURRENT_TIMESTAMP mysql function

* Moved Inmem datastore into it's own package

* Updated README

* Implemented code review suggestions from @zwass

* Removed reference to Gorm from glide.yaml
2016-11-16 21:47:49 +08:00
Kyle Knight
ca33d238d8 Converting JS/Radium styles to SCSS (#360) 2016-11-03 14:40:54 -05:00
Mike Stone
94106f87e4 Resolve import paths from the frontend directory (#396) 2016-11-02 11:54:43 -04:00
Mike Stone
cd7f925fdb Typescript (#355) 2016-10-31 17:02:06 -04:00
Mike Arpaia
023729c1a6 Organizing linters in Makefile (#356) 2016-10-31 09:56:13 -04:00
Kyle Knight
4c6c0a2b05 Adding scss-lint and cleaning up styles (#354) 2016-10-28 16:25:57 -05:00
Mike Arpaia
de0141f7df Removing extraneous # in Makefile (#331) 2016-10-19 18:14:26 -04:00
Mike Arpaia
7b5021fb14 Turning the GC off at build-time on Windows (#303)
The way that you define environment variables for a single command
is slightly different than how it's done on nix. This PR adds a simple
switch to the Makefile to use the correct approach on the appropriate
operating system.
2016-10-12 12:25:59 -04:00
Victor Vrantchan
ae1e4d9bf0 increasing the heap size improves go build speed. (#298)
set GOGC=off to reduce the time it takes to `go build` when starting with no compiled dependencies.
2016-10-12 08:36:31 -04:00
Mike Arpaia
24d7212f3e Lower test verbocity in Makefile (#259)
I think that the output here is much more useful when allowing go to
determine when the output of a test should be displayed.
2016-10-03 14:28:53 -04:00
Mike Arpaia
a97e5d7874 Update version variable names in Makefile (#248)
close #247
2016-09-28 03:23:06 -07:00
Jason Meller
1409c294af Add awesome card stacking animations on login (#246)
* Add awesome card stacking animations on login

* Fix linter error

* Fix proptypes warning and clean up if/then logic

* True up vh units

* Make logout pixel perfect with login form
2016-09-28 03:16:09 -07:00
Mike Arpaia
0482f12926 Organizing go code (#241) 2016-09-26 11:48:55 -07:00
Victor Vrantchan
a3e26b6b9a build all branches, using master as latest (#226)
* build all branches, using master as latest
Split devs and build step to cache dependencies on CI
Add dockerignore to speed up docker build
2016-09-21 20:43:48 -04:00
Mike Arpaia
5682417103 Cleaning up some documentation and comments (#221) 2016-09-21 17:40:26 -07:00
Mike Arpaia
c972e031c7 Make utility to run server in dev mode (#219)
Often when I'm building, I'll do the following:

```
make generate
make build
./build/kolide.exe serve --dev
```

It would be nicer if I could just use make to run the dev server instead
of having to type out the full path every time:

```
make generate
make build
make run
```
2016-09-20 16:26:44 -07:00
Mike Arpaia
6ef0c79592 Fixing order issues with Webpack and removing bail switch (#214) 2016-09-20 11:54:07 -07:00
Mike Arpaia
d2f1e749ab Fixing Makefile for OS X (#211) 2016-09-20 11:03:42 -07:00
Mike Arpaia
225afb750f Clean and organize mocha test configurations (#202) 2016-09-20 09:42:46 -04:00
Mike Arpaia
4b425eb524 ESLint fixes and cleaning (#203) 2016-09-20 09:42:08 -04:00
Mike Arpaia
942df18a63 Updates to Makefile (#197) 2016-09-19 19:37:47 -07:00
Victor Vrantchan
e296098131 Docker Push of new builds (#192)
* wip

* add build step

* remove filter?

* circle does not rebuild on force push

* circle does not rebuild on force push

* add branch filter

* use build flag on builder

* push

* add circle env variable set

* redeploy
2016-09-19 15:54:57 -07:00
Mike Stone
40af0d29ef Forgot password (#162)
* GradientButton components

* Style guide updates

* Display errors and override styles for InputFieldWithIcon

* Envelope Icon

* Login page form submission (#157)

* API client utility

* moves test helpers to the test directory

* Utility to namespace local storage keys

* LoginSuccessfulPage component

* Check icon

* adds auth to redux state

* successful form submission

* Allow tests to load dummy SVG static images & test fixes

* ForgotPassword Page, Form & route

* Email validator
2016-09-14 16:31:54 -04:00
Victor Vrantchan
da05e360ac print version info (#164)
add version package and print version commands
make build now sets build info like git branch and revision when creating a binary.
2016-09-14 13:19:11 -04:00
Mike Stone
b638ae186d Login page form submission (#157)
* API client utility

* moves test helpers to the test directory

* Utility to namespace local storage keys

* LoginSuccessfulPage component

* Check icon

* adds auth to redux state

* successful form submission

* Allow tests to load dummy SVG static images & test fixes
2016-09-13 22:43:26 -07:00
Jason Meller
5e9f93d08a Add assets folder so we can serve images (#155) 2016-09-12 12:11:18 -04:00
Mike Arpaia
e7cabd0b73 Removing npm install --dev flag (#137) 2016-09-07 22:57:05 -04:00
Mike Arpaia
47aa83a911 Move test setup out of root (#124) 2016-09-06 17:13:03 -04:00
Mike Arpaia
7a67e98eda Making JS tests windows friendly (#123) 2016-09-06 17:00:34 -04:00
Mike Stone
a90645a95f Testing/linting setup (#120) 2016-09-06 14:41:16 -04:00
Mike Stone
1e36dabbdc Adding the watch flag to webpack (#118) 2016-09-06 11:23:33 -04:00
Mike Arpaia
9be7eacc73 generate-dev 2016-09-06 11:08:19 -04:00
Mike Arpaia
6bdf3fba4b cleaning up some development files (#115) 2016-09-05 17:58:49 -04:00
Mike Arpaia
05f8fb3263 Serve frontend in kitserver (#107) 2016-09-05 10:15:58 -04:00
Mike Arpaia
53a1fe8d84 queries and packs services via go-kit (#102)
* osquery services via go-kit

* Visual Studio Code configurations

* create query and pack endpoints

* organizing files more scalably

* modify query and pack endpoints

* delete query and pack endpoints

* get query and pack endpoints

* get all queries and packs endpoints

* add and remove queries from packs

* test stubs

* removing some indirection

* query service tests

* service pack tests

* transport tests

* adding config file flag back

* organizing package kolide

* get queries in pack endpoint

* run tests on 1.7?

* no 1.7 image :(

* typo in circle.yml
2016-09-04 01:13:42 -04:00
Victor Vrantchan
2946eeabfc add Dockerfile (#94)
* add Dockerfile to build
2016-08-25 09:25:02 -04:00
Mike Arpaia
d92992b3dd Session shuffle and rename app to server (#84)
* renaming campaign to email

* moving session management code to the new kolide/datastore pattern

* removing global configuration variables in favor of config

* moving email operations to package kolide

* moving app to server

* using http.ListenAndServeTLS instead of a method on *gin.Engine

* remove the kolide.go dependency on gin
2016-08-18 17:45:39 -07:00
Victor Vrantchan
0c51890b30 replace godep in favor of glide and using vendor directory
update make deps step in Makefile
update workflow for managing third party dependencies in README
closes #24, #47
2016-08-15 09:44:10 -04:00
Mike Arpaia
64d16b8a16 README and workflow updates (#62) 2016-08-10 08:31:27 -07:00
Mike Arpaia
b13f99ac37 README and Makefile typo fixes 2016-08-09 22:23:04 -07:00
Mike Arpaia
3a9381c5b3 React Base (#61)
* Add sensible React base to the app for frontend

This PR attempts to "reactify" Kolide and provide a sane development environment
that a front-end engineer would probably expect.

This PR accomplishes by doing the following:

1. Reorganizes the app into a `server/` and `client/` folders to keep golang
logic separated from react logic.

2. Adds an "asset pipeline" via webpack which knows how to build a js
and css bundle.

3. Packages up all static assets in a go-bindata file so that the binary
remains portable without external file dependencies.

1. Add a Makefile with several targets that will be common in everyday
development. For example, we have `serve` target which spins up a nodejs
reverse proxy on port 8081 which then watches for changed files, automatically
rebuilds the app, and hot loads the new JS/CSS in.

 **Note:** Please use `make` to build the app, not `go build` as there are
now several things that need to be orchestrated beyond the go code to build the app.

* Create build if it doesn't exist, and use `go get`

* Improve README to reflect new dev workflow

* Document css vars and funcs and use alias paths

* makefile and structure modifications
2016-08-09 22:15:44 -07:00