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

Modernize setup and dependencies #4

Open
dspruell-i01 opened this issue Nov 21, 2023 · 0 comments
Open

Modernize setup and dependencies #4

dspruell-i01 opened this issue Nov 21, 2023 · 0 comments
Labels
enhancement New feature or request threat-intel

Comments

@dspruell-i01
Copy link

The current installation/setup should be modernized to streamline it for new users with a typical use case for CLI interaction.

Current UX:

  1. Installation using pip or pipx results in a non-operational client (missing dependencies).
  2. Installation for CLI usage requires use of pipenv, which is unorthodox (it's really used for replicating consistent development environments).
  3. Installation requires access to the Git repo to access a template configuration file to be edited by the user to complete setup.
  4. Configuration file uses a generic name (config.yml) and setup instructions seem to assume that the CLI tool will be run from the Git checkout with the config file local to the checkout.

Recommended/improved UX:

  1. Installation with pip or pipx should be one-shot, with dependencies specified in the pyproject.toml (modern) or setup.py (dated but supported). pipx is used when only the CLI will be used and no library usage is expected; pip is used when a user is expected to use the module as a library. Both should result in the installation of all dependencies.
  2. Eliminate pipenv from the UX.
  3. Add a supported CLI command to prompt the user for host and API key and output a functional configuration file. Common commands include init, setup, or config, etc.
  4. The output config file should be stored as a dotfile in $HOME (old) or in ~/.config (new).
    • The old dotfile method would be a named file such as $HOME/.iq-cli.yml; this is considered legacy and has been replaced by a new config file spec in Freedesktop standards.
    • The modern Freedesktop spec would use a file at $XDG_CONFIG_HOME (https://specifications.freedesktop.org/basedir-spec/latest/ar01s03.html) using a path such as $HOME/.config/iq-cli/config.yml.
@dspruell-i01 dspruell-i01 added enhancement New feature or request threat-intel labels Nov 21, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request threat-intel
Projects
None yet
Development

No branches or pull requests

1 participant