Skip to content

Commit

Permalink
docs: organizations (#741)
Browse files Browse the repository at this point in the history
  • Loading branch information
marcklingen authored Aug 13, 2024
1 parent 8ab775f commit a71178e
Show file tree
Hide file tree
Showing 8 changed files with 307 additions and 127 deletions.
2 changes: 1 addition & 1 deletion components/availability.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ const availabilities: {
Icon: any;
}[] = [
{
id: "enterprise",
id: "ee",
label: "Enterprise Edition",
shortLabel: "Enterprise",
Icon: Check,
Expand Down
73 changes: 73 additions & 0 deletions pages/changelog/2024-08-13-organizations.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
---
date: 2024-08-13
title: Organizations
description: Introducing organizations to manage projects and permissions across larger teams working in Langfuse.
author: Marc
---

import { ChangelogHeader } from "@/components/changelog/ChangelogHeader";
import { BookOpen } from "lucide-react";

<ChangelogHeader />

## What are Organizations?

Until now, access control in Langfuse was purely based on projects and roles. This led to a flat structure that was not suitable for larger teams working on multiple projects. `Organizations` are top-level entities that contain projects. They allow for a more structured approach to managing users, projects, and permissions.

```mermaid
graph LR
A["User (via UI)"] -->|role| B[Organization]
B -->|1:n| C[Projects]
C -->|n:1| D[API Keys]
```

## Changes to the UI

Start page to view all organizations and projects

![Start page](/images/changelog/2024-08-13-organizations/organization-home.png)

Navigate between projects with new project selector

<CloudflareVideo
videoId="547bdf07e1b53dc60c0690f43c7e058a"
gifStyle
aspectRatio={768 / 452}
className="max-w-sm"
/>

Settings are now organized by level (organization/project) and topic

<CloudflareVideo
videoId="cc2f74ad7277ca4049f37d76d1a8ecc6"
gifStyle
aspectRatio={1920 / 988}
className="rounded-lg"
/>

## Migration

### Automated migration of existing projects

A new organization has been created for each existing project.

- The organization name is the same as the project name.
- All user permissions were migrated to the organization level. This ensures that all existing projects and users can continue to work as before.
- API Keys are unaffected by the migration and remain associated with the project.

### Group projects into a single organization

If you work with multiple projects in Langfuse, you can group them into a single organization by transferring projects via the project settings.

This transfer will centralize user management and permissions in an organization. The project remains fully operational as API keys, settings (except for access management), and data will remain unchanged and associated with the project. All features (e.g. tracing, prompt management) will continue to work without any interruption.

## Learn more

<Cards num={3}>
<Card title="RBAC Documentation" href="/docs/rbac" icon={<BookOpen />} />
<Card
title="API Reference"
href="https://api.reference.langfuse.com"
icon={<BookOpen />}
/>
</Cards>
2 changes: 1 addition & 1 deletion pages/docs/_meta.json
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,7 @@
"type": "separator",
"title": "More"
},
"rbac": "Project Sharing (RBAC)",
"rbac": "Access Control (RBAC)",
"data-security-privacy": "Data Security & Privacy",
"open-source": "Open Source",
"roadmap": "Roadmap",
Expand Down
3 changes: 2 additions & 1 deletion pages/docs/deployment/self-host.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -91,13 +91,14 @@ Langfuse can be configured using environment variables ([.env.prod.example](http
| `PORT` | `3000` | Port the server listens on. |
| `HOSTNAME` | `localhost` | In some environments it needs to be set to `0.0.0.0` to be accessible from outside the container (e.g. Google Cloud Run). |
| `LANGFUSE_DEFAULT_PROJECT_ID` | | Configure optional default project for new users. When users create an account they will be automatically added to this project. |
| `LANGFUSE_DEFAULT_PROJECT_ROLE` | `VIEWER` | Role of the user in the default project (if set). Possible values are `ADMIN`, `MEMBER`, `VIEWER`. See [project roles](/docs/project-sharing) for details. |
| `LANGFUSE_DEFAULT_PROJECT_ROLE` | `VIEWER` | Role of the user in the default project (if set). Possible values are `ADMIN`, `MEMBER`, `VIEWER`. See [project roles](/docs/rbac) for details. |
| `SMTP_CONNECTION_URL` | | Configure optional SMTP server connection for transactional email. |
| `EMAIL_FROM_ADDRESS` | | Configure from address for transactional email. Required if `SMTP_CONNECTION_URL` is set. |
| `S3_ENDPOINT`<br/>`S3_ACCESS_KEY_ID`<br/>`S3_SECRET_ACCESS_KEY`<br/>`S3_BUCKET_NAME`<br/>`S3_REGION` | | Optional S3 configuration to enable large exports from the UI. |
| `DB_EXPORT_PAGE_SIZE` | `1000` | Optional page size for streaming exports to S3 to avoid memory issues. The page size can be adjusted if needed to optimize performance. |
| `ENABLE_EVENT_LOG` | `true` | Set to `false` to disable logging raw events to the `events` table in the database. This table is useful for debugging your instance but not required to run the application. |
| `LANGFUSE_AUTO_POSTGRES_MIGRATION_DISABLED` | `false` | Set to `true` to disable automatic database migrations on docker startup. |
| `LANGFUSE_ALLOWED_ORGANIZATION_CREATORS` | | Comma-separated list of allowlisted users that can create new organizations. By default, all users can create organizations. E.g. `[email protected],[email protected]` |

### Authentication

Expand Down
2 changes: 1 addition & 1 deletion pages/docs/playground.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ description: Test, iterate, and compare different prompts and models within the
hobby: "full",
pro: "full",
team: "full",
selfHosted: "enterprise",
selfHosted: "ee",
}}
/>

Expand Down
Loading

0 comments on commit a71178e

Please sign in to comment.