Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
71 commits
Select commit Hold shift + click to select a range
84a83f3
Move legacy project to /legacy folder
bobbybol Jul 8, 2026
b863341
Finish repo restructure step 1
bobbybol Jul 8, 2026
4b6f4ed
Instruct agents to never commit
bobbybol Jul 8, 2026
148e85c
Freeze legacy project folder
bobbybol Jul 8, 2026
25625f2
Remove stale functionality from /legacy project to avoid useless imports
bobbybol Jul 8, 2026
5174d52
Plan 002a - Repo restructure - Completed
bobbybol Jul 8, 2026
42161d4
Remove Supabase edge functions
bobbybol Jul 8, 2026
297044e
Test if db schemas align :: Produce db schema inventory
bobbybol Jul 8, 2026
d9acd53
Record schema inventory (in progress)
bobbybol Jul 8, 2026
bd8334e
First pass of all database entities finished.
bobbybol Jul 9, 2026
5d1738b
Initiate column-level schema check
bobbybol Jul 9, 2026
56ec19c
Finish column-level schema check
bobbybol Jul 9, 2026
865c70b
Check enums, functions, triggers
bobbybol Jul 9, 2026
08a6e2a
ADR for group targeted load shedding commands
bobbybol Jul 9, 2026
95a616d
Finish up inventory; handover to performance analysis
bobbybol Jul 9, 2026
06a0698
Finish performance check - record improvements
bobbybol Jul 10, 2026
d6b6264
Database analysis finished
bobbybol Jul 10, 2026
c861879
New supabase database scaffold
bobbybol Jul 10, 2026
cea4484
Initial migration file for OSS database
bobbybol Jul 10, 2026
cba64b9
Fully functional OSS database ready for A/B testing
bobbybol Jul 10, 2026
d648544
A/B testing successful after one minor adjustment
bobbybol Jul 10, 2026
06f8cae
Compare database baseline and final testing
bobbybol Jul 13, 2026
7697ce5
Record deferred tasks
bobbybol Jul 13, 2026
c3156c7
Tested fresh setup local
bobbybol Jul 13, 2026
2a9d42a
Close database baseline task successfully
bobbybol Jul 13, 2026
5001e79
Fresh nx project
bobbybol Jul 13, 2026
b210dbe
Add api and worker app with core library
bobbybol Jul 13, 2026
f908394
Improve folder structure in favour of modules :: noop for tests until…
bobbybol Jul 14, 2026
3ac2419
Pin and alias supabase cli version with pnpm
bobbybol Jul 14, 2026
74770b9
Remove shared dependencies from root
bobbybol Jul 14, 2026
c8a3df5
Adopter config file implementation
bobbybol Jul 14, 2026
72df74f
Generate types from local supabase instance /w scripts
bobbybol Jul 14, 2026
d421da2
Export and use supabase generated types
bobbybol Jul 14, 2026
74f7610
Multi-stage dockerfile with args to select the build
bobbybol Jul 14, 2026
60ca83b
Deep-freeze config object :: add optional $schema property to config …
bobbybol Jul 14, 2026
033fbb5
Merge pull request #1 from nxtgrid/chore/nestjs-scaffold
bobbybol Jul 14, 2026
ae630c4
Add minimal CI workflows
bobbybol Jul 14, 2026
ad6a266
Bump github action versions
bobbybol Jul 14, 2026
afe8bdc
Update plan documentation
bobbybol Jul 14, 2026
09f23b0
Deploy to DO with Node.js Buildpack
bobbybol Jul 14, 2026
76db0ba
Add husky and lint-staged
bobbybol Jul 14, 2026
25c4e73
Add typechecking to husky
bobbybol Jul 14, 2026
e22340b
Remove .pnpm-store
bobbybol Jul 14, 2026
be4e3a6
Sanity-check all .ignore files
bobbybol Jul 14, 2026
13d1339
Close-out project scaffolding and ci/cd pipeline
bobbybol Jul 14, 2026
8ada9ee
Plan the next step of oss-migration (build the foundation backend)
bobbybol Jul 15, 2026
f4fd20b
Set default timezone for grid to 'UTC'
bobbybol Jul 16, 2026
9cc495c
Implement adjusted PostGIS db types
bobbybol Jul 16, 2026
a9d7d14
Introduce pino and supabase-js packages :: Write the supabase admin c…
bobbybol Jul 16, 2026
3e729e5
Export supabase from barrel
bobbybol Jul 16, 2026
f868026
Implement 'in-module' path aliases too with the '#' pattern
bobbybol Jul 16, 2026
0a80028
Logger module (pino)
bobbybol Jul 16, 2026
e5cb250
Implement foundational infrastructure modules and remove demo capability
bobbybol Jul 16, 2026
ba3a996
Seed file for local development
bobbybol Jul 16, 2026
037bbb2
Authentication + API testing
bobbybol Jul 16, 2026
f0bc16b
Add api-key strategy
bobbybol Jul 17, 2026
dd4cd17
Document some decisions on machine credentials
bobbybol Jul 17, 2026
c65e0cb
CORS + Validation Pipeline
bobbybol Jul 17, 2026
06d179e
Docs: Mark Task 7 (auth) as complete in migration plan
bobbybol Jul 17, 2026
1d6a9eb
Introduce and structure integration and e2e tests
bobbybol Jul 17, 2026
561c3c2
Import the user-admin module
bobbybol Jul 17, 2026
e93eb15
http tests for user-admin :: reintroduce ramda
bobbybol Jul 17, 2026
60fc186
Finally handle Cloudflare edge error comprehensively
bobbybol Jul 17, 2026
9fa8f07
Finalise import of foundation modules
bobbybol Jul 17, 2026
9ba7681
Wrap up foundation with a finished ADR for inter-host communication
bobbybol Jul 17, 2026
4382df7
Make supabase_id on accounts NOT NULL since one can't exist without t…
bobbybol Jul 18, 2026
0f8953d
Cleanup & nit fixes
bobbybol Jul 18, 2026
0ef2a31
Tell CodeRabbit to review any PR, on any branch
bobbybol Jul 18, 2026
2a50bb8
Minor documentation update
bobbybol Jul 18, 2026
282bf43
Merge pull request #2 from nxtgrid/chore/port-foundation-modules
bobbybol Jul 18, 2026
2153328
Update docs so we can start using main as the main branch
bobbybol Jul 18, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
20 changes: 0 additions & 20 deletions .babelrc

This file was deleted.

6 changes: 6 additions & 0 deletions .coderabbit.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
reviews:
auto_review:
enabled: true
# Use ".*" to match all branches and review every PR regardless of target
base_branches:
- ".*"
23 changes: 12 additions & 11 deletions .cursorignore
Original file line number Diff line number Diff line change
Expand Up @@ -6,18 +6,15 @@ dist/
coverage/
tmp/
out-tsc/
test-output/

# Tooling caches
.nx/cache/
.nx/workspace-data/
.nx/
.pnpm-store/
.cache/
.sass-cache/
typings/

# Logs and runtime artifacts
*.log
connect.lock
libpeerconnection.log

# Environment files
.env
Expand All @@ -26,17 +23,21 @@ libpeerconnection.log
!supabase/.env.example

# Supabase local state
supabase/generated-types.ts
supabase/.temp/
supabase/.branches/
supabase/.env
supabase/.env.keys
supabase/.env.local
supabase/.env.*.local
legacy/supabase/.temp/
legacy/supabase/.branches/

# AI agent local state
.claude/worktrees/

# OS / editor noise
.DS_Store
Thumbs.db
.idea/
.c9/
.settings/
.project
.classpath
*.launch
*.sublime-workspace
43 changes: 43 additions & 0 deletions .dockerignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
# Dependencies and build output — reinstalled/rebuilt inside the image.
node_modules/
dist/
tmp/
out-tsc/
coverage/
test-output/

# Nx local cache
.nx/

# Legacy reference tree — excluded from the graph; not needed to build api/worker.
legacy/

# VCS and local env
.git/
.gitignore
.env
.env.*

# Supabase local state (types are committed; CLI state is not)
supabase/.temp/
supabase/.branches/
supabase/.env
supabase/.env.*
supabase/generated-types.ts

# IDE, tooling caches, OS
.vscode/
.idea/
.cache/
.DS_Store
Thumbs.db
*.log

# Docs and plans — not needed at build time
docs/
.cursor/
.claude/

# Docker context meta
Dockerfile
.dockerignore
24 changes: 24 additions & 0 deletions .env.example
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
# Shared workspace env for all apps
# Copy to `.env` at the repo root.
#
# Nx loads env files when you run targets (`nx serve api`, etc.):
# 1) apps/<host>/.env (host-specific — wins on conflicts)
# 2) this root .env (shared defaults)
# Production injects env via the platform (no .env files in the image).
# Secrets are validated per provider via requireEnv (ADR-007) — not dotenv-safe.
#
# Fill after `pnpm supabase start`. Local CLI may still label keys as
# anon / service_role in `supabase status`; our env names follow Supabase’s
# publishable / secret terminology (legacy JWT keys still work as values).

# --- Required (all apps) — admin / secret client --------------------------------
SUPABASE_URL="http://127.0.0.1:54321"
SUPABASE_SECRET_KEY=

# --- Logging (optional; used when nestjs-pino is restored) -------------------------
# LOG_LEVEL=info
# LOG_PRETTY=true

# --- Config artifact (optional; ADR-007) ------------------------------------------
# NXT_CONFIG_PATH=
# NXT_CONFIG_JSON=
1 change: 1 addition & 0 deletions .github/CODEOWNERS
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
supabase/** @bobbybol
64 changes: 64 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
name: CI

on:
pull_request:
branches: [oss-migration]
push:
branches: [oss-migration]

concurrency:
group: ci-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true

jobs:
##
# Core CI - lint, test, typecheck affected files
##
nx-affected-checks:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
with:
fetch-depth: 0
- uses: actions/setup-node@v6
with:
node-version: '24'
- run: corepack enable
- run: pnpm install --frozen-lockfile
- uses: nrwl/nx-set-shas@v5
with:
main-branch-name: oss-migration
- run: pnpm exec nx affected -t lint test typecheck build --parallel=3

##
# Schema type-drift guard — disabled during the oss-migration phase.
# Re-enable (uncomment both jobs below) once migration lands on main.
##
# supabase-type-filter:
# runs-on: ubuntu-latest
# outputs:
# schema: ${{ steps.filter.outputs.schema }}
# steps:
# - uses: actions/checkout@v6
# - uses: dorny/paths-filter@v4
# id: filter
# with:
# filters: |
# schema:
# - 'supabase/**'
# - 'libs/core/src/types/**'

# supabase-type-drift:
# needs: supabase-type-filter
# if: needs.supabase-type-filter.outputs.schema == 'true'
# runs-on: ubuntu-latest
# steps:
# - uses: actions/checkout@v6
# - uses: actions/setup-node@v6
# with:
# node-version: '24'
# - run: corepack enable
# - run: pnpm install --frozen-lockfile
# - run: pnpm supabase db start
# - run: pnpm gen-types-local && pnpm gen-better-types
# - run: git diff --exit-code libs/core/src/types/supabase-types.ts
71 changes: 0 additions & 71 deletions .github/workflows/deploy-to-do.yml

This file was deleted.

92 changes: 49 additions & 43 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,52 +1,58 @@
# See http://help.github.com/ignore-files/ for more about ignoring files.

# compiled output
dist
tmp
/out-tsc

# dependencies
node_modules
# temporary until we fix dependencies
package-lock.json

# IDEs and editors
/.idea
.project
.classpath
.c9/
*.launch
.settings/
*.sublime-workspace
# See https://docs.github.com/en/get-started/getting-started-with-git/ignoring-files

# Build / compile output (any project depth)
dist/
tmp/
out-tsc/

# Dependencies
node_modules/

# Nx
.nx/

# Test output
test-output
coverage/

# Environment & secrets
.env
.env.*
!**/.env.example

# Supabase local state (root chain + legacy reference)
supabase/generated-types.ts
supabase/.temp/
supabase/.branches/
supabase/.env
supabase/.env.keys
supabase/.env.local
supabase/.env.*.local
legacy/supabase/.temp/
legacy/supabase/.branches/

# Logs & runtime artifacts
*.log

# IDE - VSCode
# Tooling caches
.pnpm-store/
.cache/

# IDE — VSCode (track shared workspace settings)
.vscode/*
!.vscode/settings.json
!.vscode/tasks.json
!.vscode/launch.json
!.vscode/extensions.json

# misc
/.sass-cache
/connect.lock
/coverage
/libpeerconnection.log
npm-debug.log
yarn-error.log
testem.log
/typings

# System Files
.DS_Store
Thumbs.db

.env
_NOTES
# IDE — other editors
.idea/
*.sublime-workspace

.nx/cache
# Supabase
supabase/.temp
supabase/.branches
supabase/.env
# AI agent local state
.claude/worktrees/
.claude/settings.local.json

.nx/
# OS
.DS_Store
Thumbs.db
7 changes: 2 additions & 5 deletions .husky/pre-commit
100755 → 100644
Original file line number Diff line number Diff line change
@@ -1,5 +1,2 @@
#!/usr/bin/env sh
. "$(dirname -- "$0")/_/husky.sh"

npx lint-staged && npx tsc -p tsconfig.base.json --noEmit --allowSyntheticDefaultImports
# && npx nx run-many --parallel --target=test
lint-staged
pnpm exec nx affected -t typecheck --uncommitted
2 changes: 1 addition & 1 deletion .nvmrc
Original file line number Diff line number Diff line change
@@ -1 +1 @@
v22.9.0
v24
Loading