Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Offer a CLI for interacting with the REST API and other related tasks #982

Open
nscuro opened this issue Dec 20, 2023 · 2 comments
Open
Labels
meta p2 Non-critical bugs, and features that help organizations to identify and reduce risk size/XL Higher effort spike/research Requires more research before implementation

Comments

@nscuro
Copy link
Member

nscuro commented Dec 20, 2023

Functionality should include:

  • Interacting with REST API
    • List, view, create, update, delete
    • Upload BOMs
  • Quality gate functionality for CI
    1. Upload BOM
    2. Wait for Processing to complete
    3. Fetch findings and policy violations
    4. Evaluate against quality gate definition
  • Validating of vulnerability policies (Support global vulnerability analysis policies #930)
    • JSON schema validation
    • Validation of CEL expressions
  • Testing vulnerability policies against provided inputs

Some high-level thoughts on implementation:

  • While other technologies like Go are way better suited for CLI use cases, using a different technology means we cannot share any code with the main codebase
@nscuro nscuro added p2 Non-critical bugs, and features that help organizations to identify and reduce risk meta size/XL Higher effort spike/research Requires more research before implementation labels Dec 20, 2023
@VinodAnandan
Copy link
Collaborator

While other technologies like Go are way better suited for CLI use cases, using a different technology means we cannot share any code with the main codebase

Could you please share more details on this ?

@nscuro
Copy link
Member Author

nscuro commented Dec 20, 2023

@VinodAnandan If we use the same technology for both API server and CLI, we have opportunities to share code among them. API models, validation, potentially CEL evaluation and more. If we use Java in the API server and Go in the CLI, we always have to keep the Go code in sync.

I'm not saying this is the definitive way forward, but it should be a well-thought out decision no matter which tech we end up using.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
meta p2 Non-critical bugs, and features that help organizations to identify and reduce risk size/XL Higher effort spike/research Requires more research before implementation
Projects
None yet
Development

No branches or pull requests

2 participants