refactor(database): Remove dependency on pg_uuidv7 extension

This commit is contained in:
Jesse Wierzbinski 2025-03-30 22:10:33 +02:00
parent 2bb3731187
commit 37f68bbffd
No known key found for this signature in database
37 changed files with 2465 additions and 4 deletions

View file

@ -2,6 +2,7 @@ import { afterAll, describe, expect, test } from "bun:test";
import { randomString } from "@/math";
import { RolePermission } from "@versia/client/schemas";
import { Application } from "@versia/kit/db";
import { randomUUIDv7 } from "bun";
import { SignJWT } from "jose";
import { config } from "~/config.ts";
import { fakeRequest, getTestUsers } from "~/tests/utils";
@ -19,6 +20,7 @@ const privateKey = await crypto.subtle.importKey(
);
const application = await Application.insert({
id: randomUUIDv7(),
clientId: "test-client-id",
redirectUri: "https://example.com/callback",
scopes: "openid profile email",

View file

@ -2,6 +2,7 @@ import { auth, handleZodError, jsonOrForm } from "@/api";
import { randomString } from "@/math";
import { RolePermission } from "@versia/client/schemas";
import { Application, Token, User } from "@versia/kit/db";
import { randomUUIDv7 } from "bun";
import { describeRoute } from "hono-openapi";
import { validator } from "hono-openapi/zod";
import { type JWTPayload, SignJWT, jwtVerify } from "jose";
@ -241,6 +242,7 @@ export default (plugin: PluginType): void =>
.sign(keys.private);
await Token.insert({
id: randomUUIDv7(),
accessToken: randomString(64, "base64url"),
code,
scope: scope ?? application.data.scopes,

View file

@ -1,8 +1,10 @@
import { afterAll, describe, expect, test } from "bun:test";
import { Application } from "@versia/kit/db";
import { randomUUIDv7 } from "bun";
import { fakeRequest } from "~/tests/utils";
const application = await Application.insert({
id: randomUUIDv7(),
clientId: "test-client-id",
redirectUri: "https://example.com/callback",
scopes: "openid profile email",

View file

@ -5,6 +5,7 @@ import { RolePermission } from "@versia/client/schemas";
import { Media, Token, User, db } from "@versia/kit/db";
import { type SQL, and, eq, isNull } from "@versia/kit/drizzle";
import { OpenIdAccounts, Users } from "@versia/kit/tables";
import { randomUUIDv7 } from "bun";
import { describeRoute } from "hono-openapi";
import { validator } from "hono-openapi/zod";
import { setCookie } from "hono/cookie";
@ -175,6 +176,7 @@ export default (plugin: PluginType): void => {
// Link the account
await db.insert(OpenIdAccounts).values({
id: randomUUIDv7(),
serverId: sub,
issuerId: issuer.id,
userId: user_id,
@ -242,6 +244,7 @@ export default (plugin: PluginType): void => {
// Link account
await db.insert(OpenIdAccounts).values({
id: randomUUIDv7(),
serverId: sub,
issuerId: issuer.id,
userId: user.id,
@ -294,6 +297,7 @@ export default (plugin: PluginType): void => {
const code = randomString(32, "hex");
await Token.insert({
id: randomUUIDv7(),
accessToken: randomString(64, "base64url"),
code,
scope: flow.application.scopes,

View file

@ -1,17 +1,21 @@
import { afterAll, describe, expect, test } from "bun:test";
import { Application, Token } from "@versia/kit/db";
import { randomUUIDv7 } from "bun";
import { fakeRequest, getTestUsers } from "~/tests/utils";
const { deleteUsers, users } = await getTestUsers(1);
const application = await Application.insert({
id: randomUUIDv7(),
clientId: "test-client-id",
redirectUri: "https://example.com/callback",
scopes: "openid profile email",
secret: "test-secret",
name: "Test Application",
});
const token = await Token.insert({
id: randomUUIDv7(),
code: "test-code",
redirectUri: application.data.redirectUri,
clientId: application.data.clientId,

View file

@ -1,6 +1,7 @@
import { handleZodError } from "@/api.ts";
import { Application, db } from "@versia/kit/db";
import { OpenIdLoginFlows } from "@versia/kit/tables";
import { randomUUIDv7 } from "bun";
import { describeRoute } from "hono-openapi";
import { validator } from "hono-openapi/zod";
import {
@ -103,6 +104,7 @@ export default (plugin: PluginType): void => {
await db
.insert(OpenIdLoginFlows)
.values({
id: randomUUIDv7(),
codeVerifier,
applicationId: application.id,
issuerId,

View file

@ -1,17 +1,21 @@
import { afterAll, describe, expect, test } from "bun:test";
import { Application, Token } from "@versia/kit/db";
import { randomUUIDv7 } from "bun";
import { fakeRequest, getTestUsers } from "~/tests/utils";
const { deleteUsers, users } = await getTestUsers(1);
const application = await Application.insert({
id: randomUUIDv7(),
clientId: "test-client-id",
redirectUri: "https://example.com/callback",
scopes: "openid profile email",
secret: "test-secret",
name: "Test Application",
});
const token = await Token.insert({
id: randomUUIDv7(),
code: "test-code",
redirectUri: application.data.redirectUri,
clientId: application.data.clientId,

View file

@ -2,6 +2,7 @@ import { auth, handleZodError } from "@/api";
import { RolePermission } from "@versia/client/schemas";
import { Application, db } from "@versia/kit/db";
import { OpenIdLoginFlows } from "@versia/kit/tables";
import { randomUUIDv7 } from "bun";
import { describeRoute } from "hono-openapi";
import { resolver, validator } from "hono-openapi/zod";
import {
@ -117,6 +118,7 @@ export default (plugin: PluginType): void => {
);
const application = await Application.insert({
id: randomUUIDv7(),
clientId:
user.id +
Buffer.from(
@ -133,6 +135,7 @@ export default (plugin: PluginType): void => {
await db
.insert(OpenIdLoginFlows)
.values({
id: randomUUIDv7(),
codeVerifier,
issuerId,
applicationId: application.id,