Skip to content
Merged
Show file tree
Hide file tree
Changes from 55 commits
Commits
Show all changes
59 commits
Select commit Hold shift + click to select a range
2bd2fb4
chore: update VSCode configuration files and tasks
lumpinif Feb 5, 2026
4cf3c72
feat(auth): implement getSessionWithAPIKey route
lumpinif Feb 5, 2026
ec6c347
feat(db): add isNull function to index export
lumpinif Feb 5, 2026
213808f
feat(auth): add type definitions for AuthWorkerRpc
lumpinif Feb 5, 2026
4593b35
feat(auth): enhance authentication modes and JWT support
lumpinif Feb 5, 2026
daf85c7
feat(jwt): add JWT minting script and CLI command
lumpinif Feb 5, 2026
41ee950
feat(jwt): enhance JWT minting script with environment variable updates
lumpinif Feb 5, 2026
e9ecce3
ref(auth): add example environment variable file for local development
lumpinif Feb 5, 2026
caca878
feat(auth): implement jwt auth mode and enhance navigation
lumpinif Feb 5, 2026
4a18208
feat(playground): update references from "Dashboard" to "Playground" …
lumpinif Feb 5, 2026
a020a16
feat(logging): enable activity logs and add local migration command
lumpinif Feb 5, 2026
c24dcc8
fix(auth): simplify getAuthMode function by removing redundant JWT check
lumpinif Feb 5, 2026
5f04f55
chore(vscode): update workspace and task configurations for Playground
lumpinif Feb 5, 2026
ff86ffe
chore(ui): update component configurations and formatting settings
lumpinif Feb 6, 2026
eb9e468
fix(logs): update default log limit to 10 and adjust card styling
lumpinif Feb 6, 2026
6582e0e
feat(env): introduce centralized runtime configuration and environmen…
lumpinif Feb 6, 2026
19c49db
ref(auth): add comprehensive authentication modes documentation and r…
lumpinif Feb 6, 2026
60db796
ref(auth): update environment variable configurations and improve aut…
lumpinif Feb 6, 2026
a806ab6
chore(workspace): update workspace configuration and add environment …
lumpinif Feb 7, 2026
960ee7e
pkg:auth:chore converge url/origin config
lumpinif Feb 7, 2026
30c483f
workers:v0:chore harden cors + urls
lumpinif Feb 7, 2026
7b00e4d
pkg:sdk:fix map legacy unauthorized codes
lumpinif Feb 7, 2026
ef9e23d
fix(logs): enhance error handling in log processing and export functions
lumpinif Feb 7, 2026
f96c2e9
ref(env): update environment variable configurations and remove depre…
lumpinif Feb 7, 2026
f499cdd
ref(cors): streamline CORS configuration and enhance security
lumpinif Feb 7, 2026
4bc64c9
ref(auth): update worker configuration and environment variable defin…
lumpinif Feb 7, 2026
99c2a2d
ref(vscode): enhance task configurations for environment management a…
lumpinif Feb 7, 2026
f9767b3
ref(urls): centralize URL handling and improve absolute URL resolution
lumpinif Feb 7, 2026
241d28a
ref(env): update environment variable examples and sync process
lumpinif Feb 7, 2026
5948e43
ref(auth): reorder dependencies in package.json for better clarity
lumpinif Feb 7, 2026
cb6288b
ref(dependencies): add '@deepcrawl/runtime' dependency to pnpm-lock.yaml
lumpinif Feb 7, 2026
787c60f
ref(auth): update worker configuration and environment variable defin…
lumpinif Feb 7, 2026
9923b1d
ref(config): update Biome configuration and workspace settings
lumpinif Feb 7, 2026
851ee92
ref(playground): implement API key management and fallback authentica…
lumpinif Feb 7, 2026
fbb89e7
ref(branding): implement dynamic brand name configuration
lumpinif Feb 7, 2026
f6d765c
ref(auth): enhance API key extraction and improve authorization handling
lumpinif Feb 7, 2026
9b32a17
ref(auth): enhance cookie-based authentication and API key management
lumpinif Feb 7, 2026
9bc9609
ref(env): enhance environment variable management and synchronization
lumpinif Feb 7, 2026
01493eb
ref(tasks): streamline CI checks and update package scripts
lumpinif Feb 7, 2026
d39e4b6
ref(lint): enhance lint-staged configuration with absolute path handl…
lumpinif Feb 7, 2026
ad5b4c8
ref(formatting): add default formatter for JavaScript in workspace an…
lumpinif Feb 7, 2026
5294db5
ref(husky): enhance pre-push script for changeset checks and CI valid…
lumpinif Feb 8, 2026
449fd39
chore: add changeset for '@deepcrawl/contracts' with no release
lumpinif Feb 8, 2026
d42c8da
ref(rate-limiting): implement Upstash Redis for API rate limiting
lumpinif Feb 8, 2026
c43601d
ref(rate-limiting): refactor rate limit middleware and introduce API …
lumpinif Feb 8, 2026
e1f7377
chore(deps): update package dependencies across multiple packages
lumpinif Feb 8, 2026
bc741ec
ref(auth): integrate new rate limiting configuration for authenticati…
lumpinif Feb 8, 2026
a3704b9
ref(playground): improve validation handling for playground operations
lumpinif Feb 8, 2026
e8fb9a1
feat(deploy-attribution): add Deploy Attribution Banner component and…
lumpinif Feb 8, 2026
855fbc5
chore(deps): update package dependencies to use catalog references
lumpinif Feb 8, 2026
ac1820a
feat(auth): enhance API key handling and improve logging in middleware
lumpinif Feb 8, 2026
eb6dfbc
feat(jwt): update JWT handling and configuration documentation
lumpinif Feb 8, 2026
0d4e3b2
refactor: update layout and component structures for improved clarity…
lumpinif Feb 8, 2026
32d4301
feat(jwt): enhance JWT minting process with environment key management
lumpinif Feb 8, 2026
6920b6c
refactor: update component structures and improve error handling
lumpinif Feb 8, 2026
4d36087
fix(jwt-mint): improve argument parsing and error handling
lumpinif Feb 8, 2026
9cecf3b
refactor(cors, jwt-auth): simplify trusted origins and enhance sessio…
lumpinif Feb 8, 2026
db6e9a7
feat(github-actions): add workflow to sync template branch with main
lumpinif Feb 8, 2026
cde09d7
chore(github-actions): enhance sync workflow with concurrency control
lumpinif Feb 8, 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
6 changes: 6 additions & 0 deletions .changeset/bright-taxis-remain.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
---
'deepcrawl': patch
---

fix: align worker error codes with typed SDK errors

5 changes: 5 additions & 0 deletions .changeset/contracts-none.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
'@deepcrawl/contracts': none
---

chore: internal updates, no release
23 changes: 2 additions & 21 deletions .github/workflows/validate.yml
Original file line number Diff line number Diff line change
Expand Up @@ -57,27 +57,8 @@ jobs:
if: github.event_name == 'pull_request'
run: node .github/ensure-sdk-changeset.mjs origin/${{ github.event.pull_request.base.ref }}

- name: Setup Biome
uses: biomejs/setup-biome@v2
with:
version: latest
- name: Run Biome
run: biome ci .

- name: Run ESLint (dashboard)
env:
TURBO_TOKEN: ${{ secrets.TURBO_TOKEN }}
TURBO_TEAM: ${{ vars.TURBO_TEAM }}
run: pnpm turbo run lint --filter=dashboard --no-daemon

- name: Typecheck workspace
- name: Run CI checks
env:
TURBO_TOKEN: ${{ secrets.TURBO_TOKEN }}
TURBO_TEAM: ${{ vars.TURBO_TEAM }}
run: pnpm turbo run typecheck --no-daemon

- name: Run SDK tests
run: pnpm --filter deepcrawl test -- --run

- name: Build SDK package
run: pnpm sdk-ts:build
run: pnpm check:ci
6 changes: 6 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,10 @@ dist/
.vscode/*
!.vscode/launch.json
!.vscode/*.code-snippets
!.vscode/extensions.json
!.vscode/settings.json
.vscode/settings.local.json
!.vscode/tasks.json
.idea/workspace.xml
.idea/usage.statistics.xml
.idea/shelf
Expand All @@ -28,6 +32,8 @@ dist/
.env.production
.env.test
.env.test.local
.vars
env/.env.local

.dev.vars
.dev.vars.dev
Expand Down
38 changes: 22 additions & 16 deletions .husky/pre-push
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
#!/usr/bin/env sh

set -e

# 1) Ensure local branch is up to date with remote
Expand Down Expand Up @@ -36,23 +38,27 @@ if [ -n "$COMMIT_MESSAGE" ] && printf '%s' "$COMMIT_MESSAGE" | grep -qiE '\[(ski
exit 0
fi

echo "⚡ Running turborepo lint and typecheck tasks..."
pnpm turbo run lint typecheck --parallel

# 3) Detect changed files vs upstream (robust on Windows/Git Bash)
UPSTREAM=$(git rev-parse --abbrev-ref --symbolic-full-name @{u} 2>/dev/null || echo "")
if [ -n "$UPSTREAM" ]; then
CHANGED_FILES=$(git diff --name-only "$UPSTREAM"...HEAD 2>/dev/null || echo "")
else
# Fallback: last commit range
CHANGED_FILES=$(git diff --name-only HEAD~1 HEAD 2>/dev/null || echo "")
BASE_REMOTE="origin"
if ! git remote get-url "$BASE_REMOTE" >/dev/null 2>&1; then
BASE_REMOTE="$PUSH_REMOTE"
fi
BASE_BRANCH="main"
BASE_REF="$BASE_REMOTE/$BASE_BRANCH"

# 4) If SDK paths changed, run SDK tests
# Use a regex that's safe with spaces by enumerating paths explicitly.
if printf '%s\n' "$CHANGED_FILES" | grep -qE '^(packages/sdks/js-ts|packages/types|packages/contracts)(/|$)'; then
echo "🧪 SDK-related files changed. Running SDK test suite..."
pnpm -C packages/sdks/js-ts test
# Keep parity with CI's PR-only validation steps.
# CI only runs these checks on pull_request, so we skip them on main.
if [ "$CURRENT_BRANCH" != "$BASE_BRANCH" ]; then
echo "🔄 Syncing base ref for changeset checks: $BASE_REF"
git fetch "$BASE_REMOTE" "$BASE_BRANCH" --depth=1

echo "🧾 Summarizing pending changesets (since $BASE_REF)..."
pnpm changeset status --since="$BASE_REF"

echo "🧩 Ensuring SDK changes include required changesets (base: $BASE_REF)..."
node .github/ensure-sdk-changeset.mjs "$BASE_REF"
else
echo "✅ No SDK-related files changed. Skipping SDK tests."
echo "ℹ️ On $BASE_BRANCH branch; skipping PR-only changeset checks."
fi

echo "⚡ Running CI-equivalent checks..."
pnpm check:ci
1 change: 0 additions & 1 deletion .npmrc
Original file line number Diff line number Diff line change
@@ -1,2 +1 @@
@jsr:registry=https://npm.jsr.io
catalogMode=prefer
3 changes: 3 additions & 0 deletions .vscode/extensions.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
{
"recommendations": ["fronterior.biome-monorepo"]
}
12 changes: 12 additions & 0 deletions .vscode/settings.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
{
"editor.formatOnSave": true,
"editor.defaultFormatter": "fronterior.biome-monorepo",
"editor.codeActionsOnSave": {
"source.action.useSortedAttributes.biome": "explicit",
"source.organizeImports.biome": "explicit",
"source.fixAll.biome": "explicit"
},
"[javascript]": {
"editor.defaultFormatter": "fronterior.biome-monorepo"
}
}
252 changes: 252 additions & 0 deletions .vscode/tasks.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,252 @@
{
"version": "2.0.0",
"tasks": [
{
"label": "Start Frontend & Backend",
"detail": "Start Playground (Next.js) and workers (Cloudflare Workers) in parallel terminal windows",
"dependsOn": ["Start Playground", "Start Workers"],
"dependsOrder": "parallel",
"presentation": {
"panel": "new",
"group": "dev",
"reveal": "always",
"clear": true
}
},
{
"label": "Start All Dev Services",
"detail": "Start all dev services in one terminal window with turbo dev",
"type": "shell",
"command": "pnpm dev",
"options": {
"cwd": "${workspaceFolder}"
},
"isBackground": true,
"problemMatcher": [],
"presentation": {
"panel": "new",
"group": "dev",
"reveal": "always",
"clear": true
}
},
{
"label": "Start Playground",
"detail": "Start Playground dev server (Next.js)",
"type": "shell",
"command": "pnpm dev",
"options": {
"cwd": "${workspaceFolder}/apps/app"
},
"isBackground": true,
"problemMatcher": [],
"presentation": {
"panel": "new",
"group": "dev",
"reveal": "always",
"clear": true
}
},
{
"label": "Start Auth Worker",
"detail": "Start auth worker dev server (Wrangler)",
"type": "shell",
"command": "pnpm dev",
"options": {
"cwd": "${workspaceFolder}/apps/workers/auth"
},
"isBackground": true,
"problemMatcher": [],
"presentation": {
"panel": "new",
"group": "dev",
"reveal": "always",
"clear": true
}
},
{
"label": "Start V0 Worker",
"detail": "Start v0 worker dev server (Wrangler)",
"type": "shell",
"command": "pnpm dev",
"options": {
"cwd": "${workspaceFolder}/apps/workers/v0"
},
"isBackground": true,
"problemMatcher": [],
"presentation": {
"panel": "new",
"group": "dev",
"reveal": "always",
"clear": true
}
},
{
"label": "Start Workers",
"detail": "Start auth + v0 workers in parallel",
"dependsOn": ["Start Auth Worker", "Start V0 Worker"],
"dependsOrder": "parallel",
"presentation": {
"panel": "new",
"group": "dev",
"reveal": "always",
"clear": true
}
},
{
"label": "Generate Worker Auth Types",
"detail": "Generate Cloudflare types for auth worker",
"type": "shell",
"command": "pnpm cf-typegen",
"options": {
"cwd": "${workspaceFolder}/apps/workers/auth"
},
"presentation": {
"panel": "new",
"group": "tools",
"reveal": "always",
"clear": true
}
},
{
"label": "Generate Worker V0 Types",
"detail": "Generate Cloudflare types for v0 worker",
"type": "shell",
"command": "pnpm cf-typegen",
"options": {
"cwd": "${workspaceFolder}/apps/workers/v0"
},
"presentation": {
"panel": "new",
"group": "tools",
"reveal": "always",
"clear": true
}
},
{
"label": "Env: Generate",
"detail": "Generate .env.example files across the repo",
"type": "shell",
"command": "pnpm env:generate",
"options": {
"cwd": "${workspaceFolder}"
},
"problemMatcher": [],
"presentation": {
"panel": "new",
"group": "tools",
"reveal": "always",
"clear": true
}
},
{
"label": "Env: Bootstrap",
"detail": "Sync local .env / .dev.vars and Wrangler vars (wrangler.jsonc)",
"type": "shell",
"command": "pnpm env:bootstrap",
"options": {
"cwd": "${workspaceFolder}"
},
"problemMatcher": [],
"presentation": {
"panel": "new",
"group": "tools",
"reveal": "always",
"clear": true
}
},
{
"label": "JWT: Mint",
"detail": "Mint a JWT token (interactive) and optionally write to env/.env and env/.vars",
"type": "shell",
"command": "pnpm jwt:mint",
"options": {
"cwd": "${workspaceFolder}"
},
"problemMatcher": [],
"presentation": {
"panel": "new",
"group": "tools",
"reveal": "always",
"clear": true,
"focus": true
}
},
{
"label": "Changeset: Add",
"detail": "Create a new changeset (select packages + bump type: patch/minor/major)",
"type": "shell",
"command": "pnpm changeset",
"options": {
"cwd": "${workspaceFolder}"
},
"problemMatcher": [],
"presentation": {
"panel": "new",
"group": "release",
"reveal": "always",
"clear": true,
"focus": true
}
},
{
"label": "Changeset: Status",
"detail": "Show pending changesets and planned releases",
"type": "shell",
"command": "pnpm changeset status --verbose",
"options": {
"cwd": "${workspaceFolder}"
},
"problemMatcher": [],
"presentation": {
"panel": "new",
"group": "release",
"reveal": "always",
"clear": true,
"focus": true
}
},
{
"label": "SDK: Build (js-ts)",
"detail": "Build the JS/TS SDK package (same as CI build step)",
"type": "shell",
"command": "pnpm sdk-ts:build",
"group": {
"kind": "build",
"isDefault": true
},
"options": {
"cwd": "${workspaceFolder}"
},
"problemMatcher": [],
"presentation": {
"panel": "new",
"group": "release",
"reveal": "always",
"clear": true,
"focus": true
}
},
{
"label": "SDK: Test (js-ts)",
"detail": "Run JS/TS SDK tests once (same as CI test step)",
"type": "shell",
"command": "pnpm --filter deepcrawl test -- --run",
"group": {
"kind": "test",
"isDefault": true
},
"options": {
"cwd": "${workspaceFolder}"
},
"problemMatcher": [],
"presentation": {
"panel": "new",
"group": "release",
"reveal": "always",
"clear": true,
"focus": true
}
}
]
}
Loading