Skip to content

Commit bcd428e

Browse files
committed
chores
1 parent 7d8a90a commit bcd428e

File tree

10 files changed

+479
-341
lines changed

10 files changed

+479
-341
lines changed

.github/workflows/build_image.yml

Lines changed: 132 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,3 +59,135 @@ jobs:
5959
SHA=${{ github.sha }}
6060
cache-from: type=gha
6161
cache-to: type=gha,mode=max
62+
# name: Build and publish container image
63+
64+
# # TODO incorporate the whole lemontree security stuff here?
65+
66+
# on:
67+
# push:
68+
# branches:
69+
# - 'main'
70+
# pull_request:
71+
# branches:
72+
# - 'main'
73+
74+
# jobs:
75+
# build:
76+
# name: Build and publish container images
77+
# runs-on: ubuntu-latest
78+
# steps:
79+
# - name: Checkout code
80+
# uses: actions/checkout@v4
81+
82+
# - name: Setup node
83+
# uses: actions/setup-node@v4
84+
# with:
85+
# cache: 'npm'
86+
87+
# - name: Cache npm dependencies
88+
# uses: actions/cache@v4
89+
# with:
90+
# path: |
91+
# .npm
92+
# node_modules
93+
# key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }}
94+
# restore-keys: |
95+
# ${{ runner.os }}-node-
96+
97+
# - name: Create .npmrc from Secret
98+
# run: echo "${{ secrets.NPMRC }}" > .npmrc
99+
# - name: Install npm dependencies
100+
# # TODO remove --legacy-peer-deps when drizzle reaches 1.0
101+
# run: npm ci --cache .npm --prefer-offline --legacy-peer-deps
102+
# - name: Remove .npmrc
103+
# run: rm .npmrc
104+
105+
# - name: Run Trivy scanner on fs
106+
# uses: aquasecurity/[email protected]
107+
# with:
108+
# scan-type: 'fs'
109+
# scan-ref: '.'
110+
# exit-code: 1
111+
# format: 'table'
112+
# ignore-unfixed: true
113+
# vuln-type: 'os,library'
114+
# severity: 'CRITICAL,HIGH'
115+
# trivyignores: .trivyignore
116+
117+
# - name: Set up Docker Buildx
118+
# uses: docker/setup-buildx-action@v3
119+
120+
# - name: Login to GHCR
121+
# uses: docker/login-action@v3
122+
# with:
123+
# registry: ghcr.io
124+
# username: ${{ github.repository_owner }}
125+
# password: ${{ secrets.GITHUB_TOKEN }}
126+
127+
# - name: Extract metadata (tags, labels) for Docker
128+
# id: meta
129+
# uses: docker/metadata-action@v5
130+
# with:
131+
# flavor: |
132+
# latest=false
133+
# images: |
134+
# ghcr.io/${{ github.repository }}
135+
# tags: |
136+
# type=ref,event=branch
137+
# type=ref,event=pr
138+
# type=semver,pattern={{version}}
139+
# type=semver,pattern={{major}}.{{minor}}
140+
# type=raw,value={{branch}}-{{sha}}-{{date 'YYYYMMDDHHmmss'}},enable=${{ github.event_name != 'pull_request'}}
141+
142+
# - name: Build Docker image
143+
# uses: docker/build-push-action@v5
144+
# id: build
145+
# with:
146+
# load: true
147+
# push: false
148+
# tags: ${{ steps.meta.outputs.tags }}
149+
# labels: ${{ steps.meta.outputs.labels }}
150+
# cache-from: type=gha
151+
# cache-to: type=gha,mode=max
152+
# secrets: |
153+
# npmrc=${{ secrets.NPMRC }}
154+
# build-args: |
155+
# VERSION=${{ github.event.release.tag_name }}
156+
# SHA=${{ github.sha }}
157+
158+
# - name: Get first built image ref
159+
# id: split-tags
160+
# run: echo "fragment=$(echo "${DOCKER_METADATA_OUTPUT_TAGS}" | head -n 1)" >> $GITHUB_OUTPUT
161+
162+
# - name: Run Trivy vulnerability scanner on the built image
163+
# uses: aquasecurity/[email protected]
164+
# with:
165+
# image-ref: ${{ steps.split-tags.outputs.fragment }}
166+
# format: 'table'
167+
# exit-code: '1'
168+
# ignore-unfixed: true
169+
# vuln-type: 'os,library'
170+
# severity: 'CRITICAL,HIGH'
171+
# skip-setup-trivy: true
172+
# trivyignores: .trivyignore
173+
174+
# - name: Publish docker image
175+
# uses: docker/build-push-action@v5
176+
# with:
177+
# push: true
178+
# tags: ${{ steps.meta.outputs.tags }}
179+
# labels: ${{ steps.meta.outputs.labels }}
180+
# cache-from: type=gha
181+
# secrets: |
182+
# npmrc=${{ secrets.NPMRC }}
183+
# build-args: |
184+
# VERSION=${{ github.event.release.tag_name }}
185+
# SHA=${{ github.sha }}
186+
187+
# - name: Create GitHub Release
188+
# uses: softprops/action-gh-release@v2
189+
# if: github.ref_type == 'tag'
190+
# with:
191+
# generate_release_notes: true
192+
# env:
193+
# GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

bun.lock

Lines changed: 230 additions & 228 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 50 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -1,52 +1,6 @@
11
{
2-
"devDependencies": {
3-
"@eslint/compat": "^1.3.1",
4-
"@eslint/js": "^9.32.0",
5-
"@inlang/cli": "^3.0.12",
6-
"@inlang/paraglide-js": "2.2.0",
7-
"@lucide/svelte": "^0.525.0",
8-
"@m1212e/graphql-scalars-houdini": "^0.0.1",
9-
"@m1212e/konfigure": "^0.0.10",
10-
"@m1212e/rumble": "^0.8.4",
11-
"@m1212e/sveltekit-oidc": "^0.0.33",
12-
"@sinclair/typebox": "^0.34.38",
13-
"@skeletonlabs/skeleton": "^3.1.7",
14-
"@skeletonlabs/skeleton-svelte": "^1.3.1",
15-
"@sveltejs/adapter-node": "^5.2.13",
16-
"@sveltejs/kit": "2.21.0",
17-
"@sveltejs/vite-plugin-svelte": "^6.1.0",
18-
"@tailwindcss/typography": "^0.5.16",
19-
"@tailwindcss/vite": "^4.1.11",
20-
"@types/bun": "^1.2.19",
21-
"@types/mailparser": "^3.4.6",
22-
"@types/pg": "^8.15.4",
23-
"@types/smtp-server": "^3.5.10",
24-
"concurrently": "^9.2.0",
25-
"drizzle-seed": "^0.3.1-c0277c0",
26-
"eslint": "^9.32.0",
27-
"eslint-config-prettier": "^10.1.8",
28-
"eslint-plugin-svelte": "^3.11.0",
29-
"graphql": "^16.11.0",
30-
"graphql-sse": "^2.5.4",
31-
"houdini": "^1.5.9",
32-
"houdini-svelte": "^2.1.19",
33-
"lefthook": "^1.12.2",
34-
"lucide-svelte": "^0.525.0",
35-
"mailparser": "^3.7.4",
36-
"nanoid": "^5.1.5",
37-
"prettier": "^3.6.2",
38-
"prettier-plugin-svelte": "^3.4.0",
39-
"prettier-plugin-tailwindcss": "^0.6.14",
40-
"smtp-server": "^3.14.0",
41-
"svelte": "^5.36.16",
42-
"svelte-check": "^4.3.0",
43-
"svelte-french-toast": "1.2.0",
44-
"tailwindcss": "^4.1.11",
45-
"typescript": "^5.8.3",
46-
"typescript-eslint": "^8.38.0",
47-
"vite": "^7.0.6"
48-
},
492
"name": "project",
3+
"type": "module",
504
"private": true,
515
"scripts": {
526
"build": "vite build",
@@ -67,10 +21,56 @@
6721
"typecheck": "tsc --noEmit",
6822
"vite-dev": "vite dev"
6923
},
70-
"type": "module",
7124
"dependencies": {
72-
"drizzle-kit": "^1.0.0-beta.1-c0277c0",
73-
"drizzle-orm": "^1.0.0-beta.1-c0277c0",
25+
"drizzle-kit": "^1.0.0-beta.1-ac4ce44",
26+
"drizzle-orm": "^1.0.0-beta.1-ac4ce44",
7427
"pg": "^8.16.3"
28+
},
29+
"devDependencies": {
30+
"@eslint/compat": "^1.4.0",
31+
"@eslint/js": "^9.38.0",
32+
"@inlang/cli": "^3.0.12",
33+
"@inlang/paraglide-js": "2.4.0",
34+
"@lucide/svelte": "^0.548.0",
35+
"@m1212e/graphql-scalars-houdini": "^0.0.1",
36+
"@m1212e/konfigure": "^0.0.10",
37+
"@m1212e/rumble": "^0.12.12",
38+
"@m1212e/sveltekit-oidc": "^0.0.33",
39+
"@sinclair/typebox": "^0.34.41",
40+
"@skeletonlabs/skeleton": "^3.2.2",
41+
"@skeletonlabs/skeleton-svelte": "^1.5.3",
42+
"@sveltejs/adapter-node": "^5.4.0",
43+
"@sveltejs/kit": "2.47.3",
44+
"@sveltejs/vite-plugin-svelte": "^6.2.1",
45+
"@tailwindcss/typography": "^0.5.19",
46+
"@tailwindcss/vite": "^4.1.16",
47+
"@types/bun": "^1.3.1",
48+
"@types/mailparser": "^3.4.6",
49+
"@types/pg": "^8.15.5",
50+
"@types/smtp-server": "^3.5.12",
51+
"concurrently": "^9.2.1",
52+
"drizzle-seed": "^0.3.1",
53+
"eslint": "^9.38.0",
54+
"eslint-config-prettier": "^10.1.8",
55+
"eslint-plugin-svelte": "^3.12.5",
56+
"graphql": "^16.11.0",
57+
"graphql-sse": "^2.6.0",
58+
"houdini": "^1.5.10",
59+
"houdini-svelte": "^2.1.20",
60+
"lefthook": "^2.0.1",
61+
"lucide-svelte": "^0.548.0",
62+
"mailparser": "^3.7.5",
63+
"nanoid": "^5.1.6",
64+
"prettier": "^3.6.2",
65+
"prettier-plugin-svelte": "^3.4.0",
66+
"prettier-plugin-tailwindcss": "^0.7.1",
67+
"smtp-server": "^3.15.0",
68+
"svelte": "^5.41.4",
69+
"svelte-check": "^4.3.3",
70+
"svelte-french-toast": "1.2.0",
71+
"tailwindcss": "^4.1.16",
72+
"typescript": "^5.9.3",
73+
"typescript-eslint": "^8.46.2",
74+
"vite": "^7.1.12"
7575
}
7676
}

schema.graphql

Lines changed: 27 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -94,8 +94,16 @@ type Mutation {
9494
}
9595

9696
type Query {
97-
findFirstUser(where: UserWhereInputArgument): User!
98-
findManyUser(limit: Int, offset: Int, where: UserWhereInputArgument): [User!]!
97+
"""Get a single user by ID"""
98+
user(id: ID!): User!
99+
100+
"""List all users"""
101+
users(limit: Int, offset: Int, orderBy: UserOrderInputArgument, where: UserWhereInputArgument): [User!]!
102+
}
103+
104+
enum SortingParameter {
105+
asc
106+
desc
99107
}
100108

101109
input StringWhereInputArgument {
@@ -122,8 +130,11 @@ input StringWhereInputArgument {
122130
}
123131

124132
type Subscription {
125-
findFirstUser(where: UserWhereInputArgument): User!
126-
findManyUser(limit: Int, offset: Int, where: UserWhereInputArgument): [User!]!
133+
"""Get a single user by ID"""
134+
user(id: ID!): User!
135+
136+
"""List all users"""
137+
users(limit: Int, offset: Int, orderBy: UserOrderInputArgument, where: UserWhereInputArgument): [User!]!
127138
}
128139

129140
type User {
@@ -138,6 +149,18 @@ type User {
138149
updatedAt: DateTime
139150
}
140151

152+
input UserOrderInputArgument {
153+
createdAt: SortingParameter
154+
email: SortingParameter
155+
familyName: SortingParameter
156+
givenName: SortingParameter
157+
id: SortingParameter
158+
locale: SortingParameter
159+
ntfyTopic: SortingParameter
160+
preferredUsername: SortingParameter
161+
updatedAt: SortingParameter
162+
}
163+
141164
input UserWhereInputArgument {
142165
createdAt: DateWhereInputArgument
143166
email: StringWhereInputArgument

src/api/db/drizzle.ts

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,24 @@
1+
import * as schema from './schema';
12
import { relations } from './relations';
23

4+
import { drizzle } from 'drizzle-orm/node-postgres';
5+
36
export async function makeDrizzleClient(dbUrl: string) {
47
const drizzleArgs = [
58
dbUrl,
69
{
710
relations,
11+
schema,
812
casing: 'snake_case'
913
}
1014
] as const;
1115

16+
const db = drizzle(...drizzleArgs);
17+
1218
if (process.versions.bun) {
1319
console.info('Detected Bun runtime, using native bun sql driver');
14-
return (await import('drizzle-orm/bun-sql')).drizzle(...drizzleArgs);
15-
} else {
16-
console.info('Did not detect Bun runtime, using node-postgres driver');
17-
return (await import('drizzle-orm/node-postgres')).drizzle(...drizzleArgs);
20+
return (await import('drizzle-orm/bun-sql')).drizzle(...drizzleArgs) as unknown as typeof db;
1821
}
22+
23+
return db;
1924
}

src/api/handlers/basics.ts

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

0 commit comments

Comments
 (0)