-
Notifications
You must be signed in to change notification settings - Fork 89
V4 #311
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
msukkari
wants to merge
28
commits into
main
Choose a base branch
from
v4
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
+3,357
−685
Open
V4 #311
Changes from all commits
Commits
Show all changes
28 commits
Select commit
Hold shift + click to select a range
9d11934
basic auth default changes
msukkari d5eb571
add max seat count check
msukkari 1670fe7
prevent editing connections if config path is provided
msukkari d2f7be5
wip public access toggle
msukkari 200febc
add support for account requests
msukkari ed90c19
prevent non owners from seeing requests and invites in settings
msukkari 4a5f7c3
add public access support
msukkari 0a27a1f
hide add repo button in unauthed case
msukkari 6ef8295
made public access enable flag a setting
msukkari 7ed63a2
add sso auth providers
msukkari ee6efc5
added ee sso logic
msukkari 6e91693
add api key support
msukkari 3eb0e5a
fix unauthed issue and ensure JIT provisioning only happens for oauth…
msukkari 7df5c1e
add api key support to mcp and rest endpoints
msukkari 10cfaee
add indicator to members side bar nav menu and fix minor nits
msukkari 6f6a2eb
minor bug fix
msukkari 971c44d
add emails for join requests
msukkari b8f40bc
add enterprise license settings page
msukkari 8f9d079
prevent api key with the same name
msukkari 5d0efd2
fix column alignment
msukkari 246a73b
fix horizontal scroll bar issue
msukkari f71df1e
add ability to delete api keys
msukkari 73d1710
bunch of fixes and docs
msukkari fef1172
added support for supplying custom entitlements list in license key'
msukkari 87cfdfd
Merge branch 'main' into msukkarieh/auth2
msukkari aa46d46
UI nits
msukkari 07e5d80
misc fixes
msukkari aa3ce38
doc fixes
msukkari File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
This file was deleted.
Oops, something went wrong.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,109 @@ | ||
--- | ||
title: Authentication | ||
sidebarTitle: Authentication | ||
--- | ||
|
||
<Warning>Make sure the `AUTH_URL` environment variable is [configured correctly](/self-hosting/configuration) when using Sourcebot behind a domain.</Warning> | ||
|
||
Sourcebot has built-in authentication that gates access to your organization. OAuth, email codes, and email / password are supported. | ||
|
||
The first account that's registered on a Sourcebot deployment is made the owner. All other users who register must be [approved](/self-hosting/configuration/authentication#approving-new-members) by the owner. | ||
|
||
 | ||
|
||
|
||
# Approving New Members | ||
|
||
All account registrations after the first account must be approved by the owner. The owner can see all join requests by going into **Settings -> Members**. | ||
|
||
If you have an [enterprise license](/self-hosting/license-key), you can enable [AUTH_EE_ENABLE_JIT_PROVISIONING](/self-hosting/configuration/authentication#enterprise-authentication-providers) to | ||
have Sourcebot accounts automatically created and approved on registration. | ||
|
||
You can setup emails to be sent when new join requests are created/approved by configurating [transactional emails](/self-hosting/configuration/transactional-emails) | ||
# Authentication Providers | ||
|
||
To enable an authentication provider in Sourcebot, configure the required environment variables for the provider. Under the hood, Sourcebot uses Auth.js which supports [many providers](https://authjs.dev/getting-started/authentication/oauth). Submit a [feature request on GitHub](https://github.com/sourcebot-dev/sourcebot/discussions/categories/ideas) if you want us to add support for a specific provider. | ||
|
||
## Core Authentication Providers | ||
|
||
### Email / Password | ||
--- | ||
Email / password authentication is enabled by default. It can be **disabled** by setting `AUTH_CREDENTIALS_LOGIN_ENABLED` to `false`. | ||
|
||
### Email codes | ||
--- | ||
Email codes are 6 digit codes sent to a provided email. Email codes are enabled when transactional emails are configured using the following environment variables: | ||
|
||
- `AUTH_EMAIL_CODE_LOGIN_ENABLED` | ||
- `SMTP_CONNECTION_URL` | ||
- `EMAIL_FROM_ADDRESS` | ||
|
||
|
||
See [transactional emails](/self-hosting/configuration/transactional-emails) for more details. | ||
|
||
## Enterprise Authentication Providers | ||
|
||
The following authentication providers require an [enterprise license](/self-hosting/license-key) to be enabled. | ||
|
||
By default, a new user registering using these providers must have their join request accepted by the owner of the organization to join. To allow a user to join automatically when | ||
they register for the first time, set the `AUTH_EE_ENABLE_JIT_PROVISIONING` environment variable to `true`. | ||
|
||
### GitHub | ||
--- | ||
|
||
[Auth.js GitHub Provider Docs](https://authjs.dev/getting-started/providers/github) | ||
|
||
**Required environment variables:** | ||
- `AUTH_EE_GITHUB_CLIENT_ID` | ||
- `AUTH_EE_GITHUB_CLIENT_SECRET` | ||
|
||
Optional environment variables: | ||
- `AUTH_EE_GITHUB_BASE_URL` - Base URL for GitHub Enterprise (defaults to https://github.com) | ||
|
||
### GitLab | ||
--- | ||
|
||
[Auth.js GitLab Provider Docs](https://authjs.dev/getting-started/providers/gitlab) | ||
|
||
**Required environment variables:** | ||
- `AUTH_EE_GITLAB_CLIENT_ID` | ||
- `AUTH_EE_GITLAB_CLIENT_SECRET` | ||
|
||
Optional environment variables: | ||
- `AUTH_EE_GITLAB_BASE_URL` - Base URL for GitLab instance (defaults to https://gitlab.com) | ||
|
||
--- | ||
|
||
[Auth.js Google Provider Docs](https://authjs.dev/getting-started/providers/google) | ||
|
||
**Required environment variables:** | ||
- `AUTH_EE_GOOGLE_CLIENT_ID` | ||
- `AUTH_EE_GOOGLE_CLIENT_SECRET` | ||
|
||
### Okta | ||
--- | ||
|
||
[Auth.js Okta Provider Docs](https://authjs.dev/getting-started/providers/okta) | ||
|
||
**Required environment variables:** | ||
- `AUTH_EE_OKTA_CLIENT_ID` | ||
- `AUTH_EE_OKTA_CLIENT_SECRET` | ||
- `AUTH_EE_OKTA_ISSUER` | ||
|
||
### Keycloak | ||
--- | ||
|
||
[Auth.js Keycloak Provider Docs](https://authjs.dev/getting-started/providers/keycloak) | ||
|
||
**Required environment variables:** | ||
- `AUTH_EE_KEYCLOAK_CLIENT_ID` | ||
- `AUTH_EE_KEYCLOAK_CLIENT_SECRET` | ||
- `AUTH_EE_KEYCLOAK_ISSUER` | ||
|
||
--- | ||
|
||
# Troubleshooting | ||
|
||
- If you experience issues logging in, logging out, or accessing an organization you should have access to, try clearing your cookies & performing a full page refresh (`Cmd/Ctrl + Shift + R` on most browsers). | ||
- Still not working? Reach out to us on our [discord](https://discord.com/invite/6Fhp27x7Pb) or [github discussions](https://github.com/sourcebot-dev/sourcebot/discussions) |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,67 @@ | ||
--- | ||
title: Environment Variables | ||
sidebarTitle: Environment Variables | ||
--- | ||
|
||
<Note>This page provides a detailed reference of all environment variables supported by Sourcebot. If you're just looking to get up and running, we recommend starting with the [getting started](/self-hosting/overview) guide instead.</Note> | ||
|
||
### Core Environment Variables | ||
The following environment variables allow you to configure your Sourcebot deployment. | ||
|
||
| Variable | Default | Description | | ||
| :------- | :------ | :---------- | | ||
| `AUTH_CREDENTIALS_LOGIN_ENABLED` | `true` | <p>Enables/disables authentication with basic credentials. Username and passwords are stored encrypted at rest within the postgres database. Checkout the [auth docs](/self-hosting/configuration/authentication) for more info</p> | | ||
| `AUTH_EMAIL_CODE_LOGIN_ENABLED` | `false` | <p>Enables/disables authentication with a login code that's sent to a users email. `SMTP_CONNECTION_URL` and `EMAIL_FROM_ADDRESS` must also be set. Checkout the [auth docs](/self-hosting/configuration/authentication) for more info </p> | | ||
| `AUTH_SECRET` | Automatically generated at startup if no value is provided. Generated using `openssl rand -base64 33` | <p>Used to validate login session cookies</p> | | ||
| `AUTH_URL` | - | <p>URL of your Sourcebot deployment, e.g., `https://example.com` or `http://localhost:3000`.</p> | | ||
| `CONFIG_PATH` | `-` | <p>The container relative path to the declerative configuration file. See [this doc](/self-hosting/configuration/declarative-config) for more info.</p> | | ||
| `DATA_CACHE_DIR` | `$DATA_DIR/.sourcebot` | <p>The root data directory in which all data written to disk by Sourcebot will be located.</p> | | ||
| `DATA_DIR` | `/data` | <p>The directory within the container to store all persistent data. Typically, this directory will be volume mapped such that data is persisted across container restarts (e.g., `docker run -v $(pwd):/data`)</p> | | ||
| `DATABASE_DATA_DIR` | `$DATA_CACHE_DIR/db` | <p>The data directory for the default Postgres database.</p> | | ||
| `DATABASE_URL` | `postgresql://postgres@ localhost:5432/sourcebot` | <p>Connection string of your Postgres database. By default, a Postgres database is automatically provisioned at startup within the container.</p><p>If you'd like to use a non-default schema, you can provide it as a parameter in the database url </p> | | ||
| `EMAIL_FROM_ADDRESS` | `-` | <p>The email address that transactional emails will be sent from. See [this doc](/self-hosting/configuration/transactional-emails) for more info.</p> | | ||
| `REDIS_DATA_DIR` | `$DATA_CACHE_DIR/redis` | <p>The data directory for the default Redis instance.</p> | | ||
| `REDIS_URL` | `redis://localhost:6379` | <p>Connection string of your Redis instance. By default, a Redis database is automatically provisioned at startup within the container.</p> | | ||
| `SHARD_MAX_MATCH_COUNT` | `10000` | <p>The maximum shard count per query</p> | | ||
| `SMTP_CONNECTION_URL` | `-` | <p>The url to the SMTP service used for sending transactional emails. See [this doc](/self-hosting/configuration/transactional-emails) for more info.</p> | | ||
| `SOURCEBOT_ENCRYPTION_KEY` | Automatically generated at startup if no value is provided. Generated using `openssl rand -base64 24` | <p>Used to encrypt connection secrets and generate API keys.</p> | | ||
| `SOURCEBOT_LOG_LEVEL` | `info` | <p>The Sourcebot logging level. Valid values are `debug`, `info`, `warn`, `error`, in order of severity.</p> | | ||
| `SOURCEBOT_TELEMETRY_DISABLED` | `false` | <p>Enables/disables telemetry collection in Sourcebot. See [this doc](/self-hosting/security/telemetry) for more info.</p> | | ||
| `TOTAL_MAX_MATCH_COUNT` | `100000` | <p>The maximum number of matches per query</p> | | ||
| `ZOEKT_MAX_WALL_TIME_MS` | `10000` | <p>The maximum real world duration (in milliseconds) per zoekt query</p> | | ||
|
||
### Enterprise Environment Variables | ||
| Variable | Default | Description | | ||
| :------- | :------ | :---------- | | ||
| `AUTH_EE_ATLASSIAN_BASE_URL` | `https://auth.atlassian.com` | <p>The base URL for Atlassian SSO authentication.</p> | | ||
| `AUTH_EE_ATLASSIAN_CLIENT_ID` | `-` | <p>The client ID for Atlassian SSO authentication.</p> | | ||
| `AUTH_EE_ATLASSIAN_CLIENT_SECRET` | `-` | <p>The client secret for Atlassian SSO authentication.</p> | | ||
| `AUTH_EE_ENABLE_JIT_PROVISIONING` | `false` | <p>Enables/disables just-in-time user provisioning for SSO providers.</p> | | ||
| `AUTH_EE_GITHUB_BASE_URL` | `https://github.com` | <p>The base URL for GitHub Enterprise SSO authentication.</p> | | ||
| `AUTH_EE_GITHUB_CLIENT_ID` | `-` | <p>The client ID for GitHub Enterprise SSO authentication.</p> | | ||
| `AUTH_EE_GITHUB_CLIENT_SECRET` | `-` | <p>The client secret for GitHub Enterprise SSO authentication.</p> | | ||
| `AUTH_EE_GITLAB_BASE_URL` | `https://gitlab.com` | <p>The base URL for GitLab Enterprise SSO authentication.</p> | | ||
| `AUTH_EE_GITLAB_CLIENT_ID` | `-` | <p>The client ID for GitLab Enterprise SSO authentication.</p> | | ||
| `AUTH_EE_GITLAB_CLIENT_SECRET` | `-` | <p>The client secret for GitLab Enterprise SSO authentication.</p> | | ||
| `AUTH_EE_GOOGLE_CLIENT_ID` | `-` | <p>The client ID for Google SSO authentication.</p> | | ||
| `AUTH_EE_GOOGLE_CLIENT_SECRET` | `-` | <p>The client secret for Google SSO authentication.</p> | | ||
| `AUTH_EE_KEYCLOAK_CLIENT_ID` | `-` | <p>The client ID for Keycloak SSO authentication.</p> | | ||
| `AUTH_EE_KEYCLOAK_CLIENT_SECRET` | `-` | <p>The client secret for Keycloak SSO authentication.</p> | | ||
| `AUTH_EE_KEYCLOAK_ISSUER` | `-` | <p>The issuer URL for Keycloak SSO authentication.</p> | | ||
| `AUTH_EE_OKTA_CLIENT_ID` | `-` | <p>The client ID for Okta SSO authentication.</p> | | ||
| `AUTH_EE_OKTA_CLIENT_SECRET` | `-` | <p>The client secret for Okta SSO authentication.</p> | | ||
| `AUTH_EE_OKTA_ISSUER` | `-` | <p>The issuer URL for Okta SSO authentication.</p> | | ||
|
||
|
||
### Review Agent Environment Variables | ||
| Variable | Default | Description | | ||
| :------- | :------ | :---------- | | ||
| `GITHUB_APP_ID` | `-` | <p>The GitHub App ID used for review agent authentication.</p> | | ||
| `GITHUB_APP_PRIVATE_KEY_PATH` | `-` | <p>The container relative path to the private key file for the GitHub App used by the review agent.</p> | | ||
| `GITHUB_APP_WEBHOOK_SECRET` | `-` | <p>The webhook secret for the GitHub App used by the review agent.</p> | | ||
| `OPENAI_API_KEY` | `-` | <p>The OpenAI API key used by the review agent.</p> | | ||
| `REVIEW_AGENT_API_KEY` | `-` | <p>The Sourcebot API key used by the review agent.</p> | | ||
| `REVIEW_AGENT_AUTO_REVIEW_ENABLED` | `false` | <p>Enables/disables automatic code reviews by the review agent.</p> | | ||
| `REVIEW_AGENT_LOGGING_ENABLED` | `true` | <p>Enables/disables logging for the review agent. Logs are saved in `DATA_CACHE_DIR/review-agent`</p> | | ||
| `REVIEW_AGENT_REVIEW_COMMAND` | `review` | <p>The command used to trigger a code review by the review agent.</p> | | ||
|
File renamed without changes.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.