Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
40 commits
Select commit Hold shift + click to select a range
f34bbd8
feat: renamed databases page to connections
OverDsh Feb 3, 2026
53376a6
feat: create the RobloxCredentialsService
OverDsh Feb 3, 2026
c9ffdc6
feat: create api routes for RobloxCredentialService
OverDsh Feb 4, 2026
b4c6fb0
refactor: renamed errors.ts to api-utils.ts
OverDsh Feb 4, 2026
40381cc
refactor: create fetcher util to use in controllers
OverDsh Feb 4, 2026
35fbb2b
feat: create frontend hooks for RobloxCredentialService
OverDsh Feb 4, 2026
d2f7e93
fix: include roblox credentials table in drizzle schema
OverDsh Feb 4, 2026
9247a97
fix: return mutations in useRobloxCredentialMutations
OverDsh Feb 4, 2026
2a46c18
fix: remove type from RobloxCredentialInfoSchema
OverDsh Feb 4, 2026
7a7a2e5
enhancement: remove unused imports
OverDsh Feb 4, 2026
bc10b1b
feat: implement roblox credentials data table in the connections page
OverDsh Feb 4, 2026
bda1e0c
enhancement: close form dialog after running callback
OverDsh Feb 4, 2026
3f06eeb
enhancement: set submit button text to "Link" in RobloxCredentialDialog
OverDsh Feb 4, 2026
ad43bcf
fix: return success: true after rotating roblox credential key
OverDsh Feb 4, 2026
dd9ed2e
feat: implement rename and roatate roblox credential
OverDsh Feb 4, 2026
50f2dd5
enhancement: require roblox credential key to be at least 1 character
OverDsh Feb 4, 2026
7fe2fd6
enhancement: add a 5 min stale time to hooks using react query
OverDsh Feb 4, 2026
c075ee8
chore: updated radix ui
OverDsh Feb 15, 2026
0ff499f
feat: install badge and popover components
OverDsh Feb 15, 2026
95ba04f
feat: add refresh credential method, and various QOL improvements
OverDsh Feb 15, 2026
7ffda68
feat: implement credential status on the frontend
OverDsh Feb 15, 2026
1dc5860
fix: fix request object being cleared by the linter because treated as
OverDsh Feb 15, 2026
93cf03d
enhancement: change time format to be consistent and add View Profile
OverDsh Feb 15, 2026
800be1c
fix: add icon to error badge
OverDsh Feb 15, 2026
6e08cab
enhancement: changed popover style
OverDsh Feb 16, 2026
e418c33
fix: list roblox credential checked permission for rename roblox
OverDsh Feb 16, 2026
9f377ff
feat: dynamically show databases/roblox credentials data table based on
OverDsh Feb 16, 2026
7b2f7cb
fix: fix wrong key lookup for expiration date in the introspection table
OverDsh Mar 5, 2026
2e00712
refactor: move roblox credential status error message to
OverDsh Mar 7, 2026
26f2ed4
feat: add database introspection, refresh, and rotate credentials to …
OverDsh Mar 18, 2026
b8ac145
feat: add refresh and rotate API routes for databases
OverDsh Mar 18, 2026
c8ad13b
feat: add refresh status and rotate credentials actions to database c…
OverDsh Mar 18, 2026
cf61ff9
enhancement: added icons to teams list's dropdown
OverDsh Mar 20, 2026
14c6fc9
feat: add structured logger utility and SSRF URL validator
OverDsh Mar 20, 2026
94ed00d
fix: fix IDOR vulnerabilities in _useCredential and _useDatabase
OverDsh Mar 20, 2026
fd37b7d
fix: add SSRF protection, structured logging, and surface silent catch
OverDsh Mar 20, 2026
208c4e3
fix: scope turso token env to job level and ignore non-code related file
OverDsh Mar 26, 2026
a0eb9fa
fix: switched to migration, prevent job cancel to avoid mid-migration
OverDsh Mar 26, 2026
6e7db66
fix: added migration check, disabled job cancelling and fix secrets
OverDsh Mar 26, 2026
c660fa3
fix: switched to migration mode, added migration check and changed
OverDsh Mar 26, 2026
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
9 changes: 6 additions & 3 deletions .github/workflows/database_cleanup.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,10 @@ on:
pull_request:
types:
- closed
paths-ignore:
- .gitignore
- .github/**
- README.md
workflow_dispatch:
inputs:
pr_number:
Expand All @@ -13,6 +17,8 @@ on:
jobs:
cleanup_database:
runs-on: ubuntu-latest
env:
TURSO_API_TOKEN: ${{ secrets.TURSO_API_TOKEN }}
steps:
- name: Install Turso CLI
run: |
Expand All @@ -30,8 +36,5 @@ jobs:
echo "DB_NAME=$DB_NAME" >> $GITHUB_ENV

- name: Destroy Turso Database
env:
TURSO_API_TOKEN: ${{ secrets.TURSO_API_TOKEN }}
DB_NAME: ${{ env.DB_NAME }}
run: |
turso db destroy "$DB_NAME" --yes || echo "Database already gone or never existed"
4 changes: 2 additions & 2 deletions .github/workflows/dev_deploy.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ permissions:

concurrency:
group: deployment-dev
cancel-in-progress: true
cancel-in-progress: false

jobs:
deploy:
Expand All @@ -36,7 +36,7 @@ jobs:
TURSO_DATABASE_URL: ${{ secrets.DEV_DB_URL }}
TURSO_AUTH_TOKEN: ${{ secrets.DEV_DB_TOKEN }}
run: |
npx drizzle-kit push
npx drizzle-kit migrate

- name: Make Development Deployment
env:
Expand Down
40 changes: 31 additions & 9 deletions .github/workflows/pr_preview.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,15 +17,37 @@ on:
type: number

concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number }}
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.event.inputs.pr_number }}
cancel-in-progress: true

permissions:
pull-requests: write
contents: read

jobs:
check-migrations:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4

- uses: actions/setup-node@v4
with:
node-version: 20
cache: "npm"

- run: npm ci

- name: Check Migrations
run: |
npx drizzle-kit generate
if [ -n "$(git status --porcelain drizzle/)" ]; then
echo "⚠️ Missing migration files! Please run npx drizzle-kit generate..."
exit 1
fi

deploy:
needs: [check-migrations]
environment: Preview
runs-on: ubuntu-latest
steps:
Expand Down Expand Up @@ -59,7 +81,7 @@ jobs:
TURSO_API_TOKEN: ${{ secrets.TURSO_API_TOKEN }}
run: |
# Create a branch from the dev database with the generated safe name
turso db create ${{ env.SAFE_BRANCH_NAME }} --from-db dev || true
turso db show ${{ env.SAFE_BRANCH_NAME }} &> /dev/null || turso db create ${{ env.SAFE_BRANCH_NAME }} --from-db dev

- name: Get Database Credentials
env:
Expand All @@ -82,7 +104,7 @@ jobs:
TURSO_AUTH_TOKEN: ${{ env.DB_TOKEN }}
run: |
# Push changes to the created database
npx drizzle-kit push
npx drizzle-kit migrate

- name: Make Preview Deployment
id: vercel-deployment
Expand All @@ -92,17 +114,17 @@ jobs:
VERCEL_PROJECT_ID: ${{ secrets.VERCEL_PROJECT_ID }}
run: |
# Make a preview deployment with the created database
DEPLOYMENT_URL=$(npx vercel deploy --target preview --token ${{ secrets.VERCEL_TOKEN }} \
--build-env TURSO_DATABASE_URL=${{ env.DB_URL }} \
--build-env TURSO_AUTH_TOKEN=${{ env.DB_TOKEN }} \
--env TURSO_DATABASE_URL=${{ env.DB_URL }} \
--env TURSO_AUTH_TOKEN=${{ env.DB_TOKEN }} \
DEPLOYMENT_URL=$(npx vercel deploy --target preview --token "$VERCEL_TOKEN" \
--build-env TURSO_DATABASE_URL="$DB_URL" \
--build-env TURSO_AUTH_TOKEN="$DB_TOKEN" \
--env TURSO_DATABASE_URL="$DB_URL" \
--env TURSO_AUTH_TOKEN="$DB_TOKEN" \
--yes --logs)

echo "DEPLOYMENT_URL=$DEPLOYMENT_URL" >> $GITHUB_ENV

- name: Comment on PR
if: always()
if: always() && env.PR_NUM != ''
uses: actions/github-script@v8
env:
DEPLOYMENT_URL: ${{ env.DEPLOYMENT_URL }}
Expand Down
28 changes: 27 additions & 1 deletion .github/workflows/production_deploy.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,34 @@ on:
- README.md
workflow_dispatch:

concurrency:
group: deployment-production
cancel-in-progress: false

jobs:
check-migrations:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4

- uses: actions/setup-node@v4
with:
node-version: 20
cache: "npm"

- run: npm ci

- name: Check Migrations
run: |
npx drizzle-kit generate
if [ -n "$(git status --porcelain drizzle/)" ]; then
echo "⚠️ Missing migration files! Please run npx drizzle-kit generate..."
exit 1
fi

deploy:
needs: [check-migrations]
runs-on: ubuntu-latest
steps:
- name: Checkout code
Expand All @@ -37,4 +63,4 @@ jobs:
VERCEL_ORG_ID: ${{ secrets.VERCEL_ORG_ID }}
VERCEL_PROJECT_ID: ${{ secrets.VERCEL_PROJECT_ID }}
run: |
npx vercel deploy --prod --yes --token ${{ secrets.VERCEL_TOKEN }}
npx vercel deploy --prod --yes --token "$VERCEL_TOKEN"
Loading
Loading