I have an Elixir library that I’d like to create interactive documentation for. I saw livebook and thought it would be a perfect fit. I am curious if its possible to write said documentation and then be able to create a sharable version of it that can be accessed by anyone.
I launched livebook via fly.io and did a little test page and then shared it. I opened it up on my phone and it asked me to authenticate.
Is my thinking off base to think that a livebook could be something like https://readme.com/ but with inline elixir code evaluation?
Afaik not. Not in a way that would make your Livebook secure. As code input is executed at the server, there is no way to prevent malicious code from running on it.
There are a few threads at this forum about sandboxing Elixir; there you’ll find explanations why it can’t be done (typing at mobile so hard to link)
Livebook seems to have its uses for sharing code snippets and working collaboratively on something, but be careful about opening it up to anyone as it exposes lots of security risks.
A Livebook notebook session is opening access to whatever server/computer the Livebook application is running on. When running in prod mode (highly recommended) anyone with a valid token authentication can use Elixir functions to inspect the filesystems, environment variables, run other programs, and create remote connections to other servers source
The idea currently would be, that you create a liveview page and that people having access to a (their own) livebook server execute and play with it in there.
Decentralized: Livebook is open-source and you can run it anywhere. The “Run in Livebook” badges makes it easy to import any Livebook into your preferred Livebook instance.
@jonericcook Definitely a fair question - something I am also wondering as I take my first look at livebook. It is pretty cool, and I was hoping to use it to publicly document one of my personal projects. I thought it might be possible to “publish” a livebook so that there was no editing access available to the code cells and they could just be executed…
EDIT
Just thought about this more on my way morning trip to the supermarket and realised that I missed the point of livebook in this situation (thinking more about the decentralised comment above). Of course you can document your own project, the documentation can live with the repo rather than being published to a central location.
Having a published public view of course introduces access roles and other authentication.