fleet/frontend/interfaces/activity.ts

432 lines
19 KiB
TypeScript
Raw Normal View History

import { ILabelSoftwareTitle } from "./label";
UI – Add VPP features for iPadOS and iOS (#20755) ## Addresses #20467 – part 2 ### Aggregate software: #### Software titles <img width="1616" alt="sw-titles-updated" src="https://github.com/user-attachments/assets/0b9922c7-e36e-4d2f-b204-95c3cdf9b602"> #### Software versions <img width="1616" alt="Screenshot 2024-07-29 at 6 14 21 PM" src="https://github.com/user-attachments/assets/5a097700-cd6c-45b1-a21f-9d76a733f0ae"> #### Host software <img width="1616" alt="Screenshot 2024-07-29 at 6 23 01 PM" src="https://github.com/user-attachments/assets/84e18695-f47a-4022-bd53-7f5d37ce452a"> ### Add software modal (VPP) _screenshots use mocked data - UI is flexible enough to display cleanly before and after backend is in place:_ <img width="1339" alt="happy" src="https://github.com/user-attachments/assets/8900aa93-316c-4a09-8e5a-1a1e45b0c458"> #### No apps: <img width="1572" alt="Screenshot 2024-07-29 at 6 35 03 PM" src="https://github.com/user-attachments/assets/466b9b6c-4d3d-49dd-94a9-94e395d89cb7"> #### Not enabled: <img width="1572" alt="Screenshot 2024-07-29 at 6 37 45 PM" src="https://github.com/user-attachments/assets/9bcfd480-8741-4d95-ba3b-550dee4dc673"> #### Error: <img width="1572" alt="Screenshot 2024-07-29 at 6 39 39 PM" src="https://github.com/user-attachments/assets/e944dd40-676e-4aba-9cd9-49ff319bf402"> ### Vuln support – Not supported for now: _see above screenshots for `list` endpoints_ #### Software title detail <img width="1616" alt="Screenshot 2024-07-29 at 6 47 29 PM" src="https://github.com/user-attachments/assets/2e30fd0a-21e4-4d19-bf9b-71a994bfd0e7"> #### Software version and OS detail: <img width="1616" alt="Screenshot 2024-07-29 at 6 48 28 PM" src="https://github.com/user-attachments/assets/e8fec769-ba97-4b6b-b10c-9bb4c973c732"> <img width="1616" alt="Screenshot 2024-07-29 at 6 50 25 PM" src="https://github.com/user-attachments/assets/0ac15727-e0cb-447c-8758-c58b79656d1a"> - [x] Changes file added for user-visible changes in `changes/`, - [x] Added/updated tests - [x] Manual QA for all new/changed functionality --------- Co-authored-by: Jacob Shandling <jacob@fleetdm.com>
2024-07-30 17:14:25 +00:00
import { Platform } from "./platform";
import { IPolicy } from "./policy";
import { IQuery } from "./query";
import { ISchedulableQueryStats } from "./schedulable_query";
import { SoftwareSource } from "./software";
import { ITeamSummary } from "./team";
import { UserRole } from "./user";
export enum ActivityType {
CreatedPack = "created_pack",
DeletedPack = "deleted_pack",
EditedPack = "edited_pack",
CreatedPolicy = "created_policy",
DeletedPolicy = "deleted_policy",
EditedPolicy = "edited_policy",
CreatedSavedQuery = "created_saved_query",
DeletedSavedQuery = "deleted_saved_query",
DeletedMultipleSavedQuery = "deleted_multiple_saved_query",
EditedSavedQuery = "edited_saved_query",
CreatedTeam = "created_team",
DeletedTeam = "deleted_team",
LiveQuery = "live_query",
AppliedSpecPack = "applied_spec_pack", // fleetctl
AppliedSpecPolicy = "applied_spec_policy", // fleetctl
AppliedSpecSavedQuery = "applied_spec_saved_query", // fleetctl
AppliedSpecSoftware = "applied_spec_software", // fleetctl
AppliedSpecTeam = "applied_spec_team", // fleetctl
EditedAgentOptions = "edited_agent_options",
UserAddedBySSO = "user_added_by_sso",
UserLoggedIn = "user_logged_in",
Log failed login attempts as activities (#9430) #9119 To test the SSO changes locally you can use: https://github.com/fleetdm/fleet/blob/main/docs/Contributing/Testing-and-local-development.md#testing-sso @RachelElysia Please take a look at the UI changes (All I did was copy/paste and amend the changes for the new activity type.) IMO we shouldn't display an avatar because there's no "actual user" involved in these failed login attempts activities (by "actual user" I mean the user attributed to the activity): <img width="446" alt="Screenshot 2023-01-19 at 10 41 05" src="https://user-images.githubusercontent.com/2073526/213524771-b85901ce-eec0-4cf3-919c-73162285e20b.png"> - [X] Changes file added for user-visible changes in `changes/` or `orbit/changes/`. See [Changes files](https://fleetdm.com/docs/contributing/committing-changes#changes-files) for more information. - [X] Documented any API changes (docs/Using-Fleet/REST-API.md or docs/Contributing/API-for-contributors.md) - ~[ ] Documented any permissions changes~ - ~[ ] Input data is properly validated, `SELECT *` is avoided, SQL injection is prevented (using placeholders for values in statements)~ - ~[ ] Added support on fleet's osquery simulator `cmd/osquery-perf` for new osquery data ingestion features.~ - [X] Added/updated tests - [X] Manual QA for all new/changed functionality - ~For Orbit and Fleet Desktop changes:~ - ~[ ] Manual QA must be performed in the three main OSs, macOS, Windows and Linux.~ - ~[ ] Auto-update manual QA, from released version of component to new version (see [tools/tuf/test](../tools/tuf/test/README.md)).~
2023-01-20 15:43:22 +00:00
UserFailedLogin = "user_failed_login",
UserCreated = "created_user",
UserDeleted = "deleted_user",
HostDeleted = "deleted_host",
UserChangedGlobalRole = "changed_user_global_role",
UserDeletedGlobalRole = "deleted_user_global_role",
UserChangedTeamRole = "changed_user_team_role",
UserDeletedTeamRole = "deleted_user_team_role",
FleetEnrolled = "fleet_enrolled",
MdmEnrolled = "mdm_enrolled",
MdmUnenrolled = "mdm_unenrolled",
EditedMacosMinVersion = "edited_macos_min_version",
EditedIosMinVersion = "edited_ios_min_version",
EditedIpadosMinVersion = "edited_ipados_min_version",
Add "update new hosts to latest" to OS Updates form for MacOS (#37103) <!-- Add the related story/sub-task/bug number, like Resolves #123, or remove if NA --> **Related issue:** Resolves #36088 # Checklist for submitter If some of the following don't apply, delete the relevant line. - [X] Changes file added for user-visible changes in `changes/`, `orbit/changes/` or `ee/fleetd-chrome/changes`. See [Changes files](https://github.com/fleetdm/fleet/blob/main/docs/Contributing/guides/committing-changes.md#changes-files) for more information. ## Testing - [X] Added/updated automated tests - [X] QA'd all new/changed functionality manually Saving this value currently results in a 400 response from the server since it's not a valid key yet. We can keep this in draft until the backend is merged if we want to e2e test with it. ### Controls -> OS Settings "Target" section #### All platforms - [X] Update success banner message to "Successfully updated." <img width="200" alt="image" src="https://github.com/user-attachments/assets/bc43ec79-41d1-4dd3-947c-8152051fd209" /> #### macOS / iOS / iPadOS - [X] Update tooltip text for "Minimum version" to `Enrolled hosts are updated to exactly this version.` <img width="250" alt="Image" src="https://github.com/user-attachments/assets/7d870224-395e-4bc9-937e-be599da57a97" /> - [X] Make "available from Apple" a link, replacing "Learn more", and link to https://fleetdm.com/learn-more-about/apple-available-os-updates <img width="250" height="363" alt="image" src="https://github.com/user-attachments/assets/8191ec2d-bf0a-4cf6-9b1a-1272c0ff69b0" /> > Note - this URL is current a 404 - [X] Remove text referring to platform from "End user experience" heading, i.e. it should just say "End user experience" for all platforms where it appears, not e.g. "End user experience on macOS" #### macOS Only - [X] Add new "Update new hosts to latest" checkbox <img width="316" height="406" alt="Image" src="https://github.com/user-attachments/assets/71aec05a-b809-436d-8bfd-cd3e14b27ea1" /> - [X] Reflects the `macos_updates.update_new_hosts` setting for the team or (for no team) global config (only testable via automated tests right now) - [X] Update End user experience text to "When a minimum version is enforced, end users see a native macOS notification (DDM) once per day." (see above) ### Global activity feed - [X] When "Update new hosts to latest" is enabled, activity should say `[Actor's name] enabled OS updates for all new macOS hosts on the [team name] team. macOS hosts will upgrade to the lastest version when they enroll.` - [X] When "Update new hosts to latest" is disabled, activity should say `[Actor's name] disabled updates for all new macOS hosts on the [team name] team.` (tested via automated tests)
2025-12-12 17:46:07 +00:00
EnabledMacosUpdateNewHosts = "enabled_macos_update_new_hosts",
DisabledMacosUpdateNewHosts = "disabled_macos_update_new_hosts",
ReadHostDiskEncryptionKey = "read_host_disk_encryption_key",
/** Note: BE not renamed (yet) from macOS even though activity is also used for iOS and iPadOS */
CreatedAppleOSProfile = "created_macos_profile",
/** Note: BE not renamed (yet) from macOS even though activity is also used for iOS and iPadOS */
DeletedAppleOSProfile = "deleted_macos_profile",
/** Note: BE not renamed (yet) from macOS even though activity is also used for iOS and iPadOS */
EditedAppleOSProfile = "edited_macos_profile",
2024-10-17 14:21:26 +00:00
AddedNdesScepProxy = "added_ndes_scep_proxy",
DeletedNdesScepProxy = "deleted_ndes_scep_proxy",
EditedNdesScepProxy = "edited_ndes_scep_proxy",
AddedDigicert = "added_digicert",
DeletedDigicert = "deleted_digicert",
EditedDigicert = "edited_digicert",
AddedConditionalAccessMicrosoft = "added_conditional_access_microsoft",
DeletedConditionalAccessMicrosoft = "deleted_conditional_access_microsoft",
EditedConditionalAccessMicrosoft = "edited_conditional_access_microsoft",
AddedCustomScepProxy = "added_custom_scep_proxy",
DeletedCustomScepProxy = "deleted_custom_scep_proxy",
EditedCustomScepProxy = "edited_custom_scep_proxy",
AddedHydrant = "added_hydrant",
DeletedHydrant = "deleted_hydrant",
EditedHydrant = "edited_hydrant",
AddedSmallstep = "added_smallstep",
DeletedSmallstep = "deleted_smallstep",
EditedSmallstep = "edited_smallstep",
2025-11-08 00:11:40 +00:00
AddedCustomESTProxy = "added_custom_est_proxy",
DeletedCustomESTProxy = "deleted_custom_est_proxy",
EditedCustomESTProxy = "edited_custom_est_proxy",
CreatedWindowsProfile = "created_windows_profile",
DeletedWindowsProfile = "deleted_windows_profile",
EditedWindowsProfile = "edited_windows_profile",
CreatedAndroidProfile = "created_android_profile",
DeletedAndroidProfile = "deleted_android_profile",
EditedAndroidProfile = "edited_android_profile",
EditedAndroidCertificate = "edited_android_certificate",
// Note: Both "enabled_disk_encryption" and "enabled_macos_disk_encryption" display the same
// message. The latter is deprecated in the API but it is retained here for backwards compatibility.
EnabledDiskEncryption = "enabled_disk_encryption",
EnabledMacDiskEncryption = "enabled_macos_disk_encryption",
// Note: Both "disabled_disk_encryption" and "disabled_macos_disk_encryption" display the same
// message. The latter is deprecated in the API but it is retained here for backwards compatibility.
DisabledDiskEncryption = "disabled_disk_encryption",
DisabledMacDiskEncryption = "disabled_macos_disk_encryption",
AddedBootstrapPackage = "added_bootstrap_package",
DeletedBootstrapPackage = "deleted_bootstrap_package",
ChangedMacOSSetupAssistant = "changed_macos_setup_assistant",
DeletedMacOSSetupAssistant = "deleted_macos_setup_assistant",
EnabledMacOSSetupEndUserAuth = "enabled_macos_setup_end_user_auth",
DisabledMacOSSetupEndUserAuth = "disabled_macos_setup_end_user_auth",
TransferredHosts = "transferred_hosts",
EnabledWindowsMdm = "enabled_windows_mdm",
DisabledWindowsMdm = "disabled_windows_mdm",
UI - GitOps Mode: Core abstractions, first batch of applications (#26401) ## For #26229 – Part 1 ![ezgif-6bbe6d60c12ed4](https://github.com/user-attachments/assets/37a04b64-abd7-4605-b4ac-9542836ff562) - This PR contains the core abstractions, routes, API updates, and types for GitOps mode in the UI. Since this work will touch essentially every part of the Fleet UI, it is ripe for merge conflicts. To mitigate such conflicts, I'll be merging this work in a number of iterative PRs. ~To effectively gate any of this work from showing until it is all merged to `main`, [this commit](feedbb2d4c25ec2e304e1f18d409cee62f6752ed) hides the settings section that allows enabling/disabling this setting, effectively feature flagging the entire thing. In the last of these iterative PRs, that commit will be reverted to engage the entire feature. For testing purposes, reviewers can `git revert feedbb2d4c25ec2e304e1f18d409cee62f6752ed` locally~ The new settings section for this feature is feature flagged until all PRs are merged - to show the setting section while testing, run `ALLOW_GITOPS_MODE=true NODE_ENV=development yarn run webpack --progress --watch` in place of `make generate-dev` - Changes file will be added and feature flag removed in the last PR - [x] Settings page with routing, form, API integration (hidden until last PR) - [x] Activities - [x] Navbar indicator - Apply GOM conditional UI to: - [x] Manage enroll secret modal: .5 - Controls > - [x] Scripts: - Setup experience > - [x] Install software > Select software modal - [x] OS Settings > - [x] Custom settings - [x] Disk encryption - [x] OS Updates 2/18/25, added to this PR: - [x] Controls > Setup experience > Run script - [x] Software > - [x] Manage automations modal - [x] Add software > - [x] App Store (VPP) - [x] Custom package - [x] Queries - [x] Manage - [x] Automations modal - [x] New - [x] Edit - [x] Policies - [x] Manage - [x] New - [x] Edit - Manage automations - [x] Calendar events - [x] Manual QA for all new/changed functionality --------- Co-authored-by: Jacob Shandling <jacob@fleetdm.com>
2025-02-20 16:41:07 +00:00
EnabledGitOpsMode = "enabled_gitops_mode",
DisabledGitOpsMode = "disabled_gitops_mode",
EnabledWindowsMdmMigration = "enabled_windows_mdm_migration",
DisabledWindowsMdmMigration = "disabled_windows_mdm_migration",
RanScript = "ran_script",
RanScriptBatch = "ran_script_batch",
ScheduledScriptBatch = "scheduled_script_batch",
CanceledScriptBatch = "canceled_script_batch",
2023-10-10 22:00:45 +00:00
AddedScript = "added_script",
UpdatedScript = "updated_script",
2023-10-10 22:00:45 +00:00
DeletedScript = "deleted_script",
EditedScript = "edited_script",
EditedWindowsUpdates = "edited_windows_updates",
LockedHost = "locked_host",
UnlockedHost = "unlocked_host",
WipedHost = "wiped_host",
CreatedDeclarationProfile = "created_declaration_profile",
DeletedDeclarationProfile = "deleted_declaration_profile",
EditedDeclarationProfile = "edited_declaration_profile",
ResentConfigurationProfile = "resent_configuration_profile",
ResentConfigurationProfileBatch = "resent_configuration_profile_batch",
AddedSoftware = "added_software",
EditedSoftware = "edited_software",
DeletedSoftware = "deleted_software",
InstalledSoftware = "installed_software",
UninstalledSoftware = "uninstalled_software",
2024-07-16 17:16:57 +00:00
EnabledVpp = "enabled_vpp",
DisabledVpp = "disabled_vpp",
AddedAppStoreApp = "added_app_store_app",
EditedAppStoreApp = "edited_app_store_app",
2024-07-16 17:16:57 +00:00
DeletedAppStoreApp = "deleted_app_store_app",
InstalledAppStoreApp = "installed_app_store_app",
EnabledActivityAutomations = "enabled_activity_automations",
EditedActivityAutomations = "edited_activity_automations",
DisabledActivityAutomations = "disabled_activity_automations",
CanceledRunScript = "canceled_run_script",
CanceledInstallAppStoreApp = "canceled_install_app_store_app",
CanceledInstallSoftware = "canceled_install_software",
CanceledUninstallSoftware = "canceled_uninstall_software",
2025-02-27 14:07:34 +00:00
EnabledAndroidMdm = "enabled_android_mdm",
DisabledAndroidMdm = "disabled_android_mdm",
Microsoft Compliance Partner backend changes (#29540) For #27042. Ready for review, just missing integration tests that I will be writing today. - [X] Changes file added for user-visible changes in `changes/`, `orbit/changes/` or `ee/fleetd-chrome/changes`. See [Changes files](https://github.com/fleetdm/fleet/blob/main/docs/Contributing/guides/committing-changes.md#changes-files) for more information. - [X] Input data is properly validated, `SELECT *` is avoided, SQL injection is prevented (using placeholders for values in statements) - [ ] Added support on fleet's osquery simulator `cmd/osquery-perf` for new osquery data ingestion features. - [X] If database migrations are included, checked table schema to confirm autoupdate - For new Fleet configuration settings - [X] Verified that the setting can be managed via GitOps, or confirmed that the setting is explicitly being excluded from GitOps. If managing via Gitops: - [X] Verified that the setting is exported via `fleetctl generate-gitops` - [X] Added the setting to [the GitOps documentation](https://github.com/fleetdm/fleet/blob/main/docs/Configuration/yaml-files.md#L485) - [X] Verified that the setting is cleared on the server if it is not supplied in a YAML file (or that it is documented as being optional) - [x] Verified that any relevant UI is disabled when GitOps mode is enabled - For database migrations: - [X] Checked schema for all modified table for columns that will auto-update timestamps during migration. - [X] Confirmed that updating the timestamps is acceptable, and will not cause unwanted side effects. - [X] Ensured the correct collation is explicitly set for character columns (`COLLATE utf8mb4_unicode_ci`). - [x] Added/updated automated tests - [X] Manual QA for all new/changed functionality --------- Co-authored-by: jacobshandling <61553566+jacobshandling@users.noreply.github.com> Co-authored-by: Jacob Shandling <jacob@fleetdm.com>
2025-06-11 17:22:46 +00:00
ConfiguredMSEntraConditionalAccess = "added_conditional_access_integration_microsoft",
DeletedMSEntraConditionalAccess = "deleted_conditional_access_integration_microsoft",
AddedConditionalAccessOkta = "added_conditional_access_okta",
DeletedConditionalAccessOkta = "deleted_conditional_access_okta",
UI: Conditional access - Microsoft Entra (#27982) _Note - currently feature flagged. Build frontend with `ALLOW_CONDITIONAL_ACCESS=true NODE_ENV=development yarn run webpack --progress --watch` to enable this feature. Also, all of this functionality depends on the new `config.license.managed_cloud` being true, so you'll need to mock that data somehow. [This branch](https://github.com/fleetdm/fleet/tree/27043-fake-data) has the appropriate fake data for testing_ ## For #27043, #27864 ### Build front end for Fleet's integration with Microsoft Entra, allowing conditional preventtion of single sign-on for hosts failing any policies on a team #### Trigger the integration ![trigger](https://github.com/user-attachments/assets/4578568a-f64a-4390-83d9-fbec751d4b14) #### Triggered, but configuration still not verified <img width="1348" alt="√ not-verified-return-to-prefilled-form" src="https://github.com/user-attachments/assets/44d0c21f-2554-40a8-9158-d1107cff2d09" /> #### Verified, short and long tenant ids: ![ezgif-75f82492180d28](https://github.com/user-attachments/assets/015f3605-81e8-463a-be74-07bab99d9724) #### Verified –> Deleted ![√ verified - delete - deleted](https://github.com/user-attachments/assets/44b8ba70-49c9-43e7-be54-8474756a5b50) #### Enable for policies of a team ![√ enable-for-team](https://github.com/user-attachments/assets/9454b0da-059d-4991-a3ff-14e74257a3a7) #### Activities <img width="886" alt="√ activities" src="https://github.com/user-attachments/assets/d21e6185-c2f2-40b2-9c69-9b92fab58766" /> #### Unavailable for self-hosted Fleet instances: ![no-access-self-hosted](https://github.com/user-attachments/assets/56213522-b721-472f-9174-c8dac0df61f3) #### Premium only ![√ premium-only](https://github.com/user-attachments/assets/97373960-6b38-458b-be37-4c3868469182) - [x] Changes file added for user-visible changes in `changes/` - [x] Added/updated automated tests - [x] A detailed QA plan exists on the associated ticket (if it isn't there, work with the product group's QA engineer to add it) - [ ] Manual QA for all new/changed functionality --------- Co-authored-by: Jacob Shandling <jacob@fleetdm.com>
2025-04-15 20:55:07 +00:00
// enable/disable above feature for a team
EnabledConditionalAccessAutomations = "enabled_conditional_access_automations",
DisabledConditionalAccessAutomations = "disabled_conditional_access_automations",
EscrowedDiskEncryptionKey = "escrowed_disk_encryption_key",
CreatedCustomVariable = "created_custom_variable",
DeletedCustomVariable = "deleted_custom_variable",
EditedSetupExperienceSoftware = "edited_setup_experience_software",
EditedHostIdpData = "edited_host_idp_data",
AddedCertificate = "added_certificate",
Create, list, delete Android certificates from the UI (#37314) **Related issue:** Resolves #36689 <img width="1840" height="1196" alt="Screenshot 2025-12-15 at 5 08 02 PM" src="https://github.com/user-attachments/assets/4f491c80-403f-4188-8cab-552e997c6e9c" /> <img width="1840" height="1196" alt="Screenshot 2025-12-15 at 5 09 18 PM" src="https://github.com/user-attachments/assets/b6e4d9ad-40c1-45c3-8b77-e14d17a2bc7e" /> <img width="1840" height="1196" alt="Screenshot 2025-12-15 at 5 09 22 PM" src="https://github.com/user-attachments/assets/661beee2-3ee2-4269-ab0b-ca070c1a40b8" /> If some of the following don't apply, delete the relevant line. - [x] Changes file added for user-visible changes in `changes/` - [x] Added/updated automated tests - [x] QA'd all new/changed functionality manually <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit ## Release Notes * **New Features** * Added comprehensive Android certificate management in OS Settings with create, list, and delete operations * Integrated certificate management with premium tier gating and MDM enablement checks * Supports team-scoped certificates with pagination controls * Includes validation for certificate names and certificate authority selection * **Refactor** * Generalized heading component to support multiple entity types beyond configuration profiles <sub>✏️ Tip: You can customize this high-level summary in your review settings.</sub> <!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-12-16 23:39:07 +00:00
DeletedCertificate = "deleted_certificate",
}
/** This is a subset of ActivityType that are shown only for the host past activities */
export type IHostPastActivityType =
| ActivityType.RanScript
| ActivityType.LockedHost
| ActivityType.WipedHost
| ActivityType.ReadHostDiskEncryptionKey
| ActivityType.UnlockedHost
2024-07-16 17:16:57 +00:00
| ActivityType.InstalledSoftware
| ActivityType.UninstalledSoftware
| ActivityType.InstalledAppStoreApp
| ActivityType.CanceledRunScript
| ActivityType.CanceledInstallAppStoreApp
| ActivityType.CanceledInstallSoftware
| ActivityType.CanceledUninstallSoftware;
/** This is a subset of ActivityType that are shown only for the host upcoming activities */
export type IHostUpcomingActivityType =
| ActivityType.RanScript
2024-07-16 17:16:57 +00:00
| ActivityType.InstalledSoftware
| ActivityType.UninstalledSoftware
| ActivityType.InstalledAppStoreApp
| ActivityType.LockedHost
| ActivityType.UnlockedHost;
export interface IActivity {
created_at: string;
id: number | string;
actor_full_name: string;
actor_id: number;
actor_gravatar: string;
actor_email?: string;
actor_api_only: boolean;
type: ActivityType;
fleet_initiated: boolean;
details?: IActivityDetails;
}
export type IHostPastActivity = Omit<IActivity, "type" | "details"> & {
type: IHostPastActivityType;
details: IActivityDetails;
};
export type IHostUpcomingActivity = Omit<
IActivity,
"id" | "type" | "details"
> & {
uuid: string;
type: IHostUpcomingActivityType;
details: IActivityDetails;
};
export interface IActivityDetails {
/** Useful for passing this data into an activity details modal */
created_at?: string;
app_store_id?: number;
bootstrap_package_name?: string;
batch_execution_id?: string;
command_uuid?: string;
host_uuid?: string;
deadline_days?: number;
deadline?: string;
Log failed login attempts as activities (#9430) #9119 To test the SSO changes locally you can use: https://github.com/fleetdm/fleet/blob/main/docs/Contributing/Testing-and-local-development.md#testing-sso @RachelElysia Please take a look at the UI changes (All I did was copy/paste and amend the changes for the new activity type.) IMO we shouldn't display an avatar because there's no "actual user" involved in these failed login attempts activities (by "actual user" I mean the user attributed to the activity): <img width="446" alt="Screenshot 2023-01-19 at 10 41 05" src="https://user-images.githubusercontent.com/2073526/213524771-b85901ce-eec0-4cf3-919c-73162285e20b.png"> - [X] Changes file added for user-visible changes in `changes/` or `orbit/changes/`. See [Changes files](https://fleetdm.com/docs/contributing/committing-changes#changes-files) for more information. - [X] Documented any API changes (docs/Using-Fleet/REST-API.md or docs/Contributing/API-for-contributors.md) - ~[ ] Documented any permissions changes~ - ~[ ] Input data is properly validated, `SELECT *` is avoided, SQL injection is prevented (using placeholders for values in statements)~ - ~[ ] Added support on fleet's osquery simulator `cmd/osquery-perf` for new osquery data ingestion features.~ - [X] Added/updated tests - [X] Manual QA for all new/changed functionality - ~For Orbit and Fleet Desktop changes:~ - ~[ ] Manual QA must be performed in the three main OSs, macOS, Windows and Linux.~ - ~[ ] Auto-update manual QA, from released version of component to new version (see [tools/tuf/test](../tools/tuf/test/README.md)).~
2023-01-20 15:43:22 +00:00
email?: string;
enrollment_id?: string | null; // unique identifier for MDM BYOD enrollments; null for other enrollments
global?: boolean;
grace_period_days?: number;
host_display_name?: string;
host_display_names?: string[];
host_expiry_window?: number;
host_id?: number;
host_ids?: number[];
host_count?: number;
canceled_count?: number;
host_platform?: string;
host_serial?: string;
install_uuid?: string;
installed_from_dep?: boolean;
labels_exclude_any?: ILabelSoftwareTitle[];
labels_include_any?: ILabelSoftwareTitle[];
location?: string; // name of location associated with VPP token
mdm_platform?: "microsoft" | "apple" | "android" | "ios" | "ipados";
minimum_version?: string;
name?: string;
pack_id?: number;
pack_name?: string;
platform?: Platform; // OS platform
policy_id?: number;
policy_name?: string;
profile_identifier?: string;
profile_name?: string;
public_ip?: string;
query_id?: number;
query_ids?: number[];
query_name?: string;
query_sql?: string;
role?: UserRole;
script_execution_id?: string;
2023-10-10 22:00:45 +00:00
script_name?: string;
self_service?: boolean;
software_package?: string;
software_title_id?: number;
software_title?: string;
/** Custom name set per team by admin */
software_display_name?: string;
source?: SoftwareSource;
specs?: IQuery[] | IPolicy[];
stats?: ISchedulableQueryStats;
status?: string;
targets_count?: number;
team_id?: number | null;
team_name?: string | null;
teams?: ITeamSummary[];
triggered_by?: string;
user_email?: string;
user_id?: number;
webhook_url?: string;
custom_variable_name?: string;
host_idp_username?: string;
}
Create, list, delete Android certificates from the UI (#37314) **Related issue:** Resolves #36689 <img width="1840" height="1196" alt="Screenshot 2025-12-15 at 5 08 02 PM" src="https://github.com/user-attachments/assets/4f491c80-403f-4188-8cab-552e997c6e9c" /> <img width="1840" height="1196" alt="Screenshot 2025-12-15 at 5 09 18 PM" src="https://github.com/user-attachments/assets/b6e4d9ad-40c1-45c3-8b77-e14d17a2bc7e" /> <img width="1840" height="1196" alt="Screenshot 2025-12-15 at 5 09 22 PM" src="https://github.com/user-attachments/assets/661beee2-3ee2-4269-ab0b-ca070c1a40b8" /> If some of the following don't apply, delete the relevant line. - [x] Changes file added for user-visible changes in `changes/` - [x] Added/updated automated tests - [x] QA'd all new/changed functionality manually <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit ## Release Notes * **New Features** * Added comprehensive Android certificate management in OS Settings with create, list, and delete operations * Integrated certificate management with premium tier gating and MDM enablement checks * Supports team-scoped certificates with pagination controls * Includes validation for certificate names and certificate authority selection * **Refactor** * Generalized heading component to support multiple entity types beyond configuration profiles <sub>✏️ Tip: You can customize this high-level summary in your review settings.</sub> <!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-12-16 23:39:07 +00:00
// maps activity types to their corresponding label to use when filtering activites via the dropdown
export const ACTIVITY_TYPE_TO_FILTER_LABEL: Record<ActivityType, string> = {
added_app_store_app: "Added App Store app", // Includes VPP and Android Playstore apps
added_bootstrap_package: "Added bootstrap package",
added_conditional_access_microsoft: "Added conditional access: Microsoft",
added_custom_scep_proxy: "Added certificate authority (CA): custom SCEP",
added_digicert: "Added certificate authority (CA): DigiCert",
added_ndes_scep_proxy: "Added certificate authority (CA): NDES",
added_script: "Added script",
added_software: "Added software",
applied_spec_pack: "GitOps: edited packs",
applied_spec_policy: "GitOps: edited policies",
applied_spec_saved_query: "GitOps: edited queries",
applied_spec_team: "GitOps: edited teams",
applied_spec_software: "GitOps: edited software",
canceled_install_app_store_app:
"Canceled activity: install App Store (VPP) app",
canceled_install_software: "Canceled activity: install software",
canceled_run_script: "Canceled activity: run script",
canceled_uninstall_software: "Canceled activity: uninstall software",
changed_macos_setup_assistant: "Edited macOS automatic enrollment profile",
changed_user_global_role: "Edited user's role: global",
changed_user_team_role: "Edited user's role: team",
created_declaration_profile: "Added declaration (DDM) profile",
created_macos_profile: "Added configuration profile: Apple",
created_pack: "Created pack",
created_policy: "Created policy",
created_saved_query: "Added query",
created_team: "Added team",
created_user: "Added user",
created_windows_profile: "Added configuration profile: Windows",
deleted_app_store_app: "Deleted App Store app", // Includes VPP and Android Playstore apps
deleted_bootstrap_package: "Deleted bootstrap package",
deleted_conditional_access_microsoft: "Deleted conditional access: Microsoft",
deleted_custom_scep_proxy: "Deleted certificate authority (CA): custom SCEP",
deleted_declaration_profile: "Deleted declaration (DDM) profile",
deleted_digicert: "Deleted certificate authority (CA): DigiCert",
deleted_macos_profile: "Deleted configuration profile: Apple",
deleted_macos_setup_assistant: "Deleted macOS automatic enrollment profile",
deleted_multiple_saved_query: "Bulk deleted queries",
deleted_ndes_scep_proxy: "Deleted certificate authority (CA): NDES",
deleted_pack: "Deleted pack",
deleted_policy: "Deleted policy",
deleted_saved_query: "Deleted query",
deleted_script: "Deleted script",
deleted_software: "Deleted software",
deleted_team: "Deleted team",
deleted_user: "Deleted user",
deleted_user_global_role: "Deleted user's role: global",
deleted_user_team_role: "Deleted user's role: team",
deleted_windows_profile: "Deleted configuration profile: Windows",
disabled_activity_automations: "Disabled activity automations",
disabled_android_mdm: "Turned off Android MDM",
disabled_conditional_access_automations:
"Disabled conditional access automations",
disabled_gitops_mode: "Disabled GitOps mode",
disabled_disk_encryption: "Turned off disk encryption",
disabled_macos_disk_encryption: "Turned off disk encryption",
disabled_macos_setup_end_user_auth:
"Turned off end user authentication (setup experience)",
Add "update new hosts to latest" to OS Updates form for MacOS (#37103) <!-- Add the related story/sub-task/bug number, like Resolves #123, or remove if NA --> **Related issue:** Resolves #36088 # Checklist for submitter If some of the following don't apply, delete the relevant line. - [X] Changes file added for user-visible changes in `changes/`, `orbit/changes/` or `ee/fleetd-chrome/changes`. See [Changes files](https://github.com/fleetdm/fleet/blob/main/docs/Contributing/guides/committing-changes.md#changes-files) for more information. ## Testing - [X] Added/updated automated tests - [X] QA'd all new/changed functionality manually Saving this value currently results in a 400 response from the server since it's not a valid key yet. We can keep this in draft until the backend is merged if we want to e2e test with it. ### Controls -> OS Settings "Target" section #### All platforms - [X] Update success banner message to "Successfully updated." <img width="200" alt="image" src="https://github.com/user-attachments/assets/bc43ec79-41d1-4dd3-947c-8152051fd209" /> #### macOS / iOS / iPadOS - [X] Update tooltip text for "Minimum version" to `Enrolled hosts are updated to exactly this version.` <img width="250" alt="Image" src="https://github.com/user-attachments/assets/7d870224-395e-4bc9-937e-be599da57a97" /> - [X] Make "available from Apple" a link, replacing "Learn more", and link to https://fleetdm.com/learn-more-about/apple-available-os-updates <img width="250" height="363" alt="image" src="https://github.com/user-attachments/assets/8191ec2d-bf0a-4cf6-9b1a-1272c0ff69b0" /> > Note - this URL is current a 404 - [X] Remove text referring to platform from "End user experience" heading, i.e. it should just say "End user experience" for all platforms where it appears, not e.g. "End user experience on macOS" #### macOS Only - [X] Add new "Update new hosts to latest" checkbox <img width="316" height="406" alt="Image" src="https://github.com/user-attachments/assets/71aec05a-b809-436d-8bfd-cd3e14b27ea1" /> - [X] Reflects the `macos_updates.update_new_hosts` setting for the team or (for no team) global config (only testable via automated tests right now) - [X] Update End user experience text to "When a minimum version is enforced, end users see a native macOS notification (DDM) once per day." (see above) ### Global activity feed - [X] When "Update new hosts to latest" is enabled, activity should say `[Actor's name] enabled OS updates for all new macOS hosts on the [team name] team. macOS hosts will upgrade to the lastest version when they enroll.` - [X] When "Update new hosts to latest" is disabled, activity should say `[Actor's name] disabled updates for all new macOS hosts on the [team name] team.` (tested via automated tests)
2025-12-12 17:46:07 +00:00
disabled_macos_update_new_hosts: "Disabled OS updates for new macOS hosts",
disabled_vpp: "Disabled Volume Purchasing Program (VPP)",
disabled_windows_mdm: "Turned off Windows MDM",
disabled_windows_mdm_migration: "Turned off Windows MDM migration",
edited_activity_automations: "Edited activity automations",
edited_agent_options: "Edited agent options",
edited_app_store_app: "Edited App Store app", // Includes VPP and Android Playstore apps
edited_conditional_access_microsoft: "Edited conditional access: Microsoft",
edited_custom_scep_proxy: "Edited certificate authority (CA): custom SCEP",
edited_declaration_profile: "GitOps: edited declaration (DDM) profiles",
edited_digicert: "Edited certificate authority (CA): DigiCert",
edited_ios_min_version: "OS updates: edited iOS",
edited_ipados_min_version: "OS updates: edited iPadOS",
edited_macos_min_version: "OS updates: edited macOS",
edited_macos_profile: "GitOps: edited configuration profiles: Apple",
edited_ndes_scep_proxy: "Edited certificate authority (CA): NDES",
edited_pack: "Edited pack",
edited_policy: "Edited policy",
edited_saved_query: "Edited query",
edited_script: "Edited script",
edited_software: "Edited software",
edited_windows_profile: "GitOps: edited configuration profiles: Windows",
edited_windows_updates: "OS updates: edited Windows",
enabled_activity_automations: "Enabled activity automations",
enabled_android_mdm: "Turned on Android MDM",
enabled_conditional_access_automations:
"Enabled conditional access automations",
enabled_gitops_mode: "Enabled GitOps mode",
enabled_disk_encryption: "Turned on disk encryption",
enabled_macos_disk_encryption: "Turned on disk encryption",
enabled_macos_setup_end_user_auth:
"Turned on end user authentication (setup experience)",
Add "update new hosts to latest" to OS Updates form for MacOS (#37103) <!-- Add the related story/sub-task/bug number, like Resolves #123, or remove if NA --> **Related issue:** Resolves #36088 # Checklist for submitter If some of the following don't apply, delete the relevant line. - [X] Changes file added for user-visible changes in `changes/`, `orbit/changes/` or `ee/fleetd-chrome/changes`. See [Changes files](https://github.com/fleetdm/fleet/blob/main/docs/Contributing/guides/committing-changes.md#changes-files) for more information. ## Testing - [X] Added/updated automated tests - [X] QA'd all new/changed functionality manually Saving this value currently results in a 400 response from the server since it's not a valid key yet. We can keep this in draft until the backend is merged if we want to e2e test with it. ### Controls -> OS Settings "Target" section #### All platforms - [X] Update success banner message to "Successfully updated." <img width="200" alt="image" src="https://github.com/user-attachments/assets/bc43ec79-41d1-4dd3-947c-8152051fd209" /> #### macOS / iOS / iPadOS - [X] Update tooltip text for "Minimum version" to `Enrolled hosts are updated to exactly this version.` <img width="250" alt="Image" src="https://github.com/user-attachments/assets/7d870224-395e-4bc9-937e-be599da57a97" /> - [X] Make "available from Apple" a link, replacing "Learn more", and link to https://fleetdm.com/learn-more-about/apple-available-os-updates <img width="250" height="363" alt="image" src="https://github.com/user-attachments/assets/8191ec2d-bf0a-4cf6-9b1a-1272c0ff69b0" /> > Note - this URL is current a 404 - [X] Remove text referring to platform from "End user experience" heading, i.e. it should just say "End user experience" for all platforms where it appears, not e.g. "End user experience on macOS" #### macOS Only - [X] Add new "Update new hosts to latest" checkbox <img width="316" height="406" alt="Image" src="https://github.com/user-attachments/assets/71aec05a-b809-436d-8bfd-cd3e14b27ea1" /> - [X] Reflects the `macos_updates.update_new_hosts` setting for the team or (for no team) global config (only testable via automated tests right now) - [X] Update End user experience text to "When a minimum version is enforced, end users see a native macOS notification (DDM) once per day." (see above) ### Global activity feed - [X] When "Update new hosts to latest" is enabled, activity should say `[Actor's name] enabled OS updates for all new macOS hosts on the [team name] team. macOS hosts will upgrade to the lastest version when they enroll.` - [X] When "Update new hosts to latest" is disabled, activity should say `[Actor's name] disabled updates for all new macOS hosts on the [team name] team.` (tested via automated tests)
2025-12-12 17:46:07 +00:00
enabled_macos_update_new_hosts: "Enabled OS updates for new macOS hosts",
enabled_vpp: "Enabled Volume Purchasing Program (VPP)",
enabled_windows_mdm: "Turned on Windows MDM",
enabled_windows_mdm_migration: "Turned on Windows MDM migration",
fleet_enrolled: "Host enrolled",
installed_app_store_app: "Installed App Store (VPP) app",
installed_software: "Install software",
live_query: "Ran live query",
locked_host: "Locked host",
mdm_enrolled: "MDM turned on",
mdm_unenrolled: "MDM turned off",
ran_script: "Ran script",
ran_script_batch: "Bulk ran script",
scheduled_script_batch: "Scheduled script batch",
canceled_script_batch: "Canceled script batch",
read_host_disk_encryption_key: "Viewed disk encryption key",
resent_configuration_profile: "Resent configuration profile",
resent_configuration_profile_batch: "Bulk resent configuration profile",
transferred_hosts: "Transferred hosts",
uninstalled_software: "Uninstall software",
unlocked_host: "Unlocked host",
updated_script: "Updated script",
user_added_by_sso: "Added user via JIT",
user_failed_login: "User login: failed",
user_logged_in: "User login: success",
wiped_host: "Wiped host",
added_conditional_access_integration_microsoft:
"Added conditional access integration: Microsoft",
deleted_conditional_access_integration_microsoft:
"Deleted conditional access integration: Microsoft",
escrowed_disk_encryption_key: "Escrowed disk encryption key",
created_custom_variable: "Created custom variable",
deleted_custom_variable: "Deleted custom variable",
[ActivityType.HostDeleted]: "Host deleted",
[ActivityType.AddedHydrant]: "Added certificate authority (CA): Hydrant",
[ActivityType.DeletedHydrant]: "Deleted certificate authority (CA): Hydrant",
[ActivityType.EditedHydrant]: "Edited certificate authority (CA): Hydrant",
[ActivityType.AddedSmallstep]: "Added certificate authority (CA): Smallstep",
[ActivityType.DeletedSmallstep]:
"Deleted certificate authority (CA): Smallstep",
[ActivityType.EditedSmallstep]:
"Edited certificate authority (CA): Smallstep",
[ActivityType.AddedCustomESTProxy]:
"Added certificate authority (CA): custom EST",
[ActivityType.DeletedCustomESTProxy]:
"Deleted certificate authority (CA): custom EST",
[ActivityType.EditedCustomESTProxy]:
"Edited certificate authority (CA): custom EST",
[ActivityType.CreatedAndroidProfile]: "Added configuration profile: Android",
[ActivityType.DeletedAndroidProfile]:
"Deleted configuration profile: Android",
[ActivityType.EditedAndroidProfile]:
"GitOps: edited configuration profiles: Android",
[ActivityType.EditedAndroidCertificate]:
"GitOps: edited certificate templates: Android",
[ActivityType.AddedConditionalAccessOkta]: "Added conditional access: Okta",
[ActivityType.DeletedConditionalAccessOkta]:
"Deleted conditional access: Okta",
[ActivityType.EditedSetupExperienceSoftware]:
"Edited setup experience software",
[ActivityType.EditedHostIdpData]: "Edited host identity provider (IdP) data",
[ActivityType.AddedCertificate]: "Added certificate",
Create, list, delete Android certificates from the UI (#37314) **Related issue:** Resolves #36689 <img width="1840" height="1196" alt="Screenshot 2025-12-15 at 5 08 02 PM" src="https://github.com/user-attachments/assets/4f491c80-403f-4188-8cab-552e997c6e9c" /> <img width="1840" height="1196" alt="Screenshot 2025-12-15 at 5 09 18 PM" src="https://github.com/user-attachments/assets/b6e4d9ad-40c1-45c3-8b77-e14d17a2bc7e" /> <img width="1840" height="1196" alt="Screenshot 2025-12-15 at 5 09 22 PM" src="https://github.com/user-attachments/assets/661beee2-3ee2-4269-ab0b-ca070c1a40b8" /> If some of the following don't apply, delete the relevant line. - [x] Changes file added for user-visible changes in `changes/` - [x] Added/updated automated tests - [x] QA'd all new/changed functionality manually <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit ## Release Notes * **New Features** * Added comprehensive Android certificate management in OS Settings with create, list, and delete operations * Integrated certificate management with premium tier gating and MDM enablement checks * Supports team-scoped certificates with pagination controls * Includes validation for certificate names and certificate authority selection * **Refactor** * Generalized heading component to support multiple entity types beyond configuration profiles <sub>✏️ Tip: You can customize this high-level summary in your review settings.</sub> <!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-12-16 23:39:07 +00:00
[ActivityType.DeletedCertificate]: "Deleted certificate",
};