Skip to content

Commit 7f0ca0a

Browse files
authored
Merge branch 'sourcebot-dev:main' into main
2 parents 198cdf3 + eb20027 commit 7f0ca0a

51 files changed

Lines changed: 764 additions & 405 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

CHANGELOG.md

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,19 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
77

88
## [Unreleased]
99

10+
## [4.5.3] - 2025-07-20
11+
12+
### Changed
13+
- Relicense core to FSL-1.1-ALv2. [#388](https://github.com/sourcebot-dev/sourcebot/pull/388)
14+
15+
### Added
16+
- Added `GITLAB_CLIENT_QUERY_TIMEOUT_SECONDS` env var to configure the GitLab client's query timeout. [#390](https://github.com/sourcebot-dev/sourcebot/pull/390)
17+
18+
## [4.5.2] - 2025-07-19
19+
1020
### Changed
1121
- Fixed typos in UI, docs, code [#369](https://github.com/sourcebot-dev/sourcebot/pull/369)
22+
- Add anonymous access option to core and deprecate the `enablePublicAccess` config setting. [#385](https://github.com/sourcebot-dev/sourcebot/pull/385)
1223

1324
## [4.5.1] - 2025-07-14
1425

LICENSE

Lines changed: 0 additions & 25 deletions
This file was deleted.

LICENSE.md

Lines changed: 115 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,115 @@
1+
Copyright (c) 2025 Taqla Inc.
2+
3+
Portions of this software are licensed as follows:
4+
5+
- All content that resides under the "ee/", "packages/web/src/ee/", and "packages/shared/src/ee/" directories of this repository, if these directories exist, is licensed under the license defined in "ee/LICENSE".
6+
- All third party components incorporated into the Sourcebot Software are licensed under the original license provided by the owner of the applicable component.
7+
- Content outside of the above mentioned directories or restrictions above is available under the "Functional Source License" as defined below.
8+
9+
---
10+
11+
# Functional Source License, Version 1.1, ALv2 Future License
12+
13+
## Abbreviation
14+
15+
FSL-1.1-ALv2
16+
17+
## Notice
18+
19+
Copyright 2025 Taqla Inc.
20+
21+
## Terms and Conditions
22+
23+
### Licensor ("We")
24+
25+
The party offering the Software under these Terms and Conditions.
26+
27+
### The Software
28+
29+
The "Software" is each version of the software that we make available under
30+
these Terms and Conditions, as indicated by our inclusion of these Terms and
31+
Conditions with the Software.
32+
33+
### License Grant
34+
35+
Subject to your compliance with this License Grant and the Patents,
36+
Redistribution and Trademark clauses below, we hereby grant you the right to
37+
use, copy, modify, create derivative works, publicly perform, publicly display
38+
and redistribute the Software for any Permitted Purpose identified below.
39+
40+
### Permitted Purpose
41+
42+
A Permitted Purpose is any purpose other than a Competing Use. A Competing Use
43+
means making the Software available to others in a commercial product or
44+
service that:
45+
46+
1. substitutes for the Software;
47+
48+
2. substitutes for any other product or service we offer using the Software
49+
that exists as of the date we make the Software available; or
50+
51+
3. offers the same or substantially similar functionality as the Software.
52+
53+
Permitted Purposes specifically include using the Software:
54+
55+
1. for your internal use and access;
56+
57+
2. for non-commercial education;
58+
59+
3. for non-commercial research; and
60+
61+
4. in connection with professional services that you provide to a licensee
62+
using the Software in accordance with these Terms and Conditions.
63+
64+
### Patents
65+
66+
To the extent your use for a Permitted Purpose would necessarily infringe our
67+
patents, the license grant above includes a license under our patents. If you
68+
make a claim against any party that the Software infringes or contributes to
69+
the infringement of any patent, then your patent license to the Software ends
70+
immediately.
71+
72+
### Redistribution
73+
74+
The Terms and Conditions apply to all copies, modifications and derivatives of
75+
the Software.
76+
77+
If you redistribute any copies, modifications or derivatives of the Software,
78+
you must include a copy of or a link to these Terms and Conditions and not
79+
remove any copyright notices provided in or with the Software.
80+
81+
### Disclaimer
82+
83+
THE SOFTWARE IS PROVIDED "AS IS" AND WITHOUT WARRANTIES OF ANY KIND, EXPRESS OR
84+
IMPLIED, INCLUDING WITHOUT LIMITATION WARRANTIES OF FITNESS FOR A PARTICULAR
85+
PURPOSE, MERCHANTABILITY, TITLE OR NON-INFRINGEMENT.
86+
87+
IN NO EVENT WILL WE HAVE ANY LIABILITY TO YOU ARISING OUT OF OR RELATED TO THE
88+
SOFTWARE, INCLUDING INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES,
89+
EVEN IF WE HAVE BEEN INFORMED OF THEIR POSSIBILITY IN ADVANCE.
90+
91+
### Trademarks
92+
93+
Except for displaying the License Details and identifying us as the origin of
94+
the Software, you have no right under these Terms and Conditions to use our
95+
trademarks, trade names, service marks or product names.
96+
97+
## Grant of Future License
98+
99+
We hereby irrevocably grant you an additional license to use the Software under
100+
the Apache License, Version 2.0 that is effective on the second anniversary of
101+
the date we make the Software available. On or after that date, you may use the
102+
Software under the Apache License, Version 2.0, in which case the following
103+
will apply:
104+
105+
Licensed under the Apache License, Version 2.0 (the "License"); you may not use
106+
this file except in compliance with the License.
107+
108+
You may obtain a copy of the License at
109+
110+
http://www.apache.org/licenses/LICENSE-2.0
111+
112+
Unless required by applicable law or agreed to in writing, software distributed
113+
under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
114+
CONDITIONS OF ANY KIND, either express or implied. See the License for the
115+
specific language governing permissions and limitations under the License.

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@
4444

4545
# About
4646

47-
Sourcebot is the open source Sourcegraph alternative. Index all your repos and branches across multiple code hosts (GitHub, GitLab, Bitbucket, Gitea, or Gerrit) and search through them using a blazingly fast interface.
47+
Sourcebot lets you index all your repos and branches across multiple code hosts (GitHub, GitLab, Bitbucket, Gitea, or Gerrit) and search through them using a blazingly fast interface.
4848

4949
https://github.com/user-attachments/assets/ced355f3-967e-4f37-ae6e-74ab8c06b9ec
5050

demo-site-config.json

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -238,7 +238,6 @@
238238
}
239239
},
240240
"settings": {
241-
"reindexIntervalMs": 86400000, // 24 hours
242-
"enablePublicAccess": true
241+
"reindexIntervalMs": 86400000 // 24 hours
243242
}
244243
}

docs/docs.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,7 @@
7373
"pages": [
7474
"docs/configuration/auth/overview",
7575
"docs/configuration/auth/providers",
76-
"docs/configuration/auth/inviting-members",
76+
"docs/configuration/auth/access-settings",
7777
"docs/configuration/auth/roles-and-permissions",
7878
"docs/configuration/auth/faq"
7979
]
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
---
2+
title: Access Settings
3+
sidebarTitle: Access settings
4+
---
5+
6+
There are various settings to control how users access your Sourcebot deployment.
7+
8+
# Anonymous access
9+
10+
<Note>Anonymous access cannot be enabled if you have an enterprise license. If you have any questions about this restriction [reach out to us](https://www.sourcebot.dev/contact).</Note>
11+
12+
By default, your Sourcebot deployment is gated with a login page. If you'd like users to access the deployment anonymously, you can enable anonymous access.
13+
14+
This can be enabled by navigating to **Settings -> Access** or by setting the `FORCE_ENABLE_ANONYMOUS_ACCESS` environment variable.
15+
16+
When accessing Sourcebot anonymously, a user's permissions are limited to that of the [Guest](/docs/configuration/auth/roles-and-permissions) role.
17+
18+
# Member Approval
19+
20+
By default, Sourcebot requires new members to be approved by the owner of the deployment. This section explains how approvals work and how
21+
to configure this behavior.
22+
23+
### Configuration
24+
Member approval can be configured by the owner of the deployment by navigating to **Settings -> Members**:
25+
26+
![Member Approval Toggle](/images/member_approval_toggle.png)
27+
28+
### Managing Requests
29+
30+
If member approval is enabled, new members will be asked to submit a join request after signing up. They will not have access to the Sourcebot deployment
31+
until this request is approved by the owner.
32+
33+
The owner can see and manage all pending join requests by navigating to **Settings -> Members**.
34+
35+
## Invite link
36+
37+
If member approval is required, an owner of the deployment can enable an invite link. When enabled, users
38+
can use this invite link to register and be automatically added to the organization without approval:
39+
40+
![Invite Link Toggle](/images/invite_link_toggle.png)

docs/docs/configuration/auth/inviting-members.mdx

Lines changed: 0 additions & 30 deletions
This file was deleted.

docs/docs/configuration/auth/roles-and-permissions.mdx

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,4 +10,5 @@ Each member has a role which defines their permissions within an organization:
1010
| Role | Permission |
1111
| :--- | :--------- |
1212
| `Owner` | Each organization has a single `Owner`. This user has full access rights, including: connection management, organization management, and inviting new members. |
13-
| `Member` | Read-only access to the organization. A `Member` can search across the repos indexed by an organization's connections, but may not manage the organization or its connections. |
13+
| `Member` | Read-only access to the organization. A `Member` can search across the repos indexed by an organization's connections, as well as view the organizations configuration and member list. However, they cannot modify this configuration or invite new members. |
14+
| `Guest` | When accessing Sourcebot [anonymously](/docs/configuration/auth/access-settings#anonymous-access), a user has the `Guest` role. `Guest`'s can search across repos indexed by an organization's connections, but cannot view any information regarding the organizations configuration or members. |

docs/docs/configuration/environment-variables.mdx

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,11 +21,13 @@ The following environment variables allow you to configure your Sourcebot deploy
2121
| `DATABASE_DATA_DIR` | `$DATA_CACHE_DIR/db` | <p>The data directory for the default Postgres database.</p> |
2222
| `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> |
2323
| `EMAIL_FROM_ADDRESS` | `-` | <p>The email address that transactional emails will be sent from. See [this doc](/docs/configuration/transactional-emails) for more info.</p> |
24+
| `FORCE_ENABLE_ANONYMOUS_ACCESS` | `false` | <p>When enabled, [anonymous access](/docs/configuration/auth/access-settings#anonymous-access) to the organization will always be enabled</p>
2425
| `REDIS_DATA_DIR` | `$DATA_CACHE_DIR/redis` | <p>The data directory for the default Redis instance.</p> |
2526
| `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> |
2627
| `REDIS_REMOVE_ON_COMPLETE` | `0` | <p>Controls how many completed jobs are allowed to remain in Redis queues</p> |
2728
| `REDIS_REMOVE_ON_FAIL` | `100` | <p>Controls how many failed jobs are allowed to remain in Redis queues</p> |
2829
| `REPO_SYNC_RETRY_BASE_SLEEP_SECONDS` | `60` | <p>The base sleep duration (in seconds) for exponential backoff when retrying repository sync operations that fail</p> |
30+
| `GITLAB_CLIENT_QUERY_TIMEOUT_SECONDS` | `600` | <p>The timeout duration (in seconds) for GitLab client queries</p> |
2931
| `SHARD_MAX_MATCH_COUNT` | `10000` | <p>The maximum shard count per query</p> |
3032
| `SMTP_CONNECTION_URL` | `-` | <p>The url to the SMTP service used for sending transactional emails. See [this doc](/docs/configuration/transactional-emails) for more info.</p> |
3133
| `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> |

0 commit comments

Comments
 (0)