Add app service settings (#1116)

This commit is contained in:
ByeongUk Choi 2022-04-15 20:46:26 +09:00 committed by GitHub
parent 35b3fae3cb
commit bfd47fd166
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
5 changed files with 61 additions and 3 deletions

View file

@ -145,6 +145,12 @@ Livebook if said token is supplied as part of the URL.
The following environment variables configure Livebook:
* LIVEBOOK_APP_SERVICE_NAME - sets the application name used by the cloud
provider to aid debugging.
* LIVEBOOK_APP_SERVICE_URL - sets the application url to manage this
Livebook instance within the cloud provider platform.
* LIVEBOOK_COOKIE - sets the cookie for running Livebook in a cluster.
Defaults to a random string that is generated on boot.
@ -157,6 +163,9 @@ The following environment variables configure Livebook:
"attached:NODE:COOKIE" (Attached node) or "embedded" (Embedded).
Defaults to "standalone".
* LIVEBOOK_FORCE_SSL_HOST - sets a host to redirect to if the request is not over HTTP.
Note it does not apply when accessing Livebook via localhost. Defaults to nil.
* LIVEBOOK_HOME - sets the home path for the Livebook instance. This is the
default path used on file selection screens and others. Defaults to the
user's operating system home.
@ -187,9 +196,6 @@ The following environment variables configure Livebook:
Enabled by default unless `LIVEBOOK_PASSWORD` is set. Set it to "false" to
disable it.
* LIVEBOOK_FORCE_SSL_HOST - set a host to redirect to if the request is not over HTTP.
Note it does not apply when accessing Livebook via localhost. Defaults to nil.
<!-- Environment variables -->
If running Livebook as a Docker image or an Elixir release, [the environment

View file

@ -20,6 +20,8 @@ config :mime, :types, %{
}
config :livebook,
app_service_name: nil,
app_service_url: nil,
authentication_mode: :token,
explore_notebooks: [],
plugs: [],

View file

@ -147,6 +147,14 @@ defmodule Livebook do
Livebook.Config.cookie!("LIVEBOOK_COOKIE") ||
Livebook.Config.cookie!("RELEASE_COOKIE") ||
Livebook.Utils.random_cookie()
if app_service_name = Livebook.Config.app_service_name!("LIVEBOOK_APP_SERVICE_NAME") do
config :livebook, :app_service_name, app_service_name
config :livebook,
:app_service_url,
Livebook.Config.app_service_url!("LIVEBOOK_APP_SERVICE_URL")
end
end
@doc """

View file

@ -106,6 +106,22 @@ defmodule Livebook.Config do
Application.fetch_env!(:livebook, :shutdown_enabled)
end
@doc """
Returns the application service name.
"""
@spec app_service_name() :: String.t() | nil
def app_service_name() do
Application.fetch_env!(:livebook, :app_service_name)
end
@doc """
Returns the application service url.
"""
@spec app_service_url() :: String.t() | nil
def app_service_url() do
Application.fetch_env!(:livebook, :app_service_url)
end
## Parsing
@doc """
@ -224,6 +240,20 @@ defmodule Livebook.Config do
System.get_env(env)
end
@doc """
Parses application service name from env.
"""
def app_service_name!(env) do
System.get_env(env)
end
@doc """
Parses application service url from env.
"""
def app_service_url!(env) do
System.get_env(env)
end
@doc """
Parses and validates default runtime from env.
"""

View file

@ -50,6 +50,18 @@ defmodule LivebookWeb.SettingsLive do
</h1>
<div class="flex items-center justify-between border border-gray-200 rounded-lg p-4">
<div class="flex items-center space-x-12">
<%= if app_name = Livebook.Config.app_service_name() do %>
<div class="flex flex-col space-y-1">
<span class="text-sm text-gray-500">Application</span>
<span class="text-gray-800 text-sm font-semibold">
<%= if app_url = Livebook.Config.app_service_url() do %>
<a href={app_url} target="_blank"><%= app_name %></a>
<% else %>
<%= app_name %>
<% end %>
</span>
</div>
<% end %>
<.labeled_text label="Livebook" text={"v#{Application.spec(:livebook, :vsn)}"} />
<.labeled_text label="Elixir" text={"v#{System.version()}"} />
</div>