fleet/frontend/utilities
jacobshandling 096d67dd5a
Linux disk encryption: frontend changes, backend missing private key errors, remove disk encryption endpoints dependence on MDM being enabled (#23714)
## Addresses #22702,  #23713, #23756, #23746, #23747, and #23876
_-Note that much of this code as is will render as expected only once
integrated with the backend or if manipulated manually for testing
purposes_

**Frontend**:
- Update banners on my device page, tests
- Build new logic for calling endpoint to trigger linux key escrow on
clicking `Create key`
- Add `CreateLinuxKeyModal` to inform user of next steps after clicking
`Create key`
- Update banners on host details page, tests
- Update the Controls > OS settings section with new logic related to
linux disk encryption
- Expect and include counts of Linux hosts in aggregate disk encryption
stats UI
- Add "Linux" column to the disk encryption table
- Show disk encryption related UI for supported Linux platforms
- TODO: confirm platform string matching functionality in manual e2e
testing
- Expand capabilities of `SectionHeader` component, apply to new UI
- Flash "missing private key" error, with clickable link, when trying to
update disk encryption enabled while no server private key is present.
- TODO: QA this once other endpoints on Controls > Disk encryption are
enabled even when MDM not turned on
- Update Disk encryption key modal copy


-Other TODO:
  - Confirm when integrated with API:
    - Aggregate disk encryption counts
    - Disk encryption table Linux column
    - Show disk encryption key action on host details page when expected
    - Opens Disk encryption key modal, displays key as expected
  
**Backend**:
- For "No team" and teams, error when trying to update disk encryption
enabled while no server private key is present.
- Remove requirement of mdm being enabled for use of various endpoints
related to Linux disk encryption
- Update tests


_________
**Host details and my device page banners**

![banners](https://github.com/user-attachments/assets/b76fbfbd-0969-40eb-b8b1-9fd0d4fd0f4f)

**Create key modal**
<img width="1799" alt="create-key-modal"
src="https://github.com/user-attachments/assets/81a55ccb-b6b9-4eb6-b2ff-a463c60724c0">

**Enabling disk encryption**

![turning-on-enforcement](https://github.com/user-attachments/assets/005010b9-2238-46f8-9579-f07823898a78)

**Disk encryption: Fleet free**
<img width="1912" alt="free"
src="https://github.com/user-attachments/assets/9f9cace3-8955-47c2-87d9-24ff9387ac1a">

**Custom settings: turn on MDM**
<img width="1912" alt="turn on mdm"
src="https://github.com/user-attachments/assets/4d3ad47b-4035-4d93-86f0-dc2691b38bb4">

**Device status indicators**

![host-status-indicators](https://github.com/user-attachments/assets/5fc72c1e-816b-45b3-a650-5c1fcc48f09e)

**Encryption key action and modal**

![de-key-action-and-modal](https://github.com/user-attachments/assets/632f7b2c-c07e-4e30-87ef-e6437ae42a78)



- [x] Changes file added for user-visible changes in `changes/`
- [x] Added/updated tests
- [x] Manual QA for all new/changed functionality
  - [ ] Full e2e testing to do when integrated with backend

---------

Co-authored-by: Jacob Shandling <jacob@fleetdm.com>
Co-authored-by: Ian Littman <iansltx@gmail.com>
2024-11-20 11:58:47 -08:00
..
append_target_type_to_targets replaced old api calls with new version (#5254) 2022-04-20 10:45:32 -07:00
campaign_helpers update UI to react 18 (#17471) 2024-03-13 19:09:16 +00:00
convert_to_csv fleetctl, API, copy updates around host identifiers (#20220) 2024-07-09 10:25:01 -07:00
date_format feat: enable multiple ABM and VPP tokens (#21693) 2024-08-29 18:51:46 -04:00
debounce Removed all traces of Redux from the app! (#5287) 2022-04-22 09:45:35 -07:00
deep_difference Removed all traces of Redux from the app! (#5287) 2022-04-22 09:45:35 -07:00
file Update add software UI to move software package modal into new tabbed layout (#22553) 2024-10-02 10:43:20 -05:00
format_api_errors Removed all traces of Redux from the app! (#5287) 2022-04-22 09:45:35 -07:00
format_error_response Enhance error handling for UI sendRequest service (#14971) 2023-11-09 09:33:31 -06:00
generate_csv update UI to react 18 (#17471) 2024-03-13 19:09:16 +00:00
permissions Fleet UI: Hide CTA on inherited queries/policies from team level users, and related unexpected UI fixes (#19523) 2024-06-24 15:59:06 -04:00
simple_search Removed all traces of Redux from the app! (#5287) 2022-04-22 09:45:35 -07:00
sort Add software details page (#6089) 2022-06-08 14:01:38 -05:00
strings FE: Update strip quotes to ensure not mismatched, add tests on string utils (#21606) 2024-08-28 13:14:26 -04:00
url Chore UI fleet maintained api integration (#22467) 2024-09-30 12:34:43 +01:00
yaml Fleet Documentation: Update agent options and enrollment secret documentation (#9565) 2023-02-13 10:45:37 -05:00
constants.tsx Fleet UI: Update osquery version options (#23567) 2024-11-05 18:12:11 -06:00
copy_text.ts update jest setup and move config to its own file (#8258) 2022-10-25 14:17:32 +01:00
endpoints.ts Linux disk encryption: frontend changes, backend missing private key errors, remove disk encryption endpoints dependence on MDM being enabled (#23714) 2024-11-20 11:58:47 -08:00
helpers.tests.tsx feat: enable multiple ABM and VPP tokens (#21693) 2024-08-29 18:51:46 -04:00
helpers.tsx feat: enable multiple ABM and VPP tokens (#21693) 2024-08-29 18:51:46 -04:00
local.ts UI – Refrain from clearing the auth_token and redirecting to login for errors specific to this scenario (#14911) 2023-11-03 08:32:41 -07:00
osquery_tables.ts Fleet UI: Platform compatibility checker hides unsupported osquery tables (#16435) 2024-01-30 10:31:06 -05:00
platform_icon_class.ts Removed all traces of Redux from the app! (#5287) 2022-04-22 09:45:35 -07:00
software_install_scripts.ts Add support to upload RPM packages (#22502) 2024-10-01 13:02:13 -03:00
software_uninstall_scripts.ts Add support to upload RPM packages (#22502) 2024-10-01 13:02:13 -03:00
sql_tools.ts Frontend of iOS/iPadOS as platforms/labels (#20157) 2024-07-09 09:18:00 -04:00