* #511 refactored update options - new params & ts
* updated server to include agent_options for read and update
* added agent options form to org settings
* #511 finished connecting agent form to server
* #511 fixing api to save/read agent options
* #511 linted
* #511 fixed reading & updating agent options
* #511 api fixes to support agent options
* #511 removed log
* Fix json.RawMessage pointers in tests
Co-authored-by: Zach Wasserman <zach@fleetdm.com>
* add messaging in autocomplete dropdown to show reason why user cannot be selected
* user permission utils
* doc autocomplete dropdown and move it closer to wehre its used
* test for select teams form
* test for data table and transfer host endpoint
gss
* moving host actions and entities to ts
* change host transfer to new endpoint:
* added more tests to data table
* change some comments
* change import path
* fix build TS errors
* change data table test string
* Team managers can configure agent_options for each team
* Previous osquery_options now passes teamId for team.agent_options
* Code conversions: JS to TS, global to team specific, class components to functional components
(Linting errors on PR are just those external broken links)
* added teams to add host modal dropdown
* bulk and transfer host on host page
* started transferhost API call
* hook up client side of api
* hook up client side of api call for enrol secrets
* added selection number and clear all selections button
* remove log and document
* fix ManageHostPage tests
* fix linting errors
* add indeterminate styles to checkbox
* added clearable handler for dropdown component
* fix up no team for add modal
* Add active selection styles and move specific host table styles into ManageHostsPage styles
* changed add host team dropdown to include no team option
* add no team option to bulk transfer host options
* change enroll spelling
Co-authored-by: Noah Talerman <noahtal@umich.edu>
* added permissions for adding host button on host page
* added teams to add host modal dropdown
* add placeholder for dropdown and fix some type issues
* added add host redirect modal on team details
* added reducers and kolide api teams code, hooked up empty state
* request for get all teams and remove unused loading bar
* added create team functionality|gs
* update link cell to be more generic
* create teams detail page and hook it up
* added tabbing and styling to top nav team details
* added edit and delete modal functionality
* add in table and modals for members for teams
* created reusable edit user modal and use it in manage teams page
* creating add member autocomplete
* hook up adding members to teams
* hook up real members from api into table, and empty state for table
* fix proptype warning
* hooked up table querying for member page
* added remove member modal
* added tems to edit useres on member page
* finish remove member from team
* fixed up editing on members page
* fix the role value in member table
* fix prettier errors
* fixes from PR comments round 1
* add missing error handler on add member
* add dynamic team name to member page and user dynamic user and team names to succuess and errors
* add test for userManagementHelper module
* fix lint errors
* fix tests
* add member test to row results on member page
* create skeleton of team management page and hook it up with routing
* added reducers and kolide api teams code, hooked up empty state
* request for get all teams and remove unused loading bar
* fix sending teams response to store
* added create team functionality|gs
* added edit and delete fuctionality to teams management
* fixed up some edge cases for deleting and editing teams
* remove unused UserRow
* get list of teams for user to add new users to, fix up Userform
* add prettier and have it format all js code except website:
:
* trying running prettier check in CI
* fix runs on in CI
* change CI job name
* fix prettier erros and fix CI
* hook up user and invite data together for data table
* added client derived data to user table
* hooked up action dropdown to table
* hooked up edit modal and password reset
* started adding editing user functiaonlity
* add query params to /invite call
* clean up editing teams
* update select team from to handle existing users with teams
* update closes modal now
* reuse getUser to clean up code in userManagementpage
* pass form data to updating user that is not the current User
* add dynamic userform submit text and fix tests
* fix lint error in table component
* added empty state for user table
* clean up unused data table props
* added delete modal
* add delete user functionality
* add delete option for invite
* Add styles for rows in user table and action dropdown cell
* hook up user and invite data together for data table
* added client derived data to user table
* hooked up action dropdown to table
* hooked up edit modal and password reset
* started adding editing user functiaonlity
* add query params to /invite call
* clean up editing teams
* update select team from to handle existing users with teams
* update closes modal now
* reuse getUser to clean up code in userManagementpage
* pass form data to updating user that is not the current User
* add dynamic userform submit text and fix tests
* fix lint error in table component
* added empty state for user table
* clean up unused data table props
* added delete modal
* add delete user functionality
* add delete option for invite
* Merge in generateClassTag
* Refactor table styles
* Add newline to DropdownCell style sheet
Co-authored-by: Gabriel Hernandez <ghernandez345@gmail.com>
* update checking for admin through global_role in nav
* added defaultGloablRole for creat user modal
* remove unused comment
* fix broken tests
* reenabled search for users tests
Co-authored-by: noahtalerman <47070608+noahtalerman@users.noreply.github.com>
* rework data table, got to point of calling network request correctly
* got to point of rendering table columns and data
* finish up functional changes to data table
* fix tests
* fix styles for table container and data table
* clean up some styles
* update to styles for no host configured
* cleanup and docs
* add missing method for host table text formatting
* disabling unused test. will add back in next PR
* clean up code
* start with making nav horizontal and updating nav and main content areas
* remove unneded subnav styling and JS code
* remove unused isSmallNav and --small styles
* remove isSmallNav in reducer and fix tests
* change 'admin' to 'settings'
* remove unnneded username to logo
* change account page urls
* Add user avatar dropdown to nav
* remove unused background colour on company logo
* get tabbing to work correctly
* implement styling of tab and page descriptions
* change default settings nav to organisation settings
* remove more unneeded subnav code
* fix some broken tests after changes
* pull out getdefaultTabIndex in settingsWrapper
* sticky sub nav for settings pages
* tweak zindex for setting subnav
* updated yarn.lock
* update icons
* fix collapsing nav items
* tweak avatar dropdown styles
* remove sidebar on osquery page
* updated typescript version and tsconfig in project
* updated eslint version
* change from experimental export to supported export
* removed accidentally added script
* turn off buggy jsx-a11y eslint rules
* remove unused tslint.json
* fix wrong jsx-a11y depedency
* use correct eslint-plugin-jsx-a11y version
* fix rest of linting errors
* move back js-yaml version to 3 major
* start adding global search filter
* update polyfill setup to use async await for react-table
* update browerslist to sensible defaults
* get global search functionality woring
* more progress on the data table
* get label network calls working in hostdatatable
* get pagination functionality into the HostDataTable
* get search query making network call
* get ordering making query
* make actual sort order network calls
* disable cpu column sorting
* seperate get table data from get labels
* fix issues with input resetting and got search query working
* get sort working
* ignore vs code editor settings
* improve loading spinner to move inside the table
* improve styling
* add sorting arrows
* remove unused sorting arrow component
* add host query params to labels endpoint
* fix style for query textarea on label hosts
* got new pagination working
* set server data as source of truth for table global filter
* cleanup logs
* clean up pagination styles
* fix up paginationa and no host styles
* add result count to table
* remove logs
* tweak header styles
* fix to sort order
* simplify default sort direction
* keep sort order of server api responses and use in host table
* clean up logs
* Add styles for header cell and pagination
* fix tests for ManageHostPage
* fix tests for HostContainer
* fix lower level action reducer and thunk tests
* fix tests for hosts client
* fix up some host count styling
* added back no hosts start message
* fix linting errors
* remove unused old pagination code
* add back scrollToTop utility on pagination
* remove unused code in managehostpage test
Co-authored-by: Noah Talerman <noahtal@umich.edu>
- Support both /api/v1/fleet and /api/v1/kolide routes in server.
- Add logging for use of deprecated routes.
- Rename routes in frontend JS.
- Rename routes and add notes in documentation.
This PR adds a new Host details page as part of the Hosts UI project #162
Summary of changes:
- New component <HostDetailsPage />
- Move "Query" and "Delete" buttons from the hosts list to the Host details page
- Add new button variants label and text-link
- Add react-tooltip package to the project (v4.2.13)
This PR adds an "Errors" table to the live query UI.
Summary of changes:
- Errors table includes the columns `hostname`, `osquery_version`, and `error`
- The errors table is only rendered when at least one host fails
- Hosts with an osquery version less than 4.4.0 always display the error "upgrade osquery on this host to 4.4.0+ for error details"
- Kolide404 and Kolide500 components renamed to Fleet404 and Fleet500
- Styling for Login and Confirm invite pages are consistent with the recent changes to the Setup page.
- Add "*" character to the 404 <Route />'s path property. Now the 404 page renders when there is no exact path match.
- Move from Mocha to Jest for JS testing (Jest seems to have better support for
'watching' tests and a more active community these days).
- Codemod existing tests to Jest syntax (using https://github.com/skovhus/jest-codemods)
- Fix some errors in tests that were previously hidden.
- Update Babel.
The goal of these changes is to update the main content (center column) of the /hosts page.
What is included in these changes:
- Removing the grid view for hosts. This required removing the actions, reducers, and props using to toggle the display between grid and table view. The toggle buttons in the UI are also removed.
- Adding host_cpu, memory, and uptime columns to the table. This increases the table's width which is now horizontally scrollable.
- Removing the HostDetails component used in the grid view. Moving the helpers.js file to HostTable. Adjusting JS tests to account for these changes.
- Updating pagination styles.
- Output easy to parse stack traces during run of tests
- Fix some spurious warnings and errors in tests
- Add --exit flag to Mocha invocation to fix hang due to timers in ACE editor
Created 3 new components: <OsqueryOptionsPage /> , <OsqueryOptionsForm />, and <YamlAce />
The <OsqueryOptionsPage /> component is rendered at the new route /admin/osquery. The user navigates to this route by selecting the "Osquery Options" sub-navigation in the admin dropdown menu.
On the Osquery Options page, the user is presented with a ACE editor filled with the current osquery options. The current osquery options are retrieved from the serve when the page component mounts. These current osquery options are stored in the osquery slice of state.
Clicking "UPDATE OPTIONS" will trigger a form submit and hit the v1/kolide/spec/osquery_options endpoint if the yaml is valid. If the yaml is not valid, an error message is presented to the user with details on what the error is and where it occurred. If the yaml is valid, the osquery options will be updated even if the options haven't change.
Updated the 500 page component to render a "SHOW ERROR" button.
This button is only rendered if the errors slice of the state contains an error and the base property exists. Otherwise, the 500 page will not render this button because there is no error message to show the user.
Created a errors500 reducer and actions to update the state tree when a 500 error occurs. When 500 error occurs, the errors slice of state is updated with the error object. When the 500 page component unmounts the error object is removed from state.
Demo: https://www.loom.com/share/b87c4aee42274e7bb553e703d3f950c6
This commit takes advantage of the existing pagination APIs in the Fleet
server, and provides additional APIs to support pagination in the web
UI. Doing this dramatically reduces the response sizes for requests from
the UI, and limits the performance impact of UI clients on the Fleet and
MySQL servers.
Fleet used significant resources storing the full network interface
information for each host. This data was unused, except to get the
IP and MAC of the primary interface. With these changes, only those
pieces of data are stored.
- Calculate and store primary IP and MAC
- Remove transaction for storing full interfaces
- Update targets search to use new IP and MAC columns
- Update frontend to use new new columns
Almost two years ago, we began referring to the project as Fleet, but there are
many occurences of the term "Kolide" throughout the UI and documentation. This
PR attempts to clear up those uses where it is easily achievable.
The term "Kolide" is used throughout the code as well, but modifying this would
be more likely to introduce bugs.
- Hosts with unexpected CPU brand string render properly
- Other unexpected host CPU information renders properly
- Add tests for host CPU parsing
Fixes#1604
Closes issue #1456 This PR adds a single sign on option to the login form, exposes single sign on to the end user, and allows an admin user to set single sign on configuration options.
Closes#1502. This PR adds support for SSO to the new user creation process. An admin now has the option to select SSO when creating a new user. When the confirmation form is submitted, the user is automatically authenticated with the IDP, and if successful, is redirected to the Kolide home page. Password authentication, password change and password reset are not allowed for an SSO user.