fortify / fcli

fcli is a command-line utility for interacting with various Fortify products
https://fortify.github.io/fcli/
Other
33 stars 22 forks source link

FoD: Decide on command structure for managing scans #435

Closed rsenden closed 1 year ago

rsenden commented 1 year ago

As discussed internally, below are some potential candidates, based on current fcli fod <entity> <action> convention.

1. Generic entities, scan type in <action>

Advantages:

Disadvantages:

2. Merge all scan-type specific commands into single -scan entity

Advantages:

Disadvantages:

3. Have multiple entities for each scan type

Advantages:

Disadvantages:

4. Introduce fcli <module> [group] <entity> <action> concept

Advantages:

Disadvantages:

bananegit commented 1 year ago

Conventions aside I would prefer option 4. From the other ones I would prefer option 2, since everything is in one place. A generic list-scans command could be provided in the release module (e.g. fcli fod release list-scans).

MikeTheSnowman commented 1 year ago

My vote is with option 2. Here are my (possibly very flawed) justifications as rebuttles to the disadvantages mentioned:

Finally (this is just my (very) humble opinion/hot-take), I think the 3-level command convention that we have (<product> <entity> <action>) is the most prominent design characteristic that every fcli-user will have memorized and at the forefront of their minds when using fcli. If we decide the create a 4th level (which I think is far too many), then we'll want to refactor the other on-prem products (ssc, sc-sast, sc-dast) to follow the same convention so that we maintain consistency. But again, I'd like to avoid that if possible as I think that will, to a great extent, hinder the user experience.