import Config

# For development, we disable any cache and enable code reloading.
#
# The watchers configuration can be used to run external
# watchers to your application. For example, we use it
# with webpack to recompile .js and .css sources.
config :livebook, LivebookWeb.Endpoint,
  # Binding to loopback ipv4 address prevents access from other machines.
  # Change to `ip: {0, 0, 0, 0}` to allow access from other machines.
  http: [
    ip: {127, 0, 0, 1},
    port: 4000,
    http_1_options: [max_header_length: 32768]
  ],
  code_reloader: true,
  debug_errors: true,
  check_origin: false,
  watchers: [
    # We invoke node rather than an npm task, so that it works on Windows
    node: ["build.js", "--watch", cd: Path.expand("../assets", __DIR__)]
  ]

config :livebook,
  iframe_port: 4001,
  shutdown_callback: {System, :stop, []},
  warn_on_live_teams_server: true

# ## SSL Support
#
# In order to use HTTPS in development, a self-signed
# certificate can be generated by running the following
# Mix task:
#
#     mix phx.gen.cert
#
# Note that this task requires Erlang/OTP 20 or later.
# Run `mix help phx.gen.cert` for more information.
#
# The `http:` config above can be replaced with:
#
#     https: [
#       port: 4001,
#       cipher_suite: :strong,
#       keyfile: "priv/cert/selfsigned_key.pem",
#       certfile: "priv/cert/selfsigned.pem"
#     ],
#
# If desired, both `http:` and `https:` keys can be
# configured to run both http and https servers on
# different ports.

# Watch static and templates for browser reloading.
config :livebook, LivebookWeb.Endpoint,
  live_reload: [
    patterns: [
      ~r"tmp/static_dev/.*(js|css|png|jpeg|jpg|gif|svg)$",
      ~r"lib/livebook_web/(live|views|components)/.*(ex)$",
      ~r"lib/livebook_web/templates/.*(eex)$"
    ],
    web_console_logger: true
  ]

# Do not include timestamps in development logs
config :logger, :default_formatter,
  format: "$metadata[$level] $message\n",
  metadata: []

# Include HEEx debug annotations as HTML comments in rendered markup
config :phoenix_live_view,
  debug_heex_annotations: true,
  debug_attributes: true,
  enable_expensive_runtime_checks: true

# Set a higher stacktrace during development. Avoid configuring such
# in production as building large stacktraces may be expensive.
config :phoenix,
  stacktrace_depth: 20,
  plug_init_mode: :runtime

config :livebook,
  authentication: :disabled,
  data_path: Path.expand("tmp/livebook_data/dev")
