Skip to content
Merged

V4 #311

Show file tree
Hide file tree
Changes from 37 commits
Commits
Show all changes
56 commits
Select commit Hold shift + click to select a range
9d11934
basic auth default changes
msukkari May 18, 2025
d5eb571
add max seat count check
msukkari May 18, 2025
1670fe7
prevent editing connections if config path is provided
msukkari May 19, 2025
d2f7be5
wip public access toggle
msukkari May 20, 2025
200febc
add support for account requests
msukkari May 20, 2025
ed90c19
prevent non owners from seeing requests and invites in settings
msukkari May 20, 2025
4a5f7c3
add public access support
msukkari May 20, 2025
0a27a1f
hide add repo button in unauthed case
msukkari May 20, 2025
6ef8295
made public access enable flag a setting
msukkari May 20, 2025
7ed63a2
add sso auth providers
msukkari May 20, 2025
ee6efc5
added ee sso logic
msukkari May 20, 2025
6e91693
add api key support
msukkari May 21, 2025
3eb0e5a
fix unauthed issue and ensure JIT provisioning only happens for oauth…
msukkari May 21, 2025
7df5c1e
add api key support to mcp and rest endpoints
msukkari May 21, 2025
10cfaee
add indicator to members side bar nav menu and fix minor nits
msukkari May 21, 2025
6f6a2eb
minor bug fix
msukkari May 21, 2025
971c44d
add emails for join requests
msukkari May 21, 2025
b8f40bc
add enterprise license settings page
msukkari May 22, 2025
8f9d079
prevent api key with the same name
msukkari May 22, 2025
5d0efd2
fix column alignment
msukkari May 22, 2025
246a73b
fix horizontal scroll bar issue
msukkari May 22, 2025
f71df1e
add ability to delete api keys
msukkari May 22, 2025
73d1710
bunch of fixes and docs
msukkari May 22, 2025
fef1172
added support for supplying custom entitlements list in license key'
msukkari May 22, 2025
87cfdfd
Merge branch 'main' into msukkarieh/auth2
msukkari May 22, 2025
aa46d46
UI nits
msukkari May 22, 2025
07e5d80
misc fixes
msukkari May 22, 2025
aa3ce38
doc fixes
msukkari May 22, 2025
e78366e
coderabbit feedback
msukkari May 23, 2025
eb1a8a1
additional coderabbit fixes
msukkari May 23, 2025
62db1a0
fix build and add api key docs
msukkari May 23, 2025
ce5f0b3
license key logic clean up
msukkari May 23, 2025
c7eef71
add v4 upgrade guide
msukkari May 24, 2025
a2b90b5
force exit on license expired
msukkari May 24, 2025
827ccef
fix formatting of env var docs
msukkari May 24, 2025
9eaa25b
fix metadata error in settings
msukkari May 24, 2025
e46ab61
fix url issue in request email
msukkari May 24, 2025
a41e488
Merge branch 'main' into v4
msukkari May 24, 2025
0388829
nits and enforce api key for org
msukkari May 25, 2025
9bebda4
prune old guest user to remove need to wipe data on upgrade
msukkari May 25, 2025
4d67780
fix broken link in upgrade doc
msukkari May 25, 2025
e7b28f1
add warning if email env vars arent set
msukkari May 26, 2025
d3c79db
delete pending invites once a member request is accepted
msukkari May 26, 2025
a0ec32b
add smtp helper to docs
msukkari May 26, 2025
ce17a3b
change no license copy
msukkari May 26, 2025
f690eaf
update login pic in docs
msukkari May 27, 2025
fa213cd
add support for microsoft entra id
msukkari May 27, 2025
9f88959
fix typo
msukkari May 27, 2025
6abf0d9
typo in docs
msukkari May 27, 2025
50f2f36
fix github sso urls
msukkari May 28, 2025
ce9bab3
add whats new indicator to nav
msukkari May 28, 2025
ed87595
remove enterprise settings card and add more whats new updates
msukkari May 28, 2025
cf5ecec
Code navigation (#315)
brendan-kellam May 28, 2025
319171e
fix github auth api url
msukkari May 28, 2025
45cc344
Fix docs links; add changelog; small nits with bottom panel when no e…
brendan-kellam May 28, 2025
20a8df2
changelog nit
brendan-kellam May 28, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions .env.development
Original file line number Diff line number Diff line change
Expand Up @@ -18,10 +18,10 @@ SRC_TENANT_ENFORCEMENT_MODE=strict
AUTH_SECRET="00000000000000000000000000000000000000000000"
AUTH_URL="http://localhost:3000"
# AUTH_CREDENTIALS_LOGIN_ENABLED=true
# AUTH_GITHUB_CLIENT_ID=""
# AUTH_GITHUB_CLIENT_SECRET=""
# AUTH_GOOGLE_CLIENT_ID=""
# AUTH_GOOGLE_CLIENT_SECRET=""
# AUTH_EE_GITHUB_CLIENT_ID=""
# AUTH_EE_GITHUB_CLIENT_SECRET=""
# AUTH_EE_GOOGLE_CLIENT_ID=""
# AUTH_EE_GOOGLE_CLIENT_SECRET=""

DATA_CACHE_DIR=${PWD}/.sourcebot # Path to the sourcebot cache dir (ex. ~/sourcebot/.sourcebot)
# CONFIG_PATH=${PWD}/config.json # Path to the sourcebot config file (if one exists)
Expand Down
15 changes: 8 additions & 7 deletions docs/docs.json
Original file line number Diff line number Diff line change
Expand Up @@ -63,6 +63,7 @@
{
"group": "More",
"pages": [
"docs/more/api-keys",
"docs/more/roles-and-permissions",
"docs/more/mcp-server"
]
Expand All @@ -77,17 +78,16 @@
"group": "Getting Started",
"pages": [
"self-hosting/overview",
"self-hosting/configuration",
"self-hosting/license-key"
]
},
{
"group": "More",
"group": "Configuration",
"pages": [
"self-hosting/more/authentication",
"self-hosting/more/tenancy",
"self-hosting/more/transactional-emails",
"self-hosting/more/declarative-config"
"self-hosting/configuration/environment-variables",
"self-hosting/configuration/authentication",
"self-hosting/configuration/transactional-emails",
"self-hosting/configuration/declarative-config"
]
},
{
Expand All @@ -98,7 +98,8 @@
{
"group": "Upgrade",
"pages": [
"self-hosting/upgrade/v2-to-v3-guide"
"self-hosting/upgrade/v2-to-v3-guide",
"self-hosting/upgrade/v3-to-v4-guide"
]
}
]
Expand Down
2 changes: 2 additions & 0 deletions docs/docs/agents/review-agent.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,7 @@ Before you get started, make sure you have an OpenAPI account that you can creat
directory that you mount to Sourcebot
![GitHub App Private Key](/images/github_app_private_key.png)
- `OPENAI_API_KEY`: Your OpenAI API key
- `REVIEW_AGENT_API_KEY`: The Sourcebot API key that the review agent uses to hit the Sourcebot API to fetch code context
- `REVIEW_AGENT_AUTO_REVIEW_ENABLED` (default: `false`): If enabled, the review agent will automatically review any new or updated PR. If disabled, you must invoke it using the command defined by `REVIEW_AGENT_REVIEW_COMMAND`
- `REVIEW_AGENT_REVIEW_COMMAND` (default: `review`): The command that invokes the review agent (ex. `/review`) when a user comments on the PR. Don't include the slash character in this value.

Expand All @@ -76,6 +77,7 @@ Before you get started, make sure you have an OpenAPI account that you can creat
GITHUB_APP_ID: "my-github-app-id"
GITHUB_APP_WEBHOOK_SECRET: "my-github-app-webhook-secret"
GITHUB_APP_PRIVATE_KEY_PATH: "/data/review-agent-key.pem"
REVIEW_AGENT_API_KEY: "sourcebot-my-key"
OPENAI_API_KEY: "sk-proj-my-open-api-key"
```
</Step>
Expand Down
8 changes: 8 additions & 0 deletions docs/docs/more/api-keys.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
---
title: API Keys
---

An API Key is required when querying Sourcebot outside the context of the web app client (ex. MCP server, review agent). To create an API key, login to your Sourcebot instance and navigate to
**Settings -> API Keys**:

![API Keys UI](/images/api_key.png)
1 change: 1 addition & 0 deletions docs/docs/more/mcp-server.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -176,6 +176,7 @@ Parameters:
| Name | Default | Description |
|:-------------------------|:-----------------------|:--------------------------------------------------|
| `SOURCEBOT_HOST` | http://localhost:3000 | URL of your Sourcebot instance. |
| `SOURCEBOT_API_KEY` | - | Sourcebot API key. |
| `DEFAULT_MINIMUM_TOKENS` | 10000 | Minimum number of tokens to return in responses. |
| `DEFAULT_MATCHES` | 10000 | Number of code matches to fetch per search. |
| `DEFAULT_CONTEXT_LINES` | 5 | Lines of context to include above/below matches. |
3 changes: 1 addition & 2 deletions docs/docs/more/roles-and-permissions.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,7 @@ title: Roles and Permissions

<Note>Looking to sync permissions with your identify provider? We're working on it - [reach out](https://www.sourcebot.dev/contact) to us to learn more</Note>

If you're using Sourcebot Cloud, or are self-hosting with [authentication](/self-hosting/more/authentication) enabled, you may have multiple members in your organization. Each
member has a role which defines their permissions:
Each member has a role which defines their permissions within an organization:

| Role | Permission |
| :--- | :--------- |
Expand Down
Binary file added docs/images/api_key.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/images/join_request_email.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified docs/images/login.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/images/login_basic.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/images/pending_approval.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
59 changes: 0 additions & 59 deletions docs/self-hosting/configuration.mdx

This file was deleted.

109 changes: 109 additions & 0 deletions docs/self-hosting/configuration/authentication.mdx
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.

![Login Page](/images/login.png)


# 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)

### Google
---

[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)
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,6 @@ sidebarTitle: Declarative config

import ConfigSchema from '/snippets/schemas/v3/index.schema.mdx'

<Warning>
Declaratively defining `connections` is not available when [multi-tenancy](/self-hosting/more/tenancy) is enabled.
</Warning>

Some teams require Sourcebot to be configured via a file (where it can be stored in version control, run through CI/CD pipelines, etc.) instead of a web UI. For more information on configuring connections, see this [overview](/docs/connections/overview).


Expand Down
Loading