Single modules are now allowed to be defined in an Erlang-cell.
In this case the entire code-block is interpreted as an
erlang-module and if there are no errors the module is compiled
and loaded.
If the cell containing the module is deleted subsequent code
invocations will fail.
Stale indicator is not working yet due to missing notion of
functions, this will be fixed in a next version.
Error handling - basics are working
- Still not happy with it, but it is usable
The code is now pre-analyzed using the epp-module. This also
has the added advantage that erlang modules can become a bit
more expressive with defines and includes.
TODO: Examples need to be added to the example livebook.
* Rename SessionIdentity to PassThrough and make it part of ZTA
* Compute the ID at the Plug level, rather than ZTA level and
avoid storing it twice
* Stop the user "avatar" from flashing on initial render
* Do not duplicate identity data inside user data, rather keep
them distinct
* Get user identity
* Moves current_user_id to identity_data
* Renames cookies to session_identity
* Keep zta keys in the state
* User id from GoogleIap
* Update cloudflare.ex
* Update googleiap.ex
* Email only for ZTA
* Get the current_user_id from the identity_data
* Applying suggestions
* Applying suggestions
* Fix verify_token
---------
Co-authored-by: José Valim <jose.valim@gmail.com>
* Serve iframes from another local port when running on http
* Use relative hostname in local iframe URL
* Simplify server start check
* Use random iframe port when Livebook runs on a random port
* Rename space/ to iframe/
* LivebookWeb.IframePlug -> LivebookWeb.IframeEndpoint
* Add initial user config modal
* Assign user ids
* Update session data to hold user ids
* Get users list for specific ids
* Render user avatar
* User update
* Refactor user changes
* Subscribe to individual user updates
* Show users in side panel
* Add sidebar to homepage
* Don't generate the same color twice in a row
* Add documentation notes
* Fix tests
* Add tests
* Keep users in session data
* Rename color to hex_color
* Add token authentication
* Restructure CLI
* Allow port configuration
* Further refactoring
* Make sure livebook node starts with unique name
* Improve startup error handling
* Further refactoring
* Add authentication tests
* Add authentication view for entering the token
* Fix auth tests
* Always use random Livebook name for distribution
* Don't enable ANSI on Windows
* Define CLI Task behaviour and move generic logic to the main module
* Generalize convertion from cli arguments to configuration
* Randomly generate secret key base
* Update test/livebook_web/plugs/auth_plug_test.exs
Co-authored-by: José Valim <jose.valim@dashbit.co>
* Override app config in persistent manner
* Update lib/litebook_cli.ex
Co-authored-by: José Valim <jose.valim@dashbit.co>
* Move auth error to ErrorView
* Unify node name configuration and allow it via CLI
* Set all applications configs at once
* Move token generation to application.ex to work outside CLI
* Clean up overriding configuration
* Store auth token in separate cookies
* Update lib/livebook_cli/server.ex
Co-authored-by: José Valim <jose.valim@dashbit.co>
* Update lib/livebook_web/endpoint.ex
Co-authored-by: José Valim <jose.valim@dashbit.co>
* Update lib/livebook_web/plugs/auth_plug.ex
Co-authored-by: José Valim <jose.valim@dashbit.co>
Co-authored-by: José Valim <jose.valim@dashbit.co>
* Update cell actions
* Add new focus indicator
* Update headings typography
* Update cell actions and insert buttons
* Add sidebar menu
* Add settings modal
* Update homepage
* Update settings dialog
* Rename classes
* Add floating menu
* Update icon colors on hover
* Fix homepage tests
* Format assets source
* Update monaco editor
* Fix editor width on resize
* Add more padding to the notebook content
* Update settings dialog title
* Show reevaluate button when the cell is in evaluated state
* Show section actions on focus or hover only
* Pre-fill runtime selector with the current configuration
* Ignore cmd + enter in Markdown cells
* Set up Escript packaging
* Use MD5 digest sa ETAG
* Make sure changes to the static files recompile the relevant module
* Manually start the application in Escript
* Set up basic CLI
* Run formatter
* Start Elixir app before anything else
* Improve version output
* Build Escript to project root directory
* Improve assets handling
* Move plug related modules under plugs directory
* Include bundled assets in the repository
* Use the same plug with different static providers in prod and dev
* Refactor providers
* Rename StaticProvidedPlug to StaticPlug