-
Notifications
You must be signed in to change notification settings - Fork 807
Labels
Complexity: MediumFeatureIssue that describes a new feature to be implemented.Issue that describes a new feature to be implemented.Impact: HighUIUser InterfaceUser Interfacesp/13
Milestone
Description
Description
As a user, I want to understand what Agent plugins are installed and what plugins are available, so that I can install/uninstall Agent plugins at will and customize my adversary emulation experience.
Desired features
- View plugins that are available from the plugin repository
- View plugins that are already installed
- Install missing plugins from the repository
Select the specific version of the missing plugin to be installed- Uninstall installed plugins
- Upload a plugin file
- Highlight an installed plugin if a newer version is available from the repository
- Force the UI to query the repository and refresh itself with the latest data
Mockup
Tasks
- Create new plugins page with tabs (0d) @cakekoa
- Create plugins context (0d) @cakekoa
- Available plugins page @cakekoa
- Installed plugins page (0.25d)
- Available updates indicator (0d) @cakekoa
- API requests (0d)
- Install/upgrade plugin
- Uninstall plugin
- Grid
- Action buttons (upgrade/uninstall) logic (0d)
- Filtering logic (0d)
- Search bar component (0d) @ordabach
- Plugin type dropdown filter component (0d) - @VakarisZ
- up-to-date vs. upgradable toggle (0d) @ordabach
- Tooltip component (0d) @ordabach
- Install all safe button (0d) @cakekoa
- Change the 'no rows' message in the grid to 'connection unavailable' when a request to the server is failed (0d) @ordabach
- Read in the MUI docs how to pass props into a custom slot of the data grid (link)
- Improvements (0.25d)
- Add a column for safe/unsafe to plugin grid @ilija-lazoroski 3418 add safe column #3643
- Populate "Author" field - @VakarisZ
- Only search on displayed properties @cakekoa 3418 search displayed fields #3646
- Feedback for user actions (successful instalation/removal of a plugin), example below @cakekoa 3418 action feedback #3644
-
??? Better description of a plugin. User will likely want to read more about the plugin before downloading it. The small text with unclickable links in the tooltip is not great for this ( Try to use Collapsible component as in https://mui.com/material-ui/react-table/#collapsible-table). [Table is completely different component. To implement such thing in the data grid we need to override the "row" slot https://mui.com/x/api/data-grid/data-grid/#DataGrid-slots-null] - Remove the "Search" title from searchbar. The icon already indicates that this is a search input - @shreyamalviya Remove search bar label #3648
- Make plugin table full-height @cakekoa UI: Modify layout so that grid fills the viewport height #3645
- Add "Type" title and default value of "All" to the type filter. Right now it's doing a placeholder approach, which is worse
- Fix type column to display human readable values instead of using the underscore (now displays "Credential_Collector") - @shreyamalviya Fix plugin type value in grid #3649
- Fix styling of the refresh button, make it spin to indicate to the user that something is actually happening once you click on it @ilija-lazoroski UI: Spin refresh button when refreshing available plugins #3650
- Add a loading icon for update/delete button @ilija-lazoroski
- Refactor to use
IslandHTTPClient
- @shreyamalviya Use IslandHttpClient for plugin-related API requests #3658
Resources
Example of feedback for successful actions
Metadata
Metadata
Assignees
Labels
Complexity: MediumFeatureIssue that describes a new feature to be implemented.Issue that describes a new feature to be implemented.Impact: HighUIUser InterfaceUser Interfacesp/13
Type
Projects
Status
Done