Commit graph

201 commits

Author SHA1 Message Date
Brendan Kellam
0ff34d105d
Inline secret creation (#207) 2025-02-22 10:37:59 -08:00
msukkari
dc42a76e03 fix new connection complete callback route 2025-02-21 11:21:38 -08:00
msukkari
fa0bb82921 add log for health check 2025-02-21 10:44:11 -08:00
Brendan Kellam
70e309b310
Redeem UX pass (#204) 2025-02-21 10:42:53 -08:00
Brendan Kellam
fee0767981
Refined onboarding flow (#202) 2025-02-21 10:32:10 -08:00
msukkari
a79c162d9c add health check endpoint 2025-02-21 09:54:17 -08:00
Brendan Kellam
5076ee7f05
[temp] disable polling everywhere (#205) 2025-02-20 16:47:49 -08:00
msukkari
0ac9509fab log upsert stats 2025-02-20 09:42:54 -08:00
msukkari
c930fe0d8b revert repo compile update logic to upsert loop 2025-02-19 18:54:50 -08:00
msukkari
62e64c1c25 add orgid unique constraint to repo 2025-02-19 18:54:04 -08:00
Michael Sukkarieh
fdd71cfcfe
add better visualization for connection/repo errors and warnings (#201)
* replace upsert with seperate create many and raw update many calls

* add bulk repo status update and queue addition with priority

* add support for managed redis

* add note for changing raw sql on schema change

* add error package and use BackendException in connection manager

* handle connection failure display on web app

* add warning banner for not found orgs/repos/users

* add failure handling for gerrit

* add gitea notfound warning support

* add warning icon in connections list

* style nits

* add failed repo vis in connections list

* added retry failed repo index buttons

* move nav indicators to client with polling

* fix indicator flash issue and truncate large list results

* display error nav better

* truncate failed repo list in connection list item

* fix merge error

* fix merge bug

* add connection util file [wip]

* refactor notfound fetch logic and add missing error package to dockerfile

* move repeated logic to function and add zod schema for syncStatusMetadata
2025-02-19 18:10:22 -08:00
msukkari
b99a648670 fix token examples in schema 2025-02-19 15:56:03 -08:00
msukkari
63af99aa59 remove non secret token options 2025-02-19 14:23:26 -08:00
Michael Sukkarieh
5d7a77bd92
db performance improvements and job resilience (#200)
* replace upsert with seperate create many and raw update many calls

* add bulk repo status update and queue addition with priority

* add support for managed redis

* add note for changing raw sql on schema change
2025-02-19 10:26:13 -08:00
bkellam
390d92db92 Fix build 2025-02-18 11:37:52 -08:00
Brendan Kellam
bbf8b9be86
Magic links (#199)
* wip on magic link support

* Switch to nodemailer / resend for transactional mail

* Further cleanup

* Add stylized email using react-email

* fix
2025-02-18 11:34:07 -08:00
Brendan Kellam
f652ca526e
Membership settings rework (#198)
* Add refined members list

* futher progress on members settings polish

* Remove old components

* feedback
2025-02-18 11:27:19 -08:00
msukkari
e09b21f6b9 add config upsert timeout env var 2025-02-15 17:27:24 -08:00
msukkari
e17331a672 fix build errors and add index concurrency env var 2025-02-15 16:58:05 -08:00
Michael Sukkarieh
54d14ea98e
add retries for 429 issues (#196)
* add connection compile retry and hard repo limit

* add more retry checks

* cleanup unused change

* address feedback
2025-02-15 16:37:50 -08:00
bkellam
331a41888e improved fix 2025-02-15 10:20:57 -08:00
bkellam
2111a77a5c Fix build with suspense boundary 2025-02-15 10:03:13 -08:00
Michael Sukkarieh
e0d363420b
connections qol improvements (#195)
* add client side polling to connections list

* properly fetch repo image url

* add client polling to connection management page, and add ability to sync failed connections
2025-02-15 10:00:44 -08:00
Michael Sukkarieh
3be3680ee2
cleanup org's repos and shards if it's inactive (#194)
* add stripe subscription status and webhook

* add inactive org repo cleanup logic

* mark reactivated org connections for sync
2025-02-15 09:58:17 -08:00
Brendan Kellam
86a80a4f73
Credentials provider (#192)
* email password functionality

* feedback
2025-02-14 21:00:45 -08:00
msukkari
354b004402 change csrf cookie to secure not host 2025-02-14 12:32:36 -08:00
msukkari
4cf3024967 fix apos usage in redeem page 2025-02-14 11:35:51 -08:00
Michael Sukkarieh
da33220289
add back gitlab, gitea, and gerrit support (#184)
* add non github config definitions

* refactor github config compilation to seperate file

* add gitlab config compilation

* Connection management (#183)

* wip gitlab repo sync support

* fix gitlab zoekt metadata

* add gitea support

* add gerrit support

* Connection management (#183)

* add gerrit config compilation

* Connection management (#183)

---------

Co-authored-by: Brendan Kellam <bshizzle1234@gmail.com>
2025-02-14 10:58:53 -08:00
Michael Sukkarieh
e2e5433d20
enforce owner perms (#191)
* add make owner logic, and owner perms for removal, invite, and manage subscription

* add change billing email card to billing settings

* enforce owner role in action level

* remove unused hover card component

* cleanup
2025-02-14 09:25:22 -08:00
msukkari
26cc70cc11 fix publishible stripe key handling in docker container 2025-02-13 18:45:27 -08:00
msukkari
888a2e3924 change stripe init to be behind function 2025-02-13 16:42:33 -08:00
msukkari
6234967287 merge v3 changes 2025-02-13 16:22:23 -08:00
msukkari
fbd3e41652 fix more nits 2025-02-13 16:20:01 -08:00
bkellam
8fb438b0ea remove providers check 2025-02-13 16:17:03 -08:00
msukkari
674511a2bb fix nits 2025-02-13 16:14:34 -08:00
Michael Sukkarieh
7c187121c8
Add stripe billing logic (#190)
* add side bar nav in settings page

* improve styling of members page

* wip adding stripe checkout button

* wip onboarding flow

* add stripe subscription id to org

* save stripe session id and add manage subscription button in settings

* properly block access to pages if user isn't in an org

* wip add paywall

* Domain support

* add back paywall and also add support for incrememnting seat count on invite redemption

* prevent self invite

* action button styling in settings and toast on copy

* add ability to remove member from org

* move stripe product id to env var

* add await for blocking loop in backend

* add subscription info to billing page

* handle trial case in billing info page

* add trial duration indicator to nav bar

* check if domain starts or ends with dash

* remove unused no org component

* remove package lock file and fix prisma dep version

* revert dep version updates

* fix yarn.lock

* add auth and membership check to fetchSubscription

* properly handle invite redeem with no valid subscription case

* change back fetch subscription to not require org membership

* add back subscription check in invite redeem page

---------

Co-authored-by: bkellam <bshizzle1234@gmail.com>
2025-02-13 15:52:33 -08:00
msukkari
87efbf7d69 add back subscription check in invite redeem page 2025-02-13 15:41:18 -08:00
msukkari
ea4c29daec change back fetch subscription to not require org membership 2025-02-13 15:36:48 -08:00
msukkari
cf97955b23 properly handle invite redeem with no valid subscription case 2025-02-13 15:21:31 -08:00
msukkari
0f43c00aa1 add auth and membership check to fetchSubscription 2025-02-13 15:11:50 -08:00
msukkari
d463748f78 revert dep version updates 2025-02-13 14:27:41 -08:00
msukkari
b0cbcf046c remove package lock file and fix prisma dep version 2025-02-13 13:55:18 -08:00
Brendan Kellam
e6ee45c76d
Generate AUTH_SECRET if not provided (#189) 2025-02-13 13:23:30 -08:00
msukkari
e369925dc3 remove unused no org component 2025-02-13 11:46:36 -08:00
msukkari
5a3eab2f83 check if domain starts or ends with dash 2025-02-13 11:41:32 -08:00
msukkari
a70c57715c merge v3 changes into billing branch 2025-02-13 11:32:17 -08:00
msukkari
8929d05b88 add trial duration indicator to nav bar 2025-02-13 11:19:06 -08:00
msukkari
e2c90b8fcc handle trial case in billing info page 2025-02-13 11:07:04 -08:00
msukkari
193c7e0732 add subscription info to billing page 2025-02-13 10:52:34 -08:00
msukkari
875f9b8586 add await for blocking loop in backend 2025-02-13 10:30:14 -08:00
msukkari
0b4140f81c move stripe product id to env var 2025-02-13 10:24:12 -08:00
msukkari
84e8ec2102 add ability to remove member from org 2025-02-13 10:15:06 -08:00
msukkari
258585e981 action button styling in settings and toast on copy 2025-02-12 21:19:15 -08:00
msukkari
8ad6ba7ab0 prevent self invite 2025-02-12 19:50:44 -08:00
msukkari
6caed350d3 add back paywall and also add support for incrememnting seat count on invite redemption 2025-02-12 16:48:13 -08:00
bkellam
19780aaecf Attempt #4 2025-02-12 15:10:29 -08:00
bkellam
ba333ddb21 Fix generate script race condition 2025-02-12 15:04:15 -08:00
msukkari
53dac384af merge domain changes 2025-02-12 14:55:35 -08:00
bkellam
98becf531a fix attempt #3: Do not require a encrpytion key at build time 2025-02-12 14:35:28 -08:00
bkellam
d17c90a8f3 attempt 2 2025-02-12 14:17:49 -08:00
bkellam
e0976e443f Add default for AUTH_URL in attempt to fix build 2025-02-12 14:10:09 -08:00
Brendan Kellam
34c9c1d9a8
Domain support (#188) 2025-02-12 13:51:44 -08:00
bkellam
8d2c731b88 Domain support 2025-02-12 13:45:12 -08:00
msukkari
0a79f7ca80 wip add paywall 2025-02-12 13:03:31 -08:00
msukkari
3ad6c2de48 properly block access to pages if user isn't in an org 2025-02-12 09:29:00 -08:00
msukkari
e7f8f51c05 save stripe session id and add manage subscription button in settings 2025-02-11 19:06:40 -08:00
msukkari
33ae585327 add stripe subscription id to org 2025-02-11 18:40:42 -08:00
msukkari
9665f149cd wip onboarding flow 2025-02-11 17:27:02 -08:00
msukkari
fde21794f5 wip adding stripe checkout button 2025-02-10 19:26:42 -08:00
msukkari
04991fd1e8 improve styling of members page 2025-02-10 18:14:13 -08:00
msukkari
23f3c605ec add side bar nav in settings page 2025-02-10 17:56:36 -08:00
msukkari
7da8a7f959 fix web build errors 2025-02-10 14:55:40 -08:00
msukkari
5858e31810 add google logo to google oauth 2025-02-10 14:45:20 -08:00
msukkari
70f7729463 fix reference to header component in connections 2025-02-10 14:40:24 -08:00
Michael Sukkarieh
90550181af
add invite system and google oauth provider (#185)
* add settings page with members list

* add invite to schema and basic create form

* add invite table

* add basic invite link copy button

* add auth invite accept case

* add non auth logic

* add google oauth provider
2025-02-10 14:31:38 -08:00
Brendan Kellam
846d73b0e6
Connection management (#183) 2025-02-04 15:04:05 -05:00
msukkari
94908c030f dummy commit to trigger v3 workflows to test 2025-01-31 11:15:54 -08:00
msukkari
2b6125be0c add deployment action for staging image 2025-01-30 13:31:59 -08:00
msukkari
f92acc0404 try to move encryption key env decleration in docker file to fix build issues 2025-01-30 12:49:04 -08:00
msukkari
9946901044 add initial logic for staging environment 2025-01-30 10:23:47 -08:00
Michael Sukkarieh
dffbbae41d
adds garbage collection for repos (#182)
* refactor repo indexing logic into RepoManager

* wip cleanup stale repos

* add rest of gc logic

* set status to indexing properly
2025-01-29 09:05:20 -08:00
Michael Sukkarieh
75d4189f25
enforce tenancy on search and repo listing endpoints (#181)
* enforce tenancy on search and repo listing

* remove orgId from request schemas
2025-01-28 10:39:59 -08:00
Michael Sukkarieh
31114a9d95
add concept of secrets (#180)
* add @sourcebot/schemas package

* migrate things to use the schemas package

* Dockerfile support

* add secret table to schema

* Add concept of connection manager

* Rename Config->Connection

* Handle job failures

* Add join table between repo and connection

* nits

* create first version of crypto package

* add crypto package as deps to others

* forgot to add package changes

* add server action for adding and listing secrets, create test page for it

* add secrets page to nav menu

* add secret to config and support fetching it in backend

* reset secret form on successful submission

* add toast feedback for secrets form

* add instructions for adding encryption key to dev instructions

* add encryption key support in docker file

* add delete secret button

* fix nits from pr review

---------

Co-authored-by: bkellam <bshizzle1234@gmail.com>
2025-01-27 14:07:07 -08:00
Brendan Kellam
dd8ff6edb0
Connection management (#178) 2025-01-24 13:16:08 -08:00
Brendan Kellam
bae7ca3438
Add @sourcebot/schemas package (#177) 2025-01-24 10:51:49 -08:00
Brendan Kellam
78c9111fa0
init (#176) 2025-01-23 14:06:40 -08:00
Brendan Kellam
0322cd8f32
Connection creation form (#175) 2025-01-23 10:26:41 -08:00
Michael Sukkarieh
a5006c52fe
Migrate to postgres (#174)
* spin up postgres in docker container

* get initial pol of postgres db working in docker image

* spin up postgres server in dev case

* updated syncedAt date after config sync:

* remove unnecessary port expose in docker file
2025-01-23 10:23:46 -08:00
msukkari
8a3521b080 updated syncedAt date after config sync: 2025-01-23 09:08:30 -08:00
Brendan Kellam
9c120c6b0a
Organization switching & active org management (#173) 2025-01-21 14:50:16 -08:00
Michael Sukkarieh
7c6adf17aa
Multi tenancy support in config syncer (#171)
* [wip] initial mt support in config syncer

* Move logout button & profile picture into settings dropdown (#172)

* update sync status properly and fix bug with multiple config in db case

* make config path required in single tenant mode

NOTE: deleting config/repos is currently not supported in multi tenancy case. Support for this will be added in a future PR

---------

Co-authored-by: Brendan Kellam <bshizzle1234@gmail.com>
2025-01-21 11:50:35 -08:00
Brendan Kellam
a5091fb900
Move logout button & profile picture into settings dropdown (#172) 2025-01-19 12:52:13 -08:00
Brendan Kellam
5d253ffa12
Add Org table (#167) 2025-01-16 16:18:16 -08:00
Brendan Kellam
6cf10b4988
Authentication (#164) 2025-01-16 15:24:13 -08:00
Michael Sukkarieh
7029aa70c1
parallelize repo indexing (#163)
* hacked together a example of using zoekt grpc api

* provide tenant id to zoekt git indexer

* update zoekt version to point to multitenant branch

* pipe tenant id through header to zoekt

* remove incorrect submodule reference and settings typo

* update zoekt commit

* remove unused yarn script

* remove unused grpc client in web server

* remove unneeded deps and improve tenant id log

* pass tenant id when creating repo in db

* add mt yarn script

* add pol of bullmq into backend

* add better error handling and concurrency setting

* spin up redis instance in dockerfile

* cleanup transaction logic when adding repos to index queue

* add NEW index status fetch condition

* move bullmq deps to backend

---------

Co-authored-by: bkellam <bshizzle1234@gmail.com>
2025-01-15 15:44:42 -08:00
Michael Sukkarieh
553f5d25f7
Add tenant ID concept into web app and backend (#160)
* hacked together a example of using zoekt grpc api

* provide tenant id to zoekt git indexer

* update zoekt version to point to multitenant branch

* pipe tenant id through header to zoekt

* remove incorrect submodule reference and settings typo

* update zoekt commit

* remove unused yarn script

* remove unused grpc client in web server

* remove unneeded deps and improve tenant id log

* pass tenant id when creating repo in db

* add mt yarn script

* add nocheckin comment to tenant id in v2 schema

---------

Co-authored-by: bkellam <bshizzle1234@gmail.com>
2025-01-14 16:46:36 -08:00
Brendan Kellam
15b9e777e4
SQL Database (#157) 2025-01-14 13:37:31 -08:00
dependabot[bot]
11eacb773e
Bump next from 14.2.15 to 14.2.21 in /packages/web (#153)
Bumps [next](https://github.com/vercel/next.js) from 14.2.15 to 14.2.21.
- [Release notes](https://github.com/vercel/next.js/releases)
- [Changelog](https://github.com/vercel/next.js/blob/canary/release.js)
- [Commits](https://github.com/vercel/next.js/compare/v14.2.15...v14.2.21)

---
updated-dependencies:
- dependency-name: next
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Brendan Kellam <bshizzle1234@gmail.com>
2025-01-09 13:37:25 -08:00
Michael Sukkarieh
d269a8cbe6
implement raw remote git repo support (#152)
* implement raw remote git repo support

* add changelog entry
2025-01-09 09:10:30 -08:00
bkellam
672832c993 remove Inter font since it was causing build failures 2025-01-07 13:14:31 -08:00