Docs: Authentication (#4476)

* initial-cleanup

* more

* docs: update authentication configuration guide for version 0.5

* introduce-table

* tech-and-docs-review
This commit is contained in:
Mendon Kissling 2024-11-08 17:09:28 -05:00 • committed by GitHub
commit 33a42bcd6b
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -4,149 +4,117 @@ sidebar_position: 0
slug: /configuration-authentication slug: /configuration-authentication
--- ---
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.
:::info ## Create a superuser and new users in Langflow
This page may contain outdated information. It will be updated as soon as possible. Learn how to create a new superuser, log in to Langflow, and add new users.
::: 1. Create a `.env` file and open it in your preferred editor.
2. Add the following environment variables to your file.
```bash
LANGFLOW_AUTO_LOGIN=False
## Sign Up and Sign In {#f480dac5d2094d75a433de0b8e195641} LANGFLOW_SUPERUSER=admin
LANGFLOW_SUPERUSER_PASSWORD=securepassword
LANGFLOW_SECRET_KEY=randomly_generated_secure_key
--- LANGFLOW_NEW_USER_IS_ACTIVE=False
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 {#3ed7cae6f5324ba0ac14783cf2a6cc07}
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`.
All of these variables can be passed to the CLI command _`langflow run`_ through the _`--env-file`_ option. For example:
```shell
langflow run --env-file .env
``` ```
For more information, see [Authentication configuration values](#values).
:::caution :::tip
The Langflow project includes a [`.env.example`](https://github.com/langflow-ai/langflow/blob/main/.env.example) file to help you get started.
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. You can copy the contents of this file into your own `.env` file and replace the example values with your own preferred settings.
::: :::
3. Save your `.env` file.
4. Run Langflow with the configured environment variables.
```bash
python -m langflow run --env-file .env
```
5. Sign in with your username `admin` and password `securepassword`.
6. To open the **Admin Page**, click your user profile image, and then select **Admin Page**.
You can also go to `http://127.0.0.1:7861/admin`.
7. To add a new user, click **New User**, and then add the **Username** and **Password**.
8. To activate the new user, select **Active**.
The user can only sign in if you select them as **Active**.
9. To give the user `superuser` priveleges, click **Superuser**.
10. Click **Save**.
11. To confirm your new user has been created, sign out of Langflow, and then sign back in using your new **Username** and **Password**.
### _`LANGFLOW_AUTO_LOGIN`_ {#8b10059e0fbc44f3bc8ce63fe7692e7e} ## Manage Superuser with the Langflow CLI
Langflow provides a command-line utility for interactively creating superusers:
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. 1. Enter the CLI command:
```bash
langflow superuser
```
2. Langflow prompts you for a **Username** and **Password**:
```
langflow superuser
Username: new_superuser_1
Password:
Default folder created successfully.
Superuser created successfully.
```
3. To confirm your new superuser was created successfully, go to the **Admin Page** at `http://127.0.0.1:7861/admin`.
## Authentication configuration values {#values}
The following table lists the available authentication configuration variables, their descriptions, and default values:
| Variable | Description | Default |
|----------|-------------|---------|
| `LANGFLOW_AUTO_LOGIN` | Enables automatic login | `True` |
| `LANGFLOW_SUPERUSER` | Superuser username | - |
| `LANGFLOW_SUPERUSER_PASSWORD` | Superuser password | - |
| `LANGFLOW_SECRET_KEY` | Key for encrypting superuser password | - |
| `LANGFLOW_NEW_USER_IS_ACTIVE` | Automatically activates new users | `False` |
### LANGFLOW_AUTO_LOGIN
By default, this variable is set to `True`. When enabled, Langflow operates as it did in versions prior to 0.5, including automatic login without requiring explicit user authentication.
To disable automatic login and enforce user authentication: To disable automatic login and enforce user authentication:
```shell ```shell
export LANGFLOW_AUTO_LOGIN=False export LANGFLOW_AUTO_LOGIN=False
``` ```
### LANGFLOW_SUPERUSER and LANGFLOW_SUPERUSER_PASSWORD
### _`LANGFLOW_SUPERUSER`_ and _`LANGFLOW_SUPERUSER_PASSWORD`_ {#a61a651a0fc7443a82cec93c07a14503} 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.
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: To create a superuser manually:
```bash
```shell
export LANGFLOW_SUPERUSER=admin export LANGFLOW_SUPERUSER=admin
export LANGFLOW_SUPERUSER_PASSWORD=securepassword export LANGFLOW_SUPERUSER_PASSWORD=securepassword
``` ```
### LANGFLOW_SECRET_KEY
You can also use the CLI command `langflow superuser` to set up a superuser interactively.
### _`LANGFLOW_SECRET_KEY`_ {#977aea34e6174c58bd76107990d62a1f}
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. 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
```shell
export LANGFLOW_SECRET_KEY=randomly_generated_secure_key export LANGFLOW_SECRET_KEY=randomly_generated_secure_key
``` ```
### LANGFLOW_NEW_USER_IS_ACTIVE
### _`LANGFLOW_NEW_USER_IS_ACTIVE`_ {#c8f5df9283be4e20be51e14518f5272e} By default, this variable is set to `False`. When enabled, new users are automatically activated and can log in without requiring explicit activation by the superuser.
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.
## Manage superusers with the CLI {#3b0c36a5cc0f4acc95c884d3de858d46}
Langflow provides a command-line utility for managing superusers:
```shell
langflow superuser
```
This command prompts you to enter the username and password for the superuser, unless they are already set using environment variables.
## Sign in {#736ebb8c854b4c268d5e748c119a08ea}
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.
![](./1009571828.png)
## Profile settings {#dd5926e12471448d99bd6849d2149dc8}
Once signed in, you can change your profile settings by clicking on the profile icon in the top right corner of the Langflow dashboard. 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.
![](./563306242.png)
Select **Profile Settings** to change your password and your profile picture.
![](./1813063533.png)
Select **Admin Page** to manage users and groups as the superuser.
![](./383358552.png)