diff --git a/docs/docs/guides/login.mdx b/docs/docs/guides/login.mdx new file mode 100644 index 000000000..a2d7c5502 --- /dev/null +++ b/docs/docs/guides/login.mdx @@ -0,0 +1,122 @@ +import ThemedImage from "@theme/ThemedImage"; +import useBaseUrl from "@docusaurus/useBaseUrl"; +import ZoomableImage from "/src/theme/ZoomableImage.js"; +import ReactPlayer from "react-player"; +import Admonition from "@theme/Admonition"; + +# Sign up and Sign in + +## Introduction + +The login functionality in Langflow serves to authenticate users and protect sensitive routes in the application. Starting from version 0.5, Langflow introduces an enhanced login mechanism that is governed by a few environment variables. This allows new secure features. + +## Environment Variables + +The following environment variables are crucial in configuring the login settings: + +- _`LANGFLOW_AUTO_LOGIN`_: Determines whether Langflow should automatically log users in. Default is `True`. +- _`LANGFLOW_SUPERUSER`_: The username of the superuser. +- _`LANGFLOW_SUPERUSER_PASSWORD`_: The password for the superuser. +- _`LANGFLOW_SECRET_KEY`_: A key used for encrypting the superuser's password. +- _`LANGFLOW_NEW_USER_IS_ACTIVE`_: Determines whether new users are automatically activated. Default is `False`. + + + It is critical not to expose these environment variables in your code + repository. Always set them securely in your deployment environment, for + example, using Docker secrets, Kubernetes ConfigMaps/Secrets, or dedicated + secure environment configuration systems like AWS Secrets Manager. + + +### _`LANGFLOW_AUTO_LOGIN`_ + +By default, this variable is set to `True`. When enabled (`True`), Langflow operates as it did in versions prior to 0.5—automatic login without requiring explicit user authentication. + +To disable automatic login and enforce user authentication: + +```bash +export LANGFLOW_AUTO_LOGIN=False +``` + +### _`LANGFLOW_SUPERUSER`_ and _`LANGFLOW_SUPERUSER_PASSWORD`_ + +These environment variables are only relevant when `LANGFLOW_AUTO_LOGIN` is set to `False`. They specify the username and password for the superuser, which is essential for administrative tasks. + +To create a superuser manually: + +```bash +export LANGFLOW_SUPERUSER=admin +export LANGFLOW_SUPERUSER_PASSWORD=securepassword +``` + +You can also use the CLI command `langflow superuser` to set up a superuser interactively. + +### _`LANGFLOW_SECRET_KEY`_ + +This environment variable holds a secret key used for encrypting the superuser's password. Make sure to set this to a secure, randomly generated string. + +```bash +export LANGFLOW_SECRET_KEY=randomly_generated_secure_key +``` + +### _`LANGFLOW_NEW_USER_IS_ACTIVE`_ + +By default, this variable is set to `False`. When enabled (`True`), new users are automatically activated and can log in without requiring explicit activation by the superuser. + +## Command-Line Interface + +Langflow provides a command-line utility for managing superusers: + +```bash +langflow superuser +``` + +This command prompts you to enter the username and password for the superuser, unless they are already set using environment variables. + +## Sign-up + +With _`LANGFLOW_AUTO_LOGIN`_ set to _`False`_, Langflow requires users to sign up before they can log in. The sign-up page is the default landing page when a user visits Langflow for the first time. + + + +## Profile settings + +Users can change their profile settings by clicking on the profile icon in the top right corner of the application. This opens a dropdown menu with the following options: + +- **Admin Page**: Opens the admin page, which is only accessible to the superuser. +- **Profile Settings**: Opens the profile settings page. +- **Sign Out**: Logs the user out. + + + +By clicking on **Profile Settings**, the user is taken to the profile settings page, where they can change their password and their profile picture. + + + +By clicking on **Admin Page**, the superuser is taken to the admin page, where they can manage users and groups. + + diff --git a/docs/docs/guides/superuser.mdx b/docs/docs/guides/superuser.mdx new file mode 100644 index 000000000..04e0f96af --- /dev/null +++ b/docs/docs/guides/superuser.mdx @@ -0,0 +1,7 @@ +import ThemedImage from "@theme/ThemedImage"; +import useBaseUrl from "@docusaurus/useBaseUrl"; +import ZoomableImage from "/src/theme/ZoomableImage.js"; +import ReactPlayer from "react-player"; + +Now, we need to explain what are the permissions the superuser gets. Once logged in, they can activate new users, +edit them, diff --git a/docs/sidebars.js b/docs/sidebars.js index bc02f7407..4624190ba 100644 --- a/docs/sidebars.js +++ b/docs/sidebars.js @@ -52,6 +52,7 @@ module.exports = { label: "Step-by-Step Guides", collapsed: false, items: [ + "guides/login", "guides/loading_document", "guides/chatprompttemplate_guide", "guides/langfuse_integration", diff --git a/docs/static/img/admin-page.png b/docs/static/img/admin-page.png new file mode 100644 index 000000000..aa23164de Binary files /dev/null and b/docs/static/img/admin-page.png differ diff --git a/docs/static/img/my-account.png b/docs/static/img/my-account.png new file mode 100644 index 000000000..c8b887ca1 Binary files /dev/null and b/docs/static/img/my-account.png differ diff --git a/docs/static/img/profile-settings.png b/docs/static/img/profile-settings.png new file mode 100644 index 000000000..77077d463 Binary files /dev/null and b/docs/static/img/profile-settings.png differ diff --git a/docs/static/img/sign-up.png b/docs/static/img/sign-up.png new file mode 100644 index 000000000..3ffdd1793 Binary files /dev/null and b/docs/static/img/sign-up.png differ