Why a CLI and not a library?

alexthekone
alexthekone
Community Member

I've just started tinkering with the CLI. First-up, huge kudos. I'm a daily Linux user, and I've been waiting for something like this for a quite a while. I'm exceedingly happy to see work being done on a CLI, even happier to see it work in my prompt! :D

On the other hand I'm observing the following things :

  • Flows to retrieve data are quite complex, both in the way they're being implemented, and the way are conceptually (security is not simple, data models are not simple, cool)
  • So far, the CLI will require a lot of work to reach my expectations as far as UX goes
  • I'm expecting other people to have different expectations than mine
  • This is not open source.

I understand the need to protect your IP and make sure the security remains hermetic.

This my question : Why develop a full fledged binary CLI, and not a binary library with API documentation for the community to develop with? Why not benefit from free workforce? :pirate:

I'm again going to apologize for the question, I'm certain I'm missing a lot of context, but I'd rather ask this early on, so I don't ask the wrong questions onward. I want to reiterate that as a user, in both civilian and enterprise contexts, I am extremely happy to see this work getting done.

P.S. My colleague says this is post is a proper poopsandwich, my apologies once again!!!


1Password Version: 0.0.3
Extension Version: Not Provided
OS Version: Fedora 25 - 4.9.9-200.fc25.x86_64 x86_64 x86_64
Sync Type: Not Provided

Comments

  • svondutch
    svondutch
    1Password Alumni

    @alexthekone We are planning on releasing an open source API for the Go programming language but we haven't worked out all the details yet.

  • alexthekone
    alexthekone
    Community Member
    edited August 2017

    Yay! Let us know if you want help with that. Most of the Lightspeed employees that you've invited to this closed beta are fluent Golang programmers. This is exactly what we had in mind. :smile:

  • beyer
    beyer
    1Password Alumni

    @svondutch – I'll certainly pass that along! I know I'm extremely excited to see all the tools the amazing 1Password community comes up with once this CLI is released publically.

    Have a great week!

    --
    Andrew Beyer (Ann Arbor, MI)
    Lifeline @ AgileBits

  • cohix
    cohix
    1Password Alumni

    @alexthekone Thanks for the feedback, and for the kudos :)

    This is exactly the sort of thing we want to hear from our early users. As for retrieving data, we're working on some ideas to make that easier and less reliant on jq, but we haven't figured out the perfect solution yet. If you have any suggestions, please let me know! I'd also like to hear your suggestions about improving the UX so we can discuss it internally and see what we can do to make it better.

    Open source is something we'd love to do, and while it's currently a pipe dream, it's something we absolutely want to work towards. As Stefan mentioned, a Go library is probably an intermediate step towards that dream, and it will most likely come first. There's no concrete plans for either, but hearing that people want it is important.

    Thanks again!

  • virtualmarc
    virtualmarc
    Community Member

    An API would be really nice.
    I'd like to see some "login with 1password" buttons in desktop apps (would add some in my programs).
    Or full (third party) GUI Clients for Linux.

  • @virtualmarc : absolutely, "login with 1Password" buttons in desktop apps would be awesome. Ideally we could do something like that without an api/library (on platforms where we have a desktop app already) that talks directly to our server since we already have that data locally.

    Rick

  • danzek
    danzek
    Community Member

    +1 for an API. Golang, Python, and/or C/C++ are fine by me. Or even Rust.... :p

  • AGAlumB
    AGAlumB
    1Password Alumni

    :lol: :+1:

  • MorgothSauron
    MorgothSauron
    Community Member

    +1 for an API (Python) :)

  • cpmcgrath
    cpmcgrath
    Community Member

    I'd like to see some "login with 1password" buttons in desktop apps (would add some in my programs).

    I'd be really afraid of abuse if the current cli was turned into an API and used like that. An app needs to get a single password from your vault, you don't want to give them complete access to your vault to do this.

    It's a pattern a noticed when I first moved to Android that I hated, "We've just sent you an SMS with a code, instead of manually typing it in, why not give us full access to all your messages so that we can read that code for you?"

  • AGAlumB
    AGAlumB
    1Password Alumni
    edited May 2018

    I'd be really afraid of abuse if the current cli was turned into an API and used like that. An app needs to get a single password from your vault, you don't want to give them complete access to your vault to do this.

    @cpmcgrath: There isn't a lot that I can say about future versions or unreleased features, but I can tell you unequivocally that if we do make it possible for 3rd party apps to add a "Fill with 1Password" button, they will not get access to all of the data, only the login credentials you share with them explicitly. Definitely take a look at what we've done on iOS for an example of that:

    1Password extension for developers

    It's a pattern a noticed when I first moved to Android that I hated, "We've just sent you an SMS with a code, instead of manually typing it in, why not give us full access to all your messages so that we can read that code for you?"

    Yeah, I'm not a fan of that either. We not only want to safeguard users' security and privacy, we also don't want 1Password annoying people!

This discussion has been closed.