* Add support for mix run flags to the Mix runtime
* Support mix run flags in runtime config string
* Add flag validation
* Update lib/livebook_web/live/session_live/mix_standalone_live.ex
Co-authored-by: José Valim <jose.valim@dashbit.co>
Co-authored-by: José Valim <jose.valim@dashbit.co>
* 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 function to open notebook urls
* Update lib/livebook/utils.ex
Co-authored-by: José Valim <jose.valim@gmail.com>
* Update lib/livebook/utils.ex
Co-authored-by: José Valim <jose.valim@gmail.com>
* open notebook with notebook_open_url/2
* Update server.ex
* format Livebook.Utils
* Update lib/livebook_cli/server.ex
Co-authored-by: José Valim <jose.valim@gmail.com>
* correct function doc
Co-authored-by: José Valim <jose.valim@gmail.com>
* Improve file select layout on long paths
* Automatically back up notebooks without a file
* Run formatter
* Add margin when there are no sections
* Add an informative note about autosave directory
* Store autosave path instead of file in the config
* Rename autosave dir to autosave path
* Fix insert mode escape on section headlines
* Show ellipsis on selected file too
* Always create the default directory
* Apply review comments
Before Elixir master, empty path is represented as `nil`:
~% asdf shell elixir 1.12.3-otp-24 ; elixir -e 'IO.inspect URI.parse("http://localhost")'
%URI{
authority: "localhost",
fragment: nil,
host: "localhost",
path: nil,
port: 80,
query: nil,
scheme: "http",
userinfo: nil
}
On Elixir master, it is an empty string:
~% asdf shell elixir git ; elixir -e 'IO.inspect URI.parse("http://localhost")'
%URI{
authority: "localhost",
fragment: nil,
host: "localhost",
path: "",
port: 80,
query: nil,
scheme: "http",
userinfo: nil
}
The new default, the empty string, caused a bug on this line:
Map.update!(:path, &((&1 || "/") <> path))
because we never prepended the leading `/` and thus we ended up with
path `"health"`, not `"/health"`, which now on Elixir master crashes:
iex> URI.parse("http://localhost") |> Map.replace!(:path, "health") |> to_string()
** (ArgumentError) :path in URI must be empty or an absolute path if URL has a :host, got: %URI{authority: "localhost", fragment: nil, host: "localhost", path: "health", port: 80, query: nil, scheme: "http", userinfo: nil}
(elixir 1.13.0-dev) lib/uri.ex:863: String.Chars.URI.to_string/1
* Introduce file system abstraction and an S3 implementation
* Support arbitrary absolute paths and delegate resolution to file system
* Remove accidental notebook file
* Apply suggestions from code review
Co-authored-by: José Valim <jose.valim@dashbit.co>
* Apply review comments
* Add missing path assertions
* Apply review comments
* Fix test saving notebook in project root
Co-authored-by: José Valim <jose.valim@dashbit.co>
* Add support for Mix runtime as a default
* Support default runtime options in the CLI
* Set cell status to queued while runtime is being started
* Clean up tests
* Setup Docker image with releases
* Support ip env variable and use it for Docker deployment
* Autofocus auth forms
* Rename ip env var
* Update option lists
* Make distribution cookie configurable
* Update README.md
Co-authored-by: José Valim <jose.valim@dashbit.co>
* Include git in the final image
* Remove unnecessary build dependency
* Improve file permissions handling and add more comments
* Use namespaced home directory
* Update README with all running options
* Update base image
* Reference official Docker image in the README
Co-authored-by: José Valim <jose.valim@dashbit.co>
* 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>