Skip to content
This repository has been archived by the owner on Oct 30, 2022. It is now read-only.

Should meeshkan record have --specs-dir and --mode options? #123

Open
fornwall opened this issue Mar 11, 2020 · 6 comments
Open

Should meeshkan record have --specs-dir and --mode options? #123

fornwall opened this issue Mar 11, 2020 · 6 comments

Comments

@fornwall
Copy link
Contributor

meeshkan record --help
Usage: meeshkan record [OPTIONS] COMMAND [ARGS]...

  Record HTTP traffic from a reverse proxy.

Options:
  -p, --port TEXT                Server port.
  -a, --admin-port TEXT          Admin server port.
  -s, --specs-dir TEXT           Directory with OpenAPI specifications.
  -d, --daemon                   Run meeshkan as a daemon.
  -r, --header-routing           Use headers to specify target hosts.
  -l, --log-dir TEXT             API calls logs direcotry
  -m, --mode [GEN|REPLAY|MIXED]  Spec building mode.
  --help                         Show this message and exit.
@aby2s
Copy link
Contributor

aby2s commented Mar 11, 2020

If you provide a mode it will create both logs and specs. So you can avoid running meeshkan build explicitly.

@fornwall
Copy link
Contributor Author

@aby2s Thanks!

@carolstran
Copy link
Contributor

Bringing this issue back to LIFE and changing the heading because I think it's a discussion worth having.

I'd vote to remove any build logic from the record functionality. While I understand the sentiment behind wanting to condense the steps, I think it makes everything a bit more confusing and more difficult to document. Personally, I'm a fan of like one command = one primary functionality.

Curious to hear others thoughts on this, particularly @aby2s because I know you implemented it in the first place. Also tagging @ksaaskil and @mikesol for more voices! 📣

@carolstran carolstran reopened this Mar 12, 2020
@carolstran carolstran changed the title Why does meeshkan record have --specs-dir and --mode options? Should meeshkan record have --specs-dir and --mode options? Mar 12, 2020
@aby2s
Copy link
Contributor

aby2s commented Mar 12, 2020

I don't really like running cli commands though (or because) I work on Ubuntu. And if I were a user (and I could be), an unnecessary additional step would disappoint me a lot.
It's hard to determine actual use cases at this moment to prove the usefulness of this optimization for a majority of users. And I don't know if other people are at least as half as lazy as I am to enjoy this feature, but I would appreciate it if we leave it just for personal usage.
I don't think we have to make strong accents on it in the docs. I think it is better to stick to a default pipeline everywhere. It could worth mentioning in a full reference if we have one. Something like that "This flags allows you to build OpenAPI spec in place during recordings. For details, see somewhere." Or it could be an undocumented feature at all.

@carolstran
Copy link
Contributor

Fair point considering you might be our current power user @aby2s 😆

Also @fornwall and I spoke with @mikesol this morning about what the "selling point" of Meeshkan is. It seems like we want to focus on the mocking aspect, with recording and building being supplements. In that case, being able to skip steps could make sense - plus then we could add (smarter) logging to track how people are building their specs/whether the calls they are making are adding anything new to the schema (or not).

Considering all of the above, I'd maybe propose keeping it - but not focusing on it in the documentation yet. If we really lean into the mocking aspect, then we'll have to restructure the docs anyway - so then that would be a good opportunity to figure out how we want to introduce it.

@ksaaskil
Copy link
Contributor

I can see how it's easier for users if they can avoid running the separate build step, with record taking care of schema building. For me, it just feels a bit awkward to write something like meeshkan record --mode replay 🤔 Here the "mode" is not related to recording (which the command's name says it does) but to the schema building so that's what's confusing me a bit... I'd maybe rather expect to have something like meeshkan mock --mode replay to be able to change the mode as needed... In general, I'm with Carolyn in that I like CLIs that do one easy-to-understand step at a time. In my opinion, if the tool provides value, users don't care if it takes one or two commands. But I could be wrong here, and of course we can keep it for now as it's useful for us!

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants