This is unavoidable in most (all?) applications without a user, the issue - as you imply - is how you secure those credentials. I agree that choosing a widely used system and replicating that aspect is a good way to learn and to deliver something that is at least capable of being reasonably secure.
This is a very exciting development and I can’t wait to pay with it. Great news @hunterlester and @jlpell, good luck.
I trust you will be writing it in Rust?
Yes, that’s what I started Safely with. Since joining the forum here I’ve had a chance to get my feet wet with Rust and find it to be superb. Feels like a hybrid python/c/c++ way of coding, and is fun, and safe. My schedule has recently ramped up going in to the summer, so available hours for actual “boots on the ground” coding prior to devcon are extremely limited right now. This is probably for the best, since I think devcon will probably fill in a lot of holes in my understanding, and the ambitions of the CLI project are getting broader after speaking with @hunterlester so the design is in flux. Hopefully after devcon my efforts much more efficient when sitting down again to work on it for an extended period of time.
Hunter and I have had some good brainstorms and it seems like an opportunity exists for a “Safe Suite” of independent cli tools (bins & libs) that all work together. It would work rather nicely if we pulled in @mav’s suggestion for a cli tool to allow users to manage SafeOS/SafeToo vault and computation VMs/instances too. (“Nicely” now there’s another nice name for one of the libs/executables in the tool suite )
Poking around in a few areas brings me to looking at how to create system level utilities which interface with SAFE, such as a FUSE driver in Rust and so on, so I’m looking for examples of how to build SAFE stuff in Rust. I probably won’t have time to do much, but if at some point there is existing code maybe I can fork it into something. I haven’t even written any Rust yet, but would love to see some progress in this area.
@hunter @jlpell @mav if there’s been any progress on this or related examples (headless, cli etc) please update us.
https://github.com/maidsafe/safe_client_libs/tree/master/safe_core/examples is the resource I refer to most for doing anything SAFE in rust.
No progress from me otherwise on the headless stuff.
I decided to use TCP as my IPC strategy because there are better crates available, it’s better documented, and will ensure cross-platform support without any effort, which is a high priority for me. This is in comparison to researching Chromium’s choice of using Unix Domain Sockets and Named Mutex for Windows.
So, I’m in the middle of learning how to use Tokio.
This is my latest commit.
The next step is to learn how to fork a child process and detach it from the terminal in which it was executed. I see the daemonize crate but I want to learn how to create daemons on Windows.
I’m also following development progress on making our public API available in Rust just as much as FFI: see commit