From 7fc53cfad840b0c7d896096783149676cf06aa8b Mon Sep 17 00:00:00 2001 From: Arunavo Ray Date: Thu, 6 Aug 2026 07:19:13 +0530 Subject: [PATCH] Revert "fix(security): upgrade better-auth family to 1.7.0-rc.4" This reverts commit 2f6af22e25a481659481c1680686e6063d6ccf91. --- bun.lock | 40 +- drizzle/0014_fancy_speed_demon.sql | 57 - drizzle/meta/0014_snapshot.json | 2746 ---------------------------- drizzle/meta/_journal.json | 7 - package.json | 6 +- scripts/validate-migrations.ts | 75 - src/lib/db/schema.ts | 72 - 7 files changed, 22 insertions(+), 2981 deletions(-) delete mode 100644 drizzle/0014_fancy_speed_demon.sql delete mode 100644 drizzle/meta/0014_snapshot.json diff --git a/bun.lock b/bun.lock index 8df7f21..1f00317 100644 --- a/bun.lock +++ b/bun.lock @@ -9,8 +9,8 @@ "@astrojs/mdx": "^7.0.3", "@astrojs/node": "^11.0.2", "@astrojs/react": "^6.0.1", - "@better-auth/oauth-provider": "1.7.0-rc.4", - "@better-auth/sso": "1.7.0-rc.4", + "@better-auth/oauth-provider": "1.6.23", + "@better-auth/sso": "1.6.23", "@octokit/plugin-throttling": "^11.0.3", "@octokit/rest": "^22.0.1", "@radix-ui/react-accordion": "^1.2.16", @@ -39,7 +39,7 @@ "@types/react-dom": "^19.2.3", "astro": "^7.1.0", "bcryptjs": "^3.0.3", - "better-auth": "1.7.0-rc.4", + "better-auth": "1.6.23", "buffer": "^6.0.3", "canvas-confetti": "^1.9.4", "class-variance-authority": "^0.7.1", @@ -190,23 +190,23 @@ "@babel/types": ["@babel/types@7.29.0", "", { "dependencies": { "@babel/helper-string-parser": "^7.27.1", "@babel/helper-validator-identifier": "^7.28.5" } }, "sha512-LwdZHpScM4Qz8Xw2iKSzS+cfglZzJGvofQICy7W7v4caru4EaAmyUuO6BGrbyQ2mYV11W0U8j5mBhd14dd3B0A=="], - "@better-auth/core": ["@better-auth/core@1.7.0-rc.4", "", { "dependencies": { "@opentelemetry/semantic-conventions": "^1.41.1", "@standard-schema/spec": "^1.1.0", "zod": "^4.3.6" }, "peerDependencies": { "@better-auth/utils": "0.4.2", "@better-fetch/fetch": "1.3.1", "@cloudflare/workers-types": ">=4", "@opentelemetry/api": "^1.9.0", "better-call": "1.3.7", "jose": "^6.1.0", "kysely": "^0.28.5 || ^0.29.0", "nanostores": "^1.0.1" }, "optionalPeers": ["@cloudflare/workers-types", "@opentelemetry/api"] }, "sha512-hkxBHcEXU6qxGd08ovBVuaSsENB78A45sclB5dEbohUMckkCbTab1eydGknsMF7SfE/vGcgPER5vzAQwNzP9oQ=="], + "@better-auth/core": ["@better-auth/core@1.6.23", "", { "dependencies": { "@opentelemetry/semantic-conventions": "^1.39.0", "@standard-schema/spec": "^1.1.0", "zod": "^4.3.6" }, "peerDependencies": { "@better-auth/utils": "0.4.2", "@better-fetch/fetch": "1.3.1", "@cloudflare/workers-types": ">=4", "@opentelemetry/api": "^1.9.0", "better-call": "1.3.7", "jose": "^6.1.0", "kysely": "^0.28.5 || ^0.29.0", "nanostores": "^1.0.1" }, "optionalPeers": ["@cloudflare/workers-types", "@opentelemetry/api"] }, "sha512-beEhOs0uVeOxYOZKUfIEBd/nQV2Bd4/6wyLxZ0OFkn6CMTK2Vi+hXuZLnyPBeB6RdHpebEoJWiHqwHxBIxgPDQ=="], - "@better-auth/drizzle-adapter": ["@better-auth/drizzle-adapter@1.7.0-rc.4", "", { "peerDependencies": { "@better-auth/core": "^1.7.0-rc.4", "@better-auth/utils": "0.4.2", "drizzle-orm": "^0.45.2 || >=1.0.0-rc.1 <2.0.0" }, "optionalPeers": ["drizzle-orm"] }, "sha512-UpBwR54jBJALnwqcezGS+CYj2i3qF6bl5PAzL8o0WDQleN6QHmqOC6fUHq8+las6R4Lj6BRozdUzbE4DaGusfg=="], + "@better-auth/drizzle-adapter": ["@better-auth/drizzle-adapter@1.6.23", "", { "peerDependencies": { "@better-auth/core": "^1.6.23", "@better-auth/utils": "0.4.2", "drizzle-orm": "^0.45.2" }, "optionalPeers": ["drizzle-orm"] }, "sha512-2+/PTVfIP9E7iz6af8TB3lhnowHUj9ljC66kECmHaFEdUqPgzHoWux9epotKwO7XDg2ui4ttWQ8CMeNFLvQeKQ=="], - "@better-auth/kysely-adapter": ["@better-auth/kysely-adapter@1.7.0-rc.4", "", { "peerDependencies": { "@better-auth/core": "^1.7.0-rc.4", "@better-auth/utils": "0.4.2", "kysely": "^0.28.17 || ^0.29.0" }, "optionalPeers": ["kysely"] }, "sha512-JNApE34ATqfxMfOLyE+e4KwqZzg7ZkhcN4gnKNuLIQPq7ja/NTt5FnZCgbFCOviGmN5kfOWIvpRyp/hW+YjLjA=="], + "@better-auth/kysely-adapter": ["@better-auth/kysely-adapter@1.6.23", "", { "peerDependencies": { "@better-auth/core": "^1.6.23", "@better-auth/utils": "0.4.2", "kysely": "^0.28.17 || ^0.29.0" }, "optionalPeers": ["kysely"] }, "sha512-zbNJsMbG09exfkGyvFqBLLqWoMPAUWjxCuUnEK5AsjbYoZeIjj/QGZgdf4CapVWryKxjA9Q6Jlr6fbiPpC3VAg=="], - "@better-auth/memory-adapter": ["@better-auth/memory-adapter@1.7.0-rc.4", "", { "peerDependencies": { "@better-auth/core": "^1.7.0-rc.4", "@better-auth/utils": "0.4.2" } }, "sha512-/yIudwUCWRTEOyZteZ1dqa0cEk5/Dot4WiIw4TlMsGB2Rk0/HIVqtBULBWW551ihefWrz9AKGuFVtXQhRMXAZw=="], + "@better-auth/memory-adapter": ["@better-auth/memory-adapter@1.6.23", "", { "peerDependencies": { "@better-auth/core": "^1.6.23", "@better-auth/utils": "0.4.2" } }, "sha512-krIiR0pIVkaKlAzm690n5bcMW4NGbqeMg0HQSD9fz/KcQF/eWLqcq9gG/BhHTj2i/y96qH+W5JWPmaSOS5iTgQ=="], - "@better-auth/mongo-adapter": ["@better-auth/mongo-adapter@1.7.0-rc.4", "", { "peerDependencies": { "@better-auth/core": "^1.7.0-rc.4", "@better-auth/utils": "0.4.2", "mongodb": "^6.0.0 || ^7.0.0" }, "optionalPeers": ["mongodb"] }, "sha512-BRGwL0HfTa2hWW0WIHlsXpCBqwXVJUR6gQkaLA2Bm9a76KLaPVWLzigZJIfcVFZLaQJrFQ1ZdIh/zqbfC8m4Dw=="], + "@better-auth/mongo-adapter": ["@better-auth/mongo-adapter@1.6.23", "", { "peerDependencies": { "@better-auth/core": "^1.6.23", "@better-auth/utils": "0.4.2", "mongodb": "^6.0.0 || ^7.0.0" }, "optionalPeers": ["mongodb"] }, "sha512-7+QdevitGlKBbP6JbiSk5SBnzPsKV/mDrQBGBn8hwByQLeJwqpqbuBPw7ZI8vzUlFfAAnyFiqwP3Eb8mxnp7pA=="], - "@better-auth/oauth-provider": ["@better-auth/oauth-provider@1.7.0-rc.4", "", { "dependencies": { "jose": "^6.2.3", "zod": "^4.3.6" }, "peerDependencies": { "@better-auth/core": "^1.7.0-rc.4", "@better-auth/utils": "0.4.2", "@better-fetch/fetch": "1.3.1", "better-auth": "^1.7.0-rc.4", "better-call": "1.3.7" } }, "sha512-7br1e+gJsFAC0EB4IDuEefF005CeaB8hbY59c8FMpcqiR5Vp+8mT2e8dmYSSjfH13Y34ObGR+ORI7mGQhzxlHQ=="], + "@better-auth/oauth-provider": ["@better-auth/oauth-provider@1.6.23", "", { "dependencies": { "jose": "^6.1.3", "zod": "^4.3.6" }, "peerDependencies": { "@better-auth/core": "^1.6.23", "@better-auth/utils": "0.4.2", "@better-fetch/fetch": "1.3.1", "better-auth": "^1.6.23", "better-call": "1.3.7" } }, "sha512-1sDN+N4Sztmpk8ziCU3MXicxOTfvYoHvHvhJMQ7PSfr+pLXnYN+dJFI9S3zBRwstmTeJx/OhRIZWrwFJ0TgBnA=="], - "@better-auth/prisma-adapter": ["@better-auth/prisma-adapter@1.7.0-rc.4", "", { "peerDependencies": { "@better-auth/core": "^1.7.0-rc.4", "@better-auth/utils": "0.4.2", "@prisma/client": "^5.0.0 || ^6.0.0 || ^7.0.0", "prisma": "^5.0.0 || ^6.0.0 || ^7.0.0" }, "optionalPeers": ["@prisma/client", "prisma"] }, "sha512-SOmE17lirhGIXAJdvlThgNjt57Z98N5CewVFNRiPGHOv2w7llR3Fc6ASvoUTClB4pP0YyBjNZZwLVCwEoAKxwQ=="], + "@better-auth/prisma-adapter": ["@better-auth/prisma-adapter@1.6.23", "", { "peerDependencies": { "@better-auth/core": "^1.6.23", "@better-auth/utils": "0.4.2", "@prisma/client": "^5.0.0 || ^6.0.0 || ^7.0.0", "prisma": "^5.0.0 || ^6.0.0 || ^7.0.0" }, "optionalPeers": ["@prisma/client", "prisma"] }, "sha512-2qSdzidq4tkb1eS5TTqb4Nzg0mdZWm3Qky9SYeXeb8PpVQbC2sxqJhEM5mK7y12uU6I8hc64wO9f7AFVNL+6UQ=="], - "@better-auth/sso": ["@better-auth/sso@1.7.0-rc.4", "", { "dependencies": { "@xmldom/xmldom": "^0.9.10", "fast-xml-parser": "^5.8.0", "jose": "^6.2.3", "samlify": "^2.13.1", "tldts": "^7.4.3", "zod": "^4.3.6" }, "peerDependencies": { "@better-auth/core": "^1.7.0-rc.4", "@better-auth/utils": "0.4.2", "@better-fetch/fetch": "1.3.1", "better-auth": "^1.7.0-rc.4", "better-call": "1.3.7" } }, "sha512-8mROv9XEbVyqqVVb7pXoTL/2mOulFuGLgiAf5DJA+Z0SOTDMATrNbb17pyqISMwHE5xiwqwpp2ZiaxkWVN2wtQ=="], + "@better-auth/sso": ["@better-auth/sso@1.6.23", "", { "dependencies": { "fast-xml-parser": "^5.8.0", "jose": "^6.1.3", "samlify": "^2.13.1", "tldts": "^6.1.0", "zod": "^4.3.6" }, "peerDependencies": { "@better-auth/core": "^1.6.23", "@better-auth/utils": "0.4.2", "@better-fetch/fetch": "1.3.1", "better-auth": "^1.6.23", "better-call": "1.3.7" } }, "sha512-nAO25rH25SL2t/BkK/iPqGsnhwI7tOGxktVupuyIBysju13QpV4tJjytnSbVnnDwPo5p6M4Ld6WF83XCEJYCzg=="], - "@better-auth/telemetry": ["@better-auth/telemetry@1.7.0-rc.4", "", { "peerDependencies": { "@better-auth/core": "^1.7.0-rc.4", "@better-auth/utils": "0.4.2", "@better-fetch/fetch": "1.3.1" } }, "sha512-IZM3cDmLCbrmdRtBKEJtZ6Gqmfu2RBvai0DLEzXBs6/nTG5BVk3oz7JbcITAdE0AoMCV8rMdZJ3C1k/nIhZdDg=="], + "@better-auth/telemetry": ["@better-auth/telemetry@1.6.23", "", { "peerDependencies": { "@better-auth/core": "^1.6.23", "@better-auth/utils": "0.4.2", "@better-fetch/fetch": "1.3.1" } }, "sha512-/R2Kb+z2BpDOOWwVHqOk+c0VNpuwfCv4Hp5Yr9003WIZPax/zyNraGLB9CFE8qF2gZW8Dsz419k4I8CPrGzpDA=="], "@better-auth/utils": ["@better-auth/utils@0.4.2", "", { "dependencies": { "@noble/hashes": "^2.0.1" } }, "sha512-AUxrvu+HaaODsUyzDxFgwd/8RZ1yZaYo42LXKSrU2oGgR38pS1ij8nqQKNgtTWoYGpNevNXtCfgTy6loHveW9A=="], @@ -400,9 +400,9 @@ "@napi-rs/wasm-runtime": ["@napi-rs/wasm-runtime@1.1.1", "", { "dependencies": { "@emnapi/core": "^1.7.1", "@emnapi/runtime": "^1.7.1", "@tybys/wasm-util": "^0.10.1" } }, "sha512-p64ah1M1ld8xjWv3qbvFwHiFVWrq1yFvV4f7w+mzaqiR4IlSgkqhcRdHwsGgomwzBH51sRY4NEowLxnaBjcW/A=="], - "@noble/ciphers": ["@noble/ciphers@2.2.0", "", {}, "sha512-Z6pjIZ/8IJcCGzb2S/0Px5J81yij85xASuk1teLNeg75bfT07MV3a/O2Mtn1I2se43k3lkVEcFaR10N4cgQcZA=="], + "@noble/ciphers": ["@noble/ciphers@2.1.1", "", {}, "sha512-bysYuiVfhxNJuldNXlFEitTVdNnYUc+XNJZd7Qm2a5j1vZHgY+fazadNFWFaMK/2vye0JVlxV3gHmC0WDfAOQw=="], - "@noble/hashes": ["@noble/hashes@2.2.0", "", {}, "sha512-IYqDGiTXab6FniAgnSdZwgWbomxpy9FtYvLKs7wCUs2a8RkITG+DFGO1DM9cr+E3/RgADRpFjrKVaJ1z6sjtEg=="], + "@noble/hashes": ["@noble/hashes@2.0.1", "", {}, "sha512-XlOlEbQcE9fmuXxrVTXCTlG2nlRXa9Rj3rr5Ue/+tX+nmkgbX720YHh0VR3hBF9xDvwnb8D2shVGOwNx+ulArw=="], "@nodable/entities": ["@nodable/entities@2.1.0", "", {}, "sha512-nyT7T3nbMyBI/lvr6L5TyWbFJAI9FTgVRakNoBqCD+PmID8DzFrrNdLLtHMwMszOtqZa8PAOV24ZqDnQrhQINA=="], @@ -852,7 +852,7 @@ "before-after-hook": ["before-after-hook@4.0.0", "", {}, "sha512-q6tR3RPqIB1pMiTRMFcZwuG5T8vwp+vUvEG0vuI6B+Rikh5BfPp2fQ82c925FOs+b0lcFQ8CFrL+KbilfZFhOQ=="], - "better-auth": ["better-auth@1.7.0-rc.4", "", { "dependencies": { "@better-auth/core": "1.7.0-rc.4", "@better-auth/drizzle-adapter": "1.7.0-rc.4", "@better-auth/kysely-adapter": "1.7.0-rc.4", "@better-auth/memory-adapter": "1.7.0-rc.4", "@better-auth/mongo-adapter": "1.7.0-rc.4", "@better-auth/prisma-adapter": "1.7.0-rc.4", "@better-auth/telemetry": "1.7.0-rc.4", "@better-auth/utils": "0.4.2", "@better-fetch/fetch": "1.3.1", "@noble/ciphers": "^2.2.0", "@noble/hashes": "^2.2.0", "better-call": "1.3.7", "defu": "^6.1.4", "jose": "^6.2.3", "kysely": "^0.28.17 || ^0.29.0", "nanostores": "^1.3.0", "zod": "^4.3.6" }, "peerDependencies": { "@lynx-js/react": "*", "@prisma/client": "^5.0.0 || ^6.0.0 || ^7.0.0", "@sveltejs/kit": "^2.0.0", "@tanstack/react-start": "^1.0.0", "@tanstack/solid-start": "^1.0.0", "better-sqlite3": "^12.0.0", "drizzle-kit": ">=0.31.4 || >=1.0.0-beta.1", "drizzle-orm": "^0.45.2", "mongodb": "^6.0.0 || ^7.0.0", "mysql2": "^3.0.0", "next": "^14.0.0 || ^15.0.0 || ^16.0.0", "pg": "^8.0.0", "prisma": "^5.0.0 || ^6.0.0 || ^7.0.0", "react": "^18.0.0 || ^19.0.0", "react-dom": "^18.0.0 || ^19.0.0", "solid-js": "^1.0.0", "svelte": "^4.0.0 || ^5.0.0", "vitest": "^2.0.0 || ^3.0.0 || ^4.0.0", "vue": "^3.0.0" }, "optionalPeers": ["@lynx-js/react", "@prisma/client", "@sveltejs/kit", "@tanstack/react-start", "@tanstack/solid-start", "better-sqlite3", "drizzle-kit", "drizzle-orm", "mongodb", "mysql2", "next", "pg", "prisma", "react", "react-dom", "solid-js", "svelte", "vitest", "vue"] }, "sha512-1ONP6b9715zc/NqQV2LFpk7HYakjOUtPeXYuBI20ou6tY8zQ5VUYQYJ65GBXnDYDua9CSrre9CbuYkZ8FpnzfQ=="], + "better-auth": ["better-auth@1.6.23", "", { "dependencies": { "@better-auth/core": "1.6.23", "@better-auth/drizzle-adapter": "1.6.23", "@better-auth/kysely-adapter": "1.6.23", "@better-auth/memory-adapter": "1.6.23", "@better-auth/mongo-adapter": "1.6.23", "@better-auth/prisma-adapter": "1.6.23", "@better-auth/telemetry": "1.6.23", "@better-auth/utils": "0.4.2", "@better-fetch/fetch": "1.3.1", "@noble/ciphers": "^2.1.1", "@noble/hashes": "^2.0.1", "better-call": "1.3.7", "defu": "^6.1.4", "jose": "^6.1.3", "kysely": "^0.28.17 || ^0.29.0", "nanostores": "^1.1.1", "zod": "^4.3.6" }, "peerDependencies": { "@lynx-js/react": "*", "@prisma/client": "^5.0.0 || ^6.0.0 || ^7.0.0", "@sveltejs/kit": "^2.0.0", "@tanstack/react-start": "^1.0.0", "@tanstack/solid-start": "^1.0.0", "better-sqlite3": "^12.0.0", "drizzle-kit": ">=0.31.4", "drizzle-orm": "^0.45.2", "mongodb": "^6.0.0 || ^7.0.0", "mysql2": "^3.0.0", "next": "^14.0.0 || ^15.0.0 || ^16.0.0", "pg": "^8.0.0", "prisma": "^5.0.0 || ^6.0.0 || ^7.0.0", "react": "^18.0.0 || ^19.0.0", "react-dom": "^18.0.0 || ^19.0.0", "solid-js": "^1.0.0", "svelte": "^4.0.0 || ^5.0.0", "vitest": "^2.0.0 || ^3.0.0 || ^4.0.0", "vue": "^3.0.0" }, "optionalPeers": ["@lynx-js/react", "@prisma/client", "@sveltejs/kit", "@tanstack/react-start", "@tanstack/solid-start", "better-sqlite3", "drizzle-kit", "drizzle-orm", "mongodb", "mysql2", "next", "pg", "prisma", "react", "react-dom", "solid-js", "svelte", "vitest", "vue"] }, "sha512-4vOaRd9UiKGKm9R+ej0jjU1es3MiJIiNc9Qq3VCnYqOZ4/nb5272QqTxWYoDxyUXl5x6A2x2we5KZKQO9teTQQ=="], "better-call": ["better-call@1.3.7", "", { "dependencies": { "@better-auth/utils": "^0.4.0", "@better-fetch/fetch": "^1.1.21", "rou3": "^0.7.12", "set-cookie-parser": "^3.0.1" }, "peerDependencies": { "zod": "^4.0.0" }, "optionalPeers": ["zod"] }, "sha512-Al51/hjp2SSp6CRTa3F2ptcx4yQVS1xWKoY6jcVXqNYOap6mHFP2jUBn5EwIL4iIed1/Sq4hlQ+Umm6EflZG+w=="], @@ -1126,7 +1126,7 @@ "jiti": ["jiti@2.6.1", "", { "bin": { "jiti": "lib/jiti-cli.mjs" } }, "sha512-ekilCSN1jwRvIbgeg/57YFh8qQDNbwDb9xT/qu2DAHbFFZUicIl4ygVaAvzveMhMVr3LnpSKTNnwt8PoOfmKhQ=="], - "jose": ["jose@6.2.8", "", {}, "sha512-Bsdjwm3Qsd/P0jR+BHDe3LytDfY7WBq2HmCCLIwuVRHMuEC9ae7/R474GIUdF1NgCyZjzVo/A9DOiOBtXq8ZoQ=="], + "jose": ["jose@6.2.1", "", {}, "sha512-jUaKr1yrbfaImV7R2TN/b3IcZzsw38/chqMpo2XJ7i2F8AfM/lA4G1goC3JVEwg0H7UldTmSt3P68nt31W7/mw=="], "js-tokens": ["js-tokens@4.0.0", "", {}, "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ=="], @@ -1328,7 +1328,7 @@ "nanoid": ["nanoid@6.0.0", "", { "bin": { "nanoid": "bin/nanoid.js" } }, "sha512-mkUH+rPkwU2qPadJ0oJZOjeZ5Mxn8Q1UhevwkTRWNuUZzyia3h4rhzK39hxaHTk0o2OxB8W2SQ6A8k23ZDi1pQ=="], - "nanostores": ["nanostores@1.4.2", "", {}, "sha512-Wxv8Roefr2nqtiRG0bnaFlpYqpIVtOEeJZHaH+4nGgOK1/7n6OHOuHCb/bhqrNQgZM8fyd0s1PqhdrJc9Ib44g=="], + "nanostores": ["nanostores@1.2.0", "", {}, "sha512-F0wCzbsH80G7XXo0Jd9/AVQC7ouWY6idUCTnMwW5t/Rv9W8qmO6endavDwg7TNp5GbugwSukFMVZqzPSrSMndg=="], "neotraverse": ["neotraverse@0.6.18", "", {}, "sha512-Z4SmBUweYa09+o6pG+eASabEpP6QkQ70yHj351pQoEXIs8uHbaU2DWVmzBANKgflPa47A50PtB2+NgRpQvr7vA=="], @@ -1566,9 +1566,9 @@ "tinyrainbow": ["tinyrainbow@3.1.0", "", {}, "sha512-Bf+ILmBgretUrdJxzXM0SgXLZ3XfiaUuOj/IKQHuTXip+05Xn+uyEYdVg0kYDipTBcLrCVyUzAPz7QmArb0mmw=="], - "tldts": ["tldts@7.4.10", "", { "dependencies": { "tldts-core": "^7.4.10" }, "bin": { "tldts": "bin/cli.js" } }, "sha512-GgouD1B+sWwvkaEq8vXC15DjQitxbvs12oIXELpconwm+Tg3zfcEv4jgzq3vtKverDXsg3VI8aRgNL2Nra0Iog=="], + "tldts": ["tldts@6.1.86", "", { "dependencies": { "tldts-core": "^6.1.86" }, "bin": { "tldts": "bin/cli.js" } }, "sha512-WMi/OQ2axVTf/ykqCQgXiIct+mSQDFdH2fkwhPwgEwvJ1kSzZRiinb0zF2Xb8u4+OqPChmyI6MEu4EezNJz+FQ=="], - "tldts-core": ["tldts-core@7.4.10", "", {}, "sha512-KnQjp53ZekKgm/r3l+u8kJGGzYgrWdP8+Mql7a4vijh2WE0IrZWspQj/TpTxDho/YxO+AnOZnIjQcCD+q6iJsw=="], + "tldts-core": ["tldts-core@6.1.86", "", {}, "sha512-Je6p7pkk+KMzMv2XXKmAE3McmolOQFdxkKw0R8EYNr7sELW46JqnNeTX8ybPiQgvg1ymCoF8LXs5fzFaZvJPTA=="], "toidentifier": ["toidentifier@1.0.1", "", {}, "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA=="], @@ -1750,8 +1750,6 @@ "@babel/helper-compilation-targets/semver": ["semver@6.3.1", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA=="], - "@better-auth/utils/@noble/hashes": ["@noble/hashes@2.0.1", "", {}, "sha512-XlOlEbQcE9fmuXxrVTXCTlG2nlRXa9Rj3rr5Ue/+tX+nmkgbX720YHh0VR3hBF9xDvwnb8D2shVGOwNx+ulArw=="], - "@bruits/satteri-wasm32-wasi/@emnapi/runtime": ["@emnapi/runtime@1.11.1", "", { "dependencies": { "tslib": "^2.4.0" } }, "sha512-vgj7R3y3Wgx24IQaGPA/R6YFXLHVMOZ0uVEyIQPaWs+rd1AzfEMXlAC22FYwO1XkKR6NPsq7mUandH8oIRdZFw=="], "@bruits/satteri-wasm32-wasi/@napi-rs/wasm-runtime": ["@napi-rs/wasm-runtime@1.1.6", "", { "dependencies": { "@tybys/wasm-util": "^0.10.3" }, "peerDependencies": { "@emnapi/core": "^1.7.1", "@emnapi/runtime": "^1.7.1" } }, "sha512-ZLv/JdUfkvOy9eCnnBaGfiO+XimbjebAeO+MRQqD/B+FR1tnRN0tpKSJHRbE8sFfS6aqsXZ67TQjfwfsxULVbg=="], diff --git a/drizzle/0014_fancy_speed_demon.sql b/drizzle/0014_fancy_speed_demon.sql deleted file mode 100644 index 9de713b..0000000 --- a/drizzle/0014_fancy_speed_demon.sql +++ /dev/null @@ -1,57 +0,0 @@ -CREATE TABLE `oauth_client_assertions` ( - `id` text PRIMARY KEY NOT NULL, - `expires_at` integer NOT NULL -); ---> statement-breakpoint -CREATE TABLE `oauth_client_resources` ( - `id` text PRIMARY KEY NOT NULL, - `client_id` text NOT NULL, - `resource_id` text NOT NULL, - `metadata` text, - `created_at` integer DEFAULT (unixepoch()) -); ---> statement-breakpoint -CREATE INDEX `idx_oauth_client_resources_client_id` ON `oauth_client_resources` (`client_id`);--> statement-breakpoint -CREATE INDEX `idx_oauth_client_resources_resource_id` ON `oauth_client_resources` (`resource_id`);--> statement-breakpoint -CREATE TABLE `oauth_resources` ( - `id` text PRIMARY KEY NOT NULL, - `identifier` text NOT NULL, - `name` text NOT NULL, - `access_token_ttl` integer, - `refresh_token_ttl` integer, - `signing_algorithm` text, - `signing_key_id` text, - `allowed_scopes` text, - `custom_claims` text, - `dpop_bound_access_tokens_required` integer, - `disabled` integer, - `policy_version` integer, - `metadata` text, - `created_at` integer DEFAULT (unixepoch()), - `updated_at` integer DEFAULT (unixepoch()) -); ---> statement-breakpoint -CREATE UNIQUE INDEX `oauth_resources_identifier_unique` ON `oauth_resources` (`identifier`);--> statement-breakpoint -CREATE INDEX `idx_oauth_resources_identifier` ON `oauth_resources` (`identifier`);--> statement-breakpoint -ALTER TABLE `oauth_access_tokens` ADD `authorization_code_id` text;--> statement-breakpoint -ALTER TABLE `oauth_access_tokens` ADD `resources` text;--> statement-breakpoint -ALTER TABLE `oauth_access_tokens` ADD `requested_user_info_claims` text;--> statement-breakpoint -ALTER TABLE `oauth_access_tokens` ADD `revoked` integer;--> statement-breakpoint -ALTER TABLE `oauth_access_tokens` ADD `confirmation` text;--> statement-breakpoint -ALTER TABLE `oauth_clients` ADD `client_discovery_id` text;--> statement-breakpoint -ALTER TABLE `oauth_clients` ADD `client_credentials_scopes` text;--> statement-breakpoint -ALTER TABLE `oauth_clients` ADD `backchannel_logout_uri` text;--> statement-breakpoint -ALTER TABLE `oauth_clients` ADD `backchannel_logout_session_required` integer;--> statement-breakpoint -ALTER TABLE `oauth_clients` ADD `application_type` text;--> statement-breakpoint -ALTER TABLE `oauth_clients` ADD `jwks` text;--> statement-breakpoint -ALTER TABLE `oauth_clients` ADD `jwks_uri` text;--> statement-breakpoint -ALTER TABLE `oauth_clients` ADD `dpop_bound_access_tokens` integer;--> statement-breakpoint -ALTER TABLE `oauth_consents` ADD `resources` text;--> statement-breakpoint -ALTER TABLE `oauth_consents` ADD `requested_user_info_claims` text;--> statement-breakpoint -ALTER TABLE `oauth_refresh_tokens` ADD `authorization_code_id` text;--> statement-breakpoint -ALTER TABLE `oauth_refresh_tokens` ADD `resources` text;--> statement-breakpoint -ALTER TABLE `oauth_refresh_tokens` ADD `requested_user_info_claims` text;--> statement-breakpoint -ALTER TABLE `oauth_refresh_tokens` ADD `rotated_at` integer;--> statement-breakpoint -ALTER TABLE `oauth_refresh_tokens` ADD `rotation_replay_response` text;--> statement-breakpoint -ALTER TABLE `oauth_refresh_tokens` ADD `rotation_replay_expires_at` integer;--> statement-breakpoint -ALTER TABLE `oauth_refresh_tokens` ADD `confirmation` text; \ No newline at end of file diff --git a/drizzle/meta/0014_snapshot.json b/drizzle/meta/0014_snapshot.json deleted file mode 100644 index a8aa531..0000000 --- a/drizzle/meta/0014_snapshot.json +++ /dev/null @@ -1,2746 +0,0 @@ -{ - "version": "6", - "dialect": "sqlite", - "id": "5497f059-0e8e-4e89-9a47-b66557b11176", - "prevId": "6beb5116-f397-4dcb-ac73-f2b81079f61d", - "tables": { - "accounts": { - "name": "accounts", - "columns": { - "id": { - "name": "id", - "type": "text", - "primaryKey": true, - "notNull": true, - "autoincrement": false - }, - "account_id": { - "name": "account_id", - "type": "text", - "primaryKey": false, - "notNull": true, - "autoincrement": false - }, - "user_id": { - "name": "user_id", - "type": "text", - "primaryKey": false, - "notNull": true, - "autoincrement": false - }, - "provider_id": { - "name": "provider_id", - "type": "text", - "primaryKey": false, - "notNull": true, - "autoincrement": false - }, - "provider_user_id": { - "name": "provider_user_id", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "access_token": { - "name": "access_token", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "refresh_token": { - "name": "refresh_token", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "id_token": { - "name": "id_token", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "access_token_expires_at": { - "name": "access_token_expires_at", - "type": "integer", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "refresh_token_expires_at": { - "name": "refresh_token_expires_at", - "type": "integer", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "scope": { - "name": "scope", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "expires_at": { - "name": "expires_at", - "type": "integer", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "password": { - "name": "password", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "created_at": { - "name": "created_at", - "type": "integer", - "primaryKey": false, - "notNull": true, - "autoincrement": false, - "default": "(unixepoch())" - }, - "updated_at": { - "name": "updated_at", - "type": "integer", - "primaryKey": false, - "notNull": true, - "autoincrement": false, - "default": "(unixepoch())" - } - }, - "indexes": { - "idx_accounts_account_id": { - "name": "idx_accounts_account_id", - "columns": [ - "account_id" - ], - "isUnique": false - }, - "idx_accounts_user_id": { - "name": "idx_accounts_user_id", - "columns": [ - "user_id" - ], - "isUnique": false - }, - "idx_accounts_provider": { - "name": "idx_accounts_provider", - "columns": [ - "provider_id", - "provider_user_id" - ], - "isUnique": false - } - }, - "foreignKeys": { - "accounts_user_id_users_id_fk": { - "name": "accounts_user_id_users_id_fk", - "tableFrom": "accounts", - "tableTo": "users", - "columnsFrom": [ - "user_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "no action", - "onUpdate": "no action" - } - }, - "compositePrimaryKeys": {}, - "uniqueConstraints": {}, - "checkConstraints": {} - }, - "configs": { - "name": "configs", - "columns": { - "id": { - "name": "id", - "type": "text", - "primaryKey": true, - "notNull": true, - "autoincrement": false - }, - "user_id": { - "name": "user_id", - "type": "text", - "primaryKey": false, - "notNull": true, - "autoincrement": false - }, - "name": { - "name": "name", - "type": "text", - "primaryKey": false, - "notNull": true, - "autoincrement": false - }, - "is_active": { - "name": "is_active", - "type": "integer", - "primaryKey": false, - "notNull": true, - "autoincrement": false, - "default": true - }, - "github_config": { - "name": "github_config", - "type": "text", - "primaryKey": false, - "notNull": true, - "autoincrement": false - }, - "gitea_config": { - "name": "gitea_config", - "type": "text", - "primaryKey": false, - "notNull": true, - "autoincrement": false - }, - "include": { - "name": "include", - "type": "text", - "primaryKey": false, - "notNull": true, - "autoincrement": false, - "default": "'[\"*\"]'" - }, - "exclude": { - "name": "exclude", - "type": "text", - "primaryKey": false, - "notNull": true, - "autoincrement": false, - "default": "'[]'" - }, - "schedule_config": { - "name": "schedule_config", - "type": "text", - "primaryKey": false, - "notNull": true, - "autoincrement": false - }, - "cleanup_config": { - "name": "cleanup_config", - "type": "text", - "primaryKey": false, - "notNull": true, - "autoincrement": false - }, - "notification_config": { - "name": "notification_config", - "type": "text", - "primaryKey": false, - "notNull": true, - "autoincrement": false, - "default": "'{\"enabled\":false,\"provider\":\"ntfy\",\"notifyOnSyncError\":true,\"notifyOnSyncSuccess\":false,\"notifyOnNewRepo\":false}'" - }, - "created_at": { - "name": "created_at", - "type": "integer", - "primaryKey": false, - "notNull": true, - "autoincrement": false, - "default": "(unixepoch())" - }, - "updated_at": { - "name": "updated_at", - "type": "integer", - "primaryKey": false, - "notNull": true, - "autoincrement": false, - "default": "(unixepoch())" - } - }, - "indexes": {}, - "foreignKeys": { - "configs_user_id_users_id_fk": { - "name": "configs_user_id_users_id_fk", - "tableFrom": "configs", - "tableTo": "users", - "columnsFrom": [ - "user_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "no action", - "onUpdate": "no action" - } - }, - "compositePrimaryKeys": {}, - "uniqueConstraints": {}, - "checkConstraints": {} - }, - "events": { - "name": "events", - "columns": { - "id": { - "name": "id", - "type": "text", - "primaryKey": true, - "notNull": true, - "autoincrement": false - }, - "user_id": { - "name": "user_id", - "type": "text", - "primaryKey": false, - "notNull": true, - "autoincrement": false - }, - "channel": { - "name": "channel", - "type": "text", - "primaryKey": false, - "notNull": true, - "autoincrement": false - }, - "payload": { - "name": "payload", - "type": "text", - "primaryKey": false, - "notNull": true, - "autoincrement": false - }, - "read": { - "name": "read", - "type": "integer", - "primaryKey": false, - "notNull": true, - "autoincrement": false, - "default": false - }, - "created_at": { - "name": "created_at", - "type": "integer", - "primaryKey": false, - "notNull": true, - "autoincrement": false, - "default": "(unixepoch())" - } - }, - "indexes": { - "idx_events_user_channel": { - "name": "idx_events_user_channel", - "columns": [ - "user_id", - "channel" - ], - "isUnique": false - }, - "idx_events_created_at": { - "name": "idx_events_created_at", - "columns": [ - "created_at" - ], - "isUnique": false - }, - "idx_events_read": { - "name": "idx_events_read", - "columns": [ - "read" - ], - "isUnique": false - } - }, - "foreignKeys": { - "events_user_id_users_id_fk": { - "name": "events_user_id_users_id_fk", - "tableFrom": "events", - "tableTo": "users", - "columnsFrom": [ - "user_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "no action", - "onUpdate": "no action" - } - }, - "compositePrimaryKeys": {}, - "uniqueConstraints": {}, - "checkConstraints": {} - }, - "jwks": { - "name": "jwks", - "columns": { - "id": { - "name": "id", - "type": "text", - "primaryKey": true, - "notNull": true, - "autoincrement": false - }, - "public_key": { - "name": "public_key", - "type": "text", - "primaryKey": false, - "notNull": true, - "autoincrement": false - }, - "private_key": { - "name": "private_key", - "type": "text", - "primaryKey": false, - "notNull": true, - "autoincrement": false - }, - "created_at": { - "name": "created_at", - "type": "integer", - "primaryKey": false, - "notNull": true, - "autoincrement": false, - "default": "(unixepoch())" - }, - "expires_at": { - "name": "expires_at", - "type": "integer", - "primaryKey": false, - "notNull": false, - "autoincrement": false - } - }, - "indexes": {}, - "foreignKeys": {}, - "compositePrimaryKeys": {}, - "uniqueConstraints": {}, - "checkConstraints": {} - }, - "mirror_jobs": { - "name": "mirror_jobs", - "columns": { - "id": { - "name": "id", - "type": "text", - "primaryKey": true, - "notNull": true, - "autoincrement": false - }, - "user_id": { - "name": "user_id", - "type": "text", - "primaryKey": false, - "notNull": true, - "autoincrement": false - }, - "repository_id": { - "name": "repository_id", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "repository_name": { - "name": "repository_name", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "organization_id": { - "name": "organization_id", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "organization_name": { - "name": "organization_name", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "details": { - "name": "details", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "status": { - "name": "status", - "type": "text", - "primaryKey": false, - "notNull": true, - "autoincrement": false, - "default": "'imported'" - }, - "message": { - "name": "message", - "type": "text", - "primaryKey": false, - "notNull": true, - "autoincrement": false - }, - "timestamp": { - "name": "timestamp", - "type": "integer", - "primaryKey": false, - "notNull": true, - "autoincrement": false, - "default": "(unixepoch())" - }, - "job_type": { - "name": "job_type", - "type": "text", - "primaryKey": false, - "notNull": true, - "autoincrement": false, - "default": "'mirror'" - }, - "batch_id": { - "name": "batch_id", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "total_items": { - "name": "total_items", - "type": "integer", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "completed_items": { - "name": "completed_items", - "type": "integer", - "primaryKey": false, - "notNull": false, - "autoincrement": false, - "default": 0 - }, - "item_ids": { - "name": "item_ids", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "completed_item_ids": { - "name": "completed_item_ids", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false, - "default": "'[]'" - }, - "in_progress": { - "name": "in_progress", - "type": "integer", - "primaryKey": false, - "notNull": true, - "autoincrement": false, - "default": false - }, - "started_at": { - "name": "started_at", - "type": "integer", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "completed_at": { - "name": "completed_at", - "type": "integer", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "last_checkpoint": { - "name": "last_checkpoint", - "type": "integer", - "primaryKey": false, - "notNull": false, - "autoincrement": false - } - }, - "indexes": { - "idx_mirror_jobs_user_id": { - "name": "idx_mirror_jobs_user_id", - "columns": [ - "user_id" - ], - "isUnique": false - }, - "idx_mirror_jobs_batch_id": { - "name": "idx_mirror_jobs_batch_id", - "columns": [ - "batch_id" - ], - "isUnique": false - }, - "idx_mirror_jobs_in_progress": { - "name": "idx_mirror_jobs_in_progress", - "columns": [ - "in_progress" - ], - "isUnique": false - }, - "idx_mirror_jobs_job_type": { - "name": "idx_mirror_jobs_job_type", - "columns": [ - "job_type" - ], - "isUnique": false - }, - "idx_mirror_jobs_timestamp": { - "name": "idx_mirror_jobs_timestamp", - "columns": [ - "timestamp" - ], - "isUnique": false - } - }, - "foreignKeys": { - "mirror_jobs_user_id_users_id_fk": { - "name": "mirror_jobs_user_id_users_id_fk", - "tableFrom": "mirror_jobs", - "tableTo": "users", - "columnsFrom": [ - "user_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "no action", - "onUpdate": "no action" - } - }, - "compositePrimaryKeys": {}, - "uniqueConstraints": {}, - "checkConstraints": {} - }, - "oauth_access_tokens": { - "name": "oauth_access_tokens", - "columns": { - "id": { - "name": "id", - "type": "text", - "primaryKey": true, - "notNull": true, - "autoincrement": false - }, - "token": { - "name": "token", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "client_id": { - "name": "client_id", - "type": "text", - "primaryKey": false, - "notNull": true, - "autoincrement": false - }, - "session_id": { - "name": "session_id", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "user_id": { - "name": "user_id", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "reference_id": { - "name": "reference_id", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "refresh_id": { - "name": "refresh_id", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "expires_at": { - "name": "expires_at", - "type": "integer", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "created_at": { - "name": "created_at", - "type": "integer", - "primaryKey": false, - "notNull": false, - "autoincrement": false, - "default": "(unixepoch())" - }, - "scopes": { - "name": "scopes", - "type": "text", - "primaryKey": false, - "notNull": true, - "autoincrement": false - }, - "authorization_code_id": { - "name": "authorization_code_id", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "resources": { - "name": "resources", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "requested_user_info_claims": { - "name": "requested_user_info_claims", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "revoked": { - "name": "revoked", - "type": "integer", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "confirmation": { - "name": "confirmation", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false - } - }, - "indexes": { - "oauth_access_tokens_token_unique": { - "name": "oauth_access_tokens_token_unique", - "columns": [ - "token" - ], - "isUnique": true - }, - "idx_oauth_access_tokens_token": { - "name": "idx_oauth_access_tokens_token", - "columns": [ - "token" - ], - "isUnique": false - }, - "idx_oauth_access_tokens_client_id": { - "name": "idx_oauth_access_tokens_client_id", - "columns": [ - "client_id" - ], - "isUnique": false - }, - "idx_oauth_access_tokens_user_id": { - "name": "idx_oauth_access_tokens_user_id", - "columns": [ - "user_id" - ], - "isUnique": false - } - }, - "foreignKeys": { - "oauth_access_tokens_user_id_users_id_fk": { - "name": "oauth_access_tokens_user_id_users_id_fk", - "tableFrom": "oauth_access_tokens", - "tableTo": "users", - "columnsFrom": [ - "user_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "no action", - "onUpdate": "no action" - } - }, - "compositePrimaryKeys": {}, - "uniqueConstraints": {}, - "checkConstraints": {} - }, - "oauth_client_assertions": { - "name": "oauth_client_assertions", - "columns": { - "id": { - "name": "id", - "type": "text", - "primaryKey": true, - "notNull": true, - "autoincrement": false - }, - "expires_at": { - "name": "expires_at", - "type": "integer", - "primaryKey": false, - "notNull": true, - "autoincrement": false - } - }, - "indexes": {}, - "foreignKeys": {}, - "compositePrimaryKeys": {}, - "uniqueConstraints": {}, - "checkConstraints": {} - }, - "oauth_client_resources": { - "name": "oauth_client_resources", - "columns": { - "id": { - "name": "id", - "type": "text", - "primaryKey": true, - "notNull": true, - "autoincrement": false - }, - "client_id": { - "name": "client_id", - "type": "text", - "primaryKey": false, - "notNull": true, - "autoincrement": false - }, - "resource_id": { - "name": "resource_id", - "type": "text", - "primaryKey": false, - "notNull": true, - "autoincrement": false - }, - "metadata": { - "name": "metadata", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "created_at": { - "name": "created_at", - "type": "integer", - "primaryKey": false, - "notNull": false, - "autoincrement": false, - "default": "(unixepoch())" - } - }, - "indexes": { - "idx_oauth_client_resources_client_id": { - "name": "idx_oauth_client_resources_client_id", - "columns": [ - "client_id" - ], - "isUnique": false - }, - "idx_oauth_client_resources_resource_id": { - "name": "idx_oauth_client_resources_resource_id", - "columns": [ - "resource_id" - ], - "isUnique": false - } - }, - "foreignKeys": {}, - "compositePrimaryKeys": {}, - "uniqueConstraints": {}, - "checkConstraints": {} - }, - "oauth_clients": { - "name": "oauth_clients", - "columns": { - "id": { - "name": "id", - "type": "text", - "primaryKey": true, - "notNull": true, - "autoincrement": false - }, - "client_id": { - "name": "client_id", - "type": "text", - "primaryKey": false, - "notNull": true, - "autoincrement": false - }, - "client_secret": { - "name": "client_secret", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "name": { - "name": "name", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "disabled": { - "name": "disabled", - "type": "integer", - "primaryKey": false, - "notNull": false, - "autoincrement": false, - "default": false - }, - "skip_consent": { - "name": "skip_consent", - "type": "integer", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "enable_end_session": { - "name": "enable_end_session", - "type": "integer", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "subject_type": { - "name": "subject_type", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "scopes": { - "name": "scopes", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "user_id": { - "name": "user_id", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "uri": { - "name": "uri", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "icon": { - "name": "icon", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "contacts": { - "name": "contacts", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "tos": { - "name": "tos", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "policy": { - "name": "policy", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "software_id": { - "name": "software_id", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "software_version": { - "name": "software_version", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "software_statement": { - "name": "software_statement", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "redirect_uris": { - "name": "redirect_uris", - "type": "text", - "primaryKey": false, - "notNull": true, - "autoincrement": false - }, - "post_logout_redirect_uris": { - "name": "post_logout_redirect_uris", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "token_endpoint_auth_method": { - "name": "token_endpoint_auth_method", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "grant_types": { - "name": "grant_types", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "response_types": { - "name": "response_types", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "public": { - "name": "public", - "type": "integer", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "type": { - "name": "type", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "require_pkce": { - "name": "require_pkce", - "type": "integer", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "client_discovery_id": { - "name": "client_discovery_id", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "client_credentials_scopes": { - "name": "client_credentials_scopes", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "backchannel_logout_uri": { - "name": "backchannel_logout_uri", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "backchannel_logout_session_required": { - "name": "backchannel_logout_session_required", - "type": "integer", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "application_type": { - "name": "application_type", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "jwks": { - "name": "jwks", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "jwks_uri": { - "name": "jwks_uri", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "dpop_bound_access_tokens": { - "name": "dpop_bound_access_tokens", - "type": "integer", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "reference_id": { - "name": "reference_id", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "metadata": { - "name": "metadata", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "created_at": { - "name": "created_at", - "type": "integer", - "primaryKey": false, - "notNull": false, - "autoincrement": false, - "default": "(unixepoch())" - }, - "updated_at": { - "name": "updated_at", - "type": "integer", - "primaryKey": false, - "notNull": false, - "autoincrement": false, - "default": "(unixepoch())" - } - }, - "indexes": { - "oauth_clients_client_id_unique": { - "name": "oauth_clients_client_id_unique", - "columns": [ - "client_id" - ], - "isUnique": true - }, - "idx_oauth_clients_client_id": { - "name": "idx_oauth_clients_client_id", - "columns": [ - "client_id" - ], - "isUnique": false - }, - "idx_oauth_clients_user_id": { - "name": "idx_oauth_clients_user_id", - "columns": [ - "user_id" - ], - "isUnique": false - } - }, - "foreignKeys": { - "oauth_clients_user_id_users_id_fk": { - "name": "oauth_clients_user_id_users_id_fk", - "tableFrom": "oauth_clients", - "tableTo": "users", - "columnsFrom": [ - "user_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "no action", - "onUpdate": "no action" - } - }, - "compositePrimaryKeys": {}, - "uniqueConstraints": {}, - "checkConstraints": {} - }, - "oauth_consents": { - "name": "oauth_consents", - "columns": { - "id": { - "name": "id", - "type": "text", - "primaryKey": true, - "notNull": true, - "autoincrement": false - }, - "client_id": { - "name": "client_id", - "type": "text", - "primaryKey": false, - "notNull": true, - "autoincrement": false - }, - "user_id": { - "name": "user_id", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "reference_id": { - "name": "reference_id", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "scopes": { - "name": "scopes", - "type": "text", - "primaryKey": false, - "notNull": true, - "autoincrement": false - }, - "resources": { - "name": "resources", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "requested_user_info_claims": { - "name": "requested_user_info_claims", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "created_at": { - "name": "created_at", - "type": "integer", - "primaryKey": false, - "notNull": false, - "autoincrement": false, - "default": "(unixepoch())" - }, - "updated_at": { - "name": "updated_at", - "type": "integer", - "primaryKey": false, - "notNull": false, - "autoincrement": false, - "default": "(unixepoch())" - } - }, - "indexes": { - "idx_oauth_consents_client_id": { - "name": "idx_oauth_consents_client_id", - "columns": [ - "client_id" - ], - "isUnique": false - }, - "idx_oauth_consents_user_id": { - "name": "idx_oauth_consents_user_id", - "columns": [ - "user_id" - ], - "isUnique": false - } - }, - "foreignKeys": { - "oauth_consents_user_id_users_id_fk": { - "name": "oauth_consents_user_id_users_id_fk", - "tableFrom": "oauth_consents", - "tableTo": "users", - "columnsFrom": [ - "user_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "no action", - "onUpdate": "no action" - } - }, - "compositePrimaryKeys": {}, - "uniqueConstraints": {}, - "checkConstraints": {} - }, - "oauth_refresh_tokens": { - "name": "oauth_refresh_tokens", - "columns": { - "id": { - "name": "id", - "type": "text", - "primaryKey": true, - "notNull": true, - "autoincrement": false - }, - "token": { - "name": "token", - "type": "text", - "primaryKey": false, - "notNull": true, - "autoincrement": false - }, - "client_id": { - "name": "client_id", - "type": "text", - "primaryKey": false, - "notNull": true, - "autoincrement": false - }, - "session_id": { - "name": "session_id", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "user_id": { - "name": "user_id", - "type": "text", - "primaryKey": false, - "notNull": true, - "autoincrement": false - }, - "reference_id": { - "name": "reference_id", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "expires_at": { - "name": "expires_at", - "type": "integer", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "created_at": { - "name": "created_at", - "type": "integer", - "primaryKey": false, - "notNull": false, - "autoincrement": false, - "default": "(unixepoch())" - }, - "revoked": { - "name": "revoked", - "type": "integer", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "auth_time": { - "name": "auth_time", - "type": "integer", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "scopes": { - "name": "scopes", - "type": "text", - "primaryKey": false, - "notNull": true, - "autoincrement": false - }, - "authorization_code_id": { - "name": "authorization_code_id", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "resources": { - "name": "resources", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "requested_user_info_claims": { - "name": "requested_user_info_claims", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "rotated_at": { - "name": "rotated_at", - "type": "integer", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "rotation_replay_response": { - "name": "rotation_replay_response", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "rotation_replay_expires_at": { - "name": "rotation_replay_expires_at", - "type": "integer", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "confirmation": { - "name": "confirmation", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false - } - }, - "indexes": { - "oauth_refresh_tokens_token_unique": { - "name": "oauth_refresh_tokens_token_unique", - "columns": [ - "token" - ], - "isUnique": true - }, - "idx_oauth_refresh_tokens_token": { - "name": "idx_oauth_refresh_tokens_token", - "columns": [ - "token" - ], - "isUnique": false - }, - "idx_oauth_refresh_tokens_client_id": { - "name": "idx_oauth_refresh_tokens_client_id", - "columns": [ - "client_id" - ], - "isUnique": false - }, - "idx_oauth_refresh_tokens_user_id": { - "name": "idx_oauth_refresh_tokens_user_id", - "columns": [ - "user_id" - ], - "isUnique": false - } - }, - "foreignKeys": { - "oauth_refresh_tokens_user_id_users_id_fk": { - "name": "oauth_refresh_tokens_user_id_users_id_fk", - "tableFrom": "oauth_refresh_tokens", - "tableTo": "users", - "columnsFrom": [ - "user_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "no action", - "onUpdate": "no action" - } - }, - "compositePrimaryKeys": {}, - "uniqueConstraints": {}, - "checkConstraints": {} - }, - "oauth_resources": { - "name": "oauth_resources", - "columns": { - "id": { - "name": "id", - "type": "text", - "primaryKey": true, - "notNull": true, - "autoincrement": false - }, - "identifier": { - "name": "identifier", - "type": "text", - "primaryKey": false, - "notNull": true, - "autoincrement": false - }, - "name": { - "name": "name", - "type": "text", - "primaryKey": false, - "notNull": true, - "autoincrement": false - }, - "access_token_ttl": { - "name": "access_token_ttl", - "type": "integer", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "refresh_token_ttl": { - "name": "refresh_token_ttl", - "type": "integer", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "signing_algorithm": { - "name": "signing_algorithm", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "signing_key_id": { - "name": "signing_key_id", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "allowed_scopes": { - "name": "allowed_scopes", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "custom_claims": { - "name": "custom_claims", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "dpop_bound_access_tokens_required": { - "name": "dpop_bound_access_tokens_required", - "type": "integer", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "disabled": { - "name": "disabled", - "type": "integer", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "policy_version": { - "name": "policy_version", - "type": "integer", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "metadata": { - "name": "metadata", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "created_at": { - "name": "created_at", - "type": "integer", - "primaryKey": false, - "notNull": false, - "autoincrement": false, - "default": "(unixepoch())" - }, - "updated_at": { - "name": "updated_at", - "type": "integer", - "primaryKey": false, - "notNull": false, - "autoincrement": false, - "default": "(unixepoch())" - } - }, - "indexes": { - "oauth_resources_identifier_unique": { - "name": "oauth_resources_identifier_unique", - "columns": [ - "identifier" - ], - "isUnique": true - }, - "idx_oauth_resources_identifier": { - "name": "idx_oauth_resources_identifier", - "columns": [ - "identifier" - ], - "isUnique": false - } - }, - "foreignKeys": {}, - "compositePrimaryKeys": {}, - "uniqueConstraints": {}, - "checkConstraints": {} - }, - "organizations": { - "name": "organizations", - "columns": { - "id": { - "name": "id", - "type": "text", - "primaryKey": true, - "notNull": true, - "autoincrement": false - }, - "user_id": { - "name": "user_id", - "type": "text", - "primaryKey": false, - "notNull": true, - "autoincrement": false - }, - "config_id": { - "name": "config_id", - "type": "text", - "primaryKey": false, - "notNull": true, - "autoincrement": false - }, - "name": { - "name": "name", - "type": "text", - "primaryKey": false, - "notNull": true, - "autoincrement": false - }, - "normalized_name": { - "name": "normalized_name", - "type": "text", - "primaryKey": false, - "notNull": true, - "autoincrement": false - }, - "avatar_url": { - "name": "avatar_url", - "type": "text", - "primaryKey": false, - "notNull": true, - "autoincrement": false - }, - "membership_role": { - "name": "membership_role", - "type": "text", - "primaryKey": false, - "notNull": true, - "autoincrement": false, - "default": "'member'" - }, - "is_included": { - "name": "is_included", - "type": "integer", - "primaryKey": false, - "notNull": true, - "autoincrement": false, - "default": true - }, - "destination_org": { - "name": "destination_org", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "status": { - "name": "status", - "type": "text", - "primaryKey": false, - "notNull": true, - "autoincrement": false, - "default": "'imported'" - }, - "last_mirrored": { - "name": "last_mirrored", - "type": "integer", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "error_message": { - "name": "error_message", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "repository_count": { - "name": "repository_count", - "type": "integer", - "primaryKey": false, - "notNull": true, - "autoincrement": false, - "default": 0 - }, - "public_repository_count": { - "name": "public_repository_count", - "type": "integer", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "private_repository_count": { - "name": "private_repository_count", - "type": "integer", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "fork_repository_count": { - "name": "fork_repository_count", - "type": "integer", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "created_at": { - "name": "created_at", - "type": "integer", - "primaryKey": false, - "notNull": true, - "autoincrement": false, - "default": "(unixepoch())" - }, - "updated_at": { - "name": "updated_at", - "type": "integer", - "primaryKey": false, - "notNull": true, - "autoincrement": false, - "default": "(unixepoch())" - } - }, - "indexes": { - "idx_organizations_user_id": { - "name": "idx_organizations_user_id", - "columns": [ - "user_id" - ], - "isUnique": false - }, - "idx_organizations_config_id": { - "name": "idx_organizations_config_id", - "columns": [ - "config_id" - ], - "isUnique": false - }, - "idx_organizations_status": { - "name": "idx_organizations_status", - "columns": [ - "status" - ], - "isUnique": false - }, - "idx_organizations_is_included": { - "name": "idx_organizations_is_included", - "columns": [ - "is_included" - ], - "isUnique": false - }, - "uniq_organizations_user_normalized_name": { - "name": "uniq_organizations_user_normalized_name", - "columns": [ - "user_id", - "normalized_name" - ], - "isUnique": true - } - }, - "foreignKeys": { - "organizations_user_id_users_id_fk": { - "name": "organizations_user_id_users_id_fk", - "tableFrom": "organizations", - "tableTo": "users", - "columnsFrom": [ - "user_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "no action", - "onUpdate": "no action" - }, - "organizations_config_id_configs_id_fk": { - "name": "organizations_config_id_configs_id_fk", - "tableFrom": "organizations", - "tableTo": "configs", - "columnsFrom": [ - "config_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "no action", - "onUpdate": "no action" - } - }, - "compositePrimaryKeys": {}, - "uniqueConstraints": {}, - "checkConstraints": {} - }, - "rate_limits": { - "name": "rate_limits", - "columns": { - "id": { - "name": "id", - "type": "text", - "primaryKey": true, - "notNull": true, - "autoincrement": false - }, - "user_id": { - "name": "user_id", - "type": "text", - "primaryKey": false, - "notNull": true, - "autoincrement": false - }, - "provider": { - "name": "provider", - "type": "text", - "primaryKey": false, - "notNull": true, - "autoincrement": false, - "default": "'github'" - }, - "limit": { - "name": "limit", - "type": "integer", - "primaryKey": false, - "notNull": true, - "autoincrement": false - }, - "remaining": { - "name": "remaining", - "type": "integer", - "primaryKey": false, - "notNull": true, - "autoincrement": false - }, - "used": { - "name": "used", - "type": "integer", - "primaryKey": false, - "notNull": true, - "autoincrement": false - }, - "reset": { - "name": "reset", - "type": "integer", - "primaryKey": false, - "notNull": true, - "autoincrement": false - }, - "retry_after": { - "name": "retry_after", - "type": "integer", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "status": { - "name": "status", - "type": "text", - "primaryKey": false, - "notNull": true, - "autoincrement": false, - "default": "'ok'" - }, - "last_checked": { - "name": "last_checked", - "type": "integer", - "primaryKey": false, - "notNull": true, - "autoincrement": false - }, - "created_at": { - "name": "created_at", - "type": "integer", - "primaryKey": false, - "notNull": true, - "autoincrement": false, - "default": "(unixepoch())" - }, - "updated_at": { - "name": "updated_at", - "type": "integer", - "primaryKey": false, - "notNull": true, - "autoincrement": false, - "default": "(unixepoch())" - } - }, - "indexes": { - "idx_rate_limits_user_provider": { - "name": "idx_rate_limits_user_provider", - "columns": [ - "user_id", - "provider" - ], - "isUnique": false - }, - "idx_rate_limits_status": { - "name": "idx_rate_limits_status", - "columns": [ - "status" - ], - "isUnique": false - } - }, - "foreignKeys": { - "rate_limits_user_id_users_id_fk": { - "name": "rate_limits_user_id_users_id_fk", - "tableFrom": "rate_limits", - "tableTo": "users", - "columnsFrom": [ - "user_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "no action", - "onUpdate": "no action" - } - }, - "compositePrimaryKeys": {}, - "uniqueConstraints": {}, - "checkConstraints": {} - }, - "repositories": { - "name": "repositories", - "columns": { - "id": { - "name": "id", - "type": "text", - "primaryKey": true, - "notNull": true, - "autoincrement": false - }, - "user_id": { - "name": "user_id", - "type": "text", - "primaryKey": false, - "notNull": true, - "autoincrement": false - }, - "config_id": { - "name": "config_id", - "type": "text", - "primaryKey": false, - "notNull": true, - "autoincrement": false - }, - "name": { - "name": "name", - "type": "text", - "primaryKey": false, - "notNull": true, - "autoincrement": false - }, - "full_name": { - "name": "full_name", - "type": "text", - "primaryKey": false, - "notNull": true, - "autoincrement": false - }, - "normalized_full_name": { - "name": "normalized_full_name", - "type": "text", - "primaryKey": false, - "notNull": true, - "autoincrement": false - }, - "url": { - "name": "url", - "type": "text", - "primaryKey": false, - "notNull": true, - "autoincrement": false - }, - "clone_url": { - "name": "clone_url", - "type": "text", - "primaryKey": false, - "notNull": true, - "autoincrement": false - }, - "owner": { - "name": "owner", - "type": "text", - "primaryKey": false, - "notNull": true, - "autoincrement": false - }, - "organization": { - "name": "organization", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "mirrored_location": { - "name": "mirrored_location", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false, - "default": "''" - }, - "is_private": { - "name": "is_private", - "type": "integer", - "primaryKey": false, - "notNull": true, - "autoincrement": false, - "default": false - }, - "is_fork": { - "name": "is_fork", - "type": "integer", - "primaryKey": false, - "notNull": true, - "autoincrement": false, - "default": false - }, - "forked_from": { - "name": "forked_from", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "has_issues": { - "name": "has_issues", - "type": "integer", - "primaryKey": false, - "notNull": true, - "autoincrement": false, - "default": false - }, - "is_starred": { - "name": "is_starred", - "type": "integer", - "primaryKey": false, - "notNull": true, - "autoincrement": false, - "default": false - }, - "is_archived": { - "name": "is_archived", - "type": "integer", - "primaryKey": false, - "notNull": true, - "autoincrement": false, - "default": false - }, - "size": { - "name": "size", - "type": "integer", - "primaryKey": false, - "notNull": true, - "autoincrement": false, - "default": 0 - }, - "has_lfs": { - "name": "has_lfs", - "type": "integer", - "primaryKey": false, - "notNull": true, - "autoincrement": false, - "default": false - }, - "has_submodules": { - "name": "has_submodules", - "type": "integer", - "primaryKey": false, - "notNull": true, - "autoincrement": false, - "default": false - }, - "language": { - "name": "language", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "description": { - "name": "description", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "default_branch": { - "name": "default_branch", - "type": "text", - "primaryKey": false, - "notNull": true, - "autoincrement": false - }, - "visibility": { - "name": "visibility", - "type": "text", - "primaryKey": false, - "notNull": true, - "autoincrement": false, - "default": "'public'" - }, - "status": { - "name": "status", - "type": "text", - "primaryKey": false, - "notNull": true, - "autoincrement": false, - "default": "'imported'" - }, - "last_mirrored": { - "name": "last_mirrored", - "type": "integer", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "error_message": { - "name": "error_message", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "destination_org": { - "name": "destination_org", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "metadata": { - "name": "metadata", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "imported_at": { - "name": "imported_at", - "type": "integer", - "primaryKey": false, - "notNull": true, - "autoincrement": false, - "default": "(unixepoch())" - }, - "created_at": { - "name": "created_at", - "type": "integer", - "primaryKey": false, - "notNull": true, - "autoincrement": false, - "default": "(unixepoch())" - }, - "updated_at": { - "name": "updated_at", - "type": "integer", - "primaryKey": false, - "notNull": true, - "autoincrement": false, - "default": "(unixepoch())" - } - }, - "indexes": { - "idx_repositories_user_id": { - "name": "idx_repositories_user_id", - "columns": [ - "user_id" - ], - "isUnique": false - }, - "idx_repositories_config_id": { - "name": "idx_repositories_config_id", - "columns": [ - "config_id" - ], - "isUnique": false - }, - "idx_repositories_status": { - "name": "idx_repositories_status", - "columns": [ - "status" - ], - "isUnique": false - }, - "idx_repositories_owner": { - "name": "idx_repositories_owner", - "columns": [ - "owner" - ], - "isUnique": false - }, - "idx_repositories_organization": { - "name": "idx_repositories_organization", - "columns": [ - "organization" - ], - "isUnique": false - }, - "idx_repositories_is_fork": { - "name": "idx_repositories_is_fork", - "columns": [ - "is_fork" - ], - "isUnique": false - }, - "idx_repositories_is_starred": { - "name": "idx_repositories_is_starred", - "columns": [ - "is_starred" - ], - "isUnique": false - }, - "idx_repositories_user_imported_at": { - "name": "idx_repositories_user_imported_at", - "columns": [ - "user_id", - "imported_at" - ], - "isUnique": false - }, - "uniq_repositories_user_full_name": { - "name": "uniq_repositories_user_full_name", - "columns": [ - "user_id", - "full_name" - ], - "isUnique": true - }, - "uniq_repositories_user_normalized_full_name": { - "name": "uniq_repositories_user_normalized_full_name", - "columns": [ - "user_id", - "normalized_full_name" - ], - "isUnique": true - }, - "idx_repositories_mirrored_location": { - "name": "idx_repositories_mirrored_location", - "columns": [ - "user_id", - "mirrored_location" - ], - "isUnique": false - } - }, - "foreignKeys": { - "repositories_user_id_users_id_fk": { - "name": "repositories_user_id_users_id_fk", - "tableFrom": "repositories", - "tableTo": "users", - "columnsFrom": [ - "user_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "no action", - "onUpdate": "no action" - }, - "repositories_config_id_configs_id_fk": { - "name": "repositories_config_id_configs_id_fk", - "tableFrom": "repositories", - "tableTo": "configs", - "columnsFrom": [ - "config_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "no action", - "onUpdate": "no action" - } - }, - "compositePrimaryKeys": {}, - "uniqueConstraints": {}, - "checkConstraints": {} - }, - "sessions": { - "name": "sessions", - "columns": { - "id": { - "name": "id", - "type": "text", - "primaryKey": true, - "notNull": true, - "autoincrement": false - }, - "token": { - "name": "token", - "type": "text", - "primaryKey": false, - "notNull": true, - "autoincrement": false - }, - "user_id": { - "name": "user_id", - "type": "text", - "primaryKey": false, - "notNull": true, - "autoincrement": false - }, - "expires_at": { - "name": "expires_at", - "type": "integer", - "primaryKey": false, - "notNull": true, - "autoincrement": false - }, - "ip_address": { - "name": "ip_address", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "user_agent": { - "name": "user_agent", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "created_at": { - "name": "created_at", - "type": "integer", - "primaryKey": false, - "notNull": true, - "autoincrement": false, - "default": "(unixepoch())" - }, - "updated_at": { - "name": "updated_at", - "type": "integer", - "primaryKey": false, - "notNull": true, - "autoincrement": false, - "default": "(unixepoch())" - } - }, - "indexes": { - "sessions_token_unique": { - "name": "sessions_token_unique", - "columns": [ - "token" - ], - "isUnique": true - }, - "idx_sessions_user_id": { - "name": "idx_sessions_user_id", - "columns": [ - "user_id" - ], - "isUnique": false - }, - "idx_sessions_token": { - "name": "idx_sessions_token", - "columns": [ - "token" - ], - "isUnique": false - }, - "idx_sessions_expires_at": { - "name": "idx_sessions_expires_at", - "columns": [ - "expires_at" - ], - "isUnique": false - } - }, - "foreignKeys": { - "sessions_user_id_users_id_fk": { - "name": "sessions_user_id_users_id_fk", - "tableFrom": "sessions", - "tableTo": "users", - "columnsFrom": [ - "user_id" - ], - "columnsTo": [ - "id" - ], - "onDelete": "no action", - "onUpdate": "no action" - } - }, - "compositePrimaryKeys": {}, - "uniqueConstraints": {}, - "checkConstraints": {} - }, - "sso_providers": { - "name": "sso_providers", - "columns": { - "id": { - "name": "id", - "type": "text", - "primaryKey": true, - "notNull": true, - "autoincrement": false - }, - "issuer": { - "name": "issuer", - "type": "text", - "primaryKey": false, - "notNull": true, - "autoincrement": false - }, - "domain": { - "name": "domain", - "type": "text", - "primaryKey": false, - "notNull": true, - "autoincrement": false - }, - "oidc_config": { - "name": "oidc_config", - "type": "text", - "primaryKey": false, - "notNull": true, - "autoincrement": false - }, - "saml_config": { - "name": "saml_config", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "domain_verified": { - "name": "domain_verified", - "type": "integer", - "primaryKey": false, - "notNull": true, - "autoincrement": false, - "default": true - }, - "user_id": { - "name": "user_id", - "type": "text", - "primaryKey": false, - "notNull": true, - "autoincrement": false - }, - "provider_id": { - "name": "provider_id", - "type": "text", - "primaryKey": false, - "notNull": true, - "autoincrement": false - }, - "organization_id": { - "name": "organization_id", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "created_at": { - "name": "created_at", - "type": "integer", - "primaryKey": false, - "notNull": true, - "autoincrement": false, - "default": "(unixepoch())" - }, - "updated_at": { - "name": "updated_at", - "type": "integer", - "primaryKey": false, - "notNull": true, - "autoincrement": false, - "default": "(unixepoch())" - } - }, - "indexes": { - "sso_providers_provider_id_unique": { - "name": "sso_providers_provider_id_unique", - "columns": [ - "provider_id" - ], - "isUnique": true - }, - "idx_sso_providers_provider_id": { - "name": "idx_sso_providers_provider_id", - "columns": [ - "provider_id" - ], - "isUnique": false - }, - "idx_sso_providers_domain": { - "name": "idx_sso_providers_domain", - "columns": [ - "domain" - ], - "isUnique": false - }, - "idx_sso_providers_issuer": { - "name": "idx_sso_providers_issuer", - "columns": [ - "issuer" - ], - "isUnique": false - } - }, - "foreignKeys": {}, - "compositePrimaryKeys": {}, - "uniqueConstraints": {}, - "checkConstraints": {} - }, - "users": { - "name": "users", - "columns": { - "id": { - "name": "id", - "type": "text", - "primaryKey": true, - "notNull": true, - "autoincrement": false - }, - "name": { - "name": "name", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "email": { - "name": "email", - "type": "text", - "primaryKey": false, - "notNull": true, - "autoincrement": false - }, - "email_verified": { - "name": "email_verified", - "type": "integer", - "primaryKey": false, - "notNull": true, - "autoincrement": false, - "default": false - }, - "image": { - "name": "image", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "created_at": { - "name": "created_at", - "type": "integer", - "primaryKey": false, - "notNull": true, - "autoincrement": false, - "default": "(unixepoch())" - }, - "updated_at": { - "name": "updated_at", - "type": "integer", - "primaryKey": false, - "notNull": true, - "autoincrement": false, - "default": "(unixepoch())" - }, - "username": { - "name": "username", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false - } - }, - "indexes": { - "users_email_unique": { - "name": "users_email_unique", - "columns": [ - "email" - ], - "isUnique": true - } - }, - "foreignKeys": {}, - "compositePrimaryKeys": {}, - "uniqueConstraints": {}, - "checkConstraints": {} - }, - "verification_tokens": { - "name": "verification_tokens", - "columns": { - "id": { - "name": "id", - "type": "text", - "primaryKey": true, - "notNull": true, - "autoincrement": false - }, - "token": { - "name": "token", - "type": "text", - "primaryKey": false, - "notNull": true, - "autoincrement": false - }, - "identifier": { - "name": "identifier", - "type": "text", - "primaryKey": false, - "notNull": true, - "autoincrement": false - }, - "type": { - "name": "type", - "type": "text", - "primaryKey": false, - "notNull": true, - "autoincrement": false - }, - "expires_at": { - "name": "expires_at", - "type": "integer", - "primaryKey": false, - "notNull": true, - "autoincrement": false - }, - "created_at": { - "name": "created_at", - "type": "integer", - "primaryKey": false, - "notNull": true, - "autoincrement": false, - "default": "(unixepoch())" - } - }, - "indexes": { - "verification_tokens_token_unique": { - "name": "verification_tokens_token_unique", - "columns": [ - "token" - ], - "isUnique": true - }, - "idx_verification_tokens_token": { - "name": "idx_verification_tokens_token", - "columns": [ - "token" - ], - "isUnique": false - }, - "idx_verification_tokens_identifier": { - "name": "idx_verification_tokens_identifier", - "columns": [ - "identifier" - ], - "isUnique": false - } - }, - "foreignKeys": {}, - "compositePrimaryKeys": {}, - "uniqueConstraints": {}, - "checkConstraints": {} - }, - "verifications": { - "name": "verifications", - "columns": { - "id": { - "name": "id", - "type": "text", - "primaryKey": true, - "notNull": true, - "autoincrement": false - }, - "identifier": { - "name": "identifier", - "type": "text", - "primaryKey": false, - "notNull": true, - "autoincrement": false - }, - "value": { - "name": "value", - "type": "text", - "primaryKey": false, - "notNull": true, - "autoincrement": false - }, - "expires_at": { - "name": "expires_at", - "type": "integer", - "primaryKey": false, - "notNull": true, - "autoincrement": false - }, - "created_at": { - "name": "created_at", - "type": "integer", - "primaryKey": false, - "notNull": true, - "autoincrement": false, - "default": "(unixepoch())" - }, - "updated_at": { - "name": "updated_at", - "type": "integer", - "primaryKey": false, - "notNull": true, - "autoincrement": false, - "default": "(unixepoch())" - } - }, - "indexes": { - "idx_verifications_identifier": { - "name": "idx_verifications_identifier", - "columns": [ - "identifier" - ], - "isUnique": false - } - }, - "foreignKeys": {}, - "compositePrimaryKeys": {}, - "uniqueConstraints": {}, - "checkConstraints": {} - } - }, - "views": {}, - "enums": {}, - "_meta": { - "schemas": {}, - "tables": {}, - "columns": {} - }, - "internal": { - "indexes": {} - } -} \ No newline at end of file diff --git a/drizzle/meta/_journal.json b/drizzle/meta/_journal.json index c8e1248..06adde3 100644 --- a/drizzle/meta/_journal.json +++ b/drizzle/meta/_journal.json @@ -99,13 +99,6 @@ "when": 1780377747526, "tag": "0013_slim_galactus", "breakpoints": true - }, - { - "idx": 14, - "version": "6", - "when": 1785979662457, - "tag": "0014_fancy_speed_demon", - "breakpoints": true } ] } \ No newline at end of file diff --git a/package.json b/package.json index 711c869..3dddd64 100644 --- a/package.json +++ b/package.json @@ -58,8 +58,8 @@ "@astrojs/mdx": "^7.0.3", "@astrojs/node": "^11.0.2", "@astrojs/react": "^6.0.1", - "@better-auth/oauth-provider": "1.7.0-rc.4", - "@better-auth/sso": "1.7.0-rc.4", + "@better-auth/oauth-provider": "1.6.23", + "@better-auth/sso": "1.6.23", "@octokit/plugin-throttling": "^11.0.3", "@octokit/rest": "^22.0.1", "@radix-ui/react-accordion": "^1.2.16", @@ -88,7 +88,7 @@ "@types/react-dom": "^19.2.3", "astro": "^7.1.0", "bcryptjs": "^3.0.3", - "better-auth": "1.7.0-rc.4", + "better-auth": "1.6.23", "buffer": "^6.0.3", "canvas-confetti": "^1.9.4", "class-variance-authority": "^0.7.1", diff --git a/scripts/validate-migrations.ts b/scripts/validate-migrations.ts index 71af469..a91e1cd 100644 --- a/scripts/validate-migrations.ts +++ b/scripts/validate-migrations.ts @@ -294,77 +294,6 @@ function verify0013Migration(db: any) { assert(normName.dflt_value === null, `Expected normalized_name to have no default, got ${normName.dflt_value}`); } -function seedPre0014Database(db: any) { - // Migrations 0000-0013 have run, so the OAuth provider tables are in their - // better-auth 1.6 shape. Seed a row in each altered table so the 1.7 - // column-adds can be verified against real data. - db.run("INSERT INTO users (id, email, username, name) VALUES ('u-14', 'u14@example.com', 'u14', 'User Fourteen')"); - db.run("INSERT INTO oauth_clients (id, client_id, redirect_uris) VALUES ('app-14', 'client-14', '[\"https://example.com/cb\"]')"); - db.run("INSERT INTO oauth_access_tokens (id, token, client_id, user_id, scopes) VALUES ('at-14', 'access-14', 'client-14', 'u-14', '[\"openid\"]')"); - db.run("INSERT INTO oauth_refresh_tokens (id, token, client_id, user_id, scopes) VALUES ('rt-14', 'refresh-14', 'client-14', 'u-14', '[\"openid\"]')"); - db.run("INSERT INTO oauth_consents (id, client_id, user_id, scopes) VALUES ('co-14', 'client-14', 'u-14', '[\"openid\"]')"); -} - -function verify0014Migration(db: any) { - // Columns added for @better-auth/oauth-provider 1.7, all nullable so - // pre-existing rows are untouched. - const expectedNewColumns: Record = { - oauth_clients: [ - "client_discovery_id", - "client_credentials_scopes", - "backchannel_logout_uri", - "backchannel_logout_session_required", - "application_type", - "jwks", - "jwks_uri", - "dpop_bound_access_tokens", - ], - oauth_access_tokens: [ - "authorization_code_id", - "resources", - "requested_user_info_claims", - "revoked", - "confirmation", - ], - oauth_refresh_tokens: [ - "authorization_code_id", - "resources", - "requested_user_info_claims", - "rotated_at", - "rotation_replay_response", - "rotation_replay_expires_at", - "confirmation", - ], - oauth_consents: ["resources", "requested_user_info_claims"], - }; - for (const [table, columns] of Object.entries(expectedNewColumns)) { - const cols = db - .query(`PRAGMA table_info(${table})`) - .all() as Array<{ name: string; notnull: number }>; - for (const column of columns) { - const col = cols.find((c) => c.name === column); - assert(col, `Expected ${table}.${column} column to exist`); - assert(col.notnull === 0, `Expected ${table}.${column} to be nullable`); - } - } - - // Seeded rows survive the column adds. - for (const [table, id] of [ - ["oauth_clients", "app-14"], - ["oauth_access_tokens", "at-14"], - ["oauth_refresh_tokens", "rt-14"], - ["oauth_consents", "co-14"], - ] as const) { - const row = db.query(`SELECT id FROM ${table} WHERE id = '${id}'`).get(); - assert(row, `Expected ${table} row '${id}' to survive migration`); - } - - // The three new 1.7 tables exist and accept rows. - db.run("INSERT INTO oauth_resources (id, identifier, name) VALUES ('res-14', 'https://api.example.com', 'Example API')"); - db.run("INSERT INTO oauth_client_resources (id, client_id, resource_id) VALUES ('cr-14', 'client-14', 'https://api.example.com')"); - db.run("INSERT INTO oauth_client_assertions (id, expires_at) VALUES ('jti-14', 1234567890)"); -} - const MIGRATION_0012_TIMESTAMP = 1774062000000; const MIGRATION_0013_TIMESTAMP = 1780377747526; @@ -480,10 +409,6 @@ const latestUpgradeFixtures: Record = { seed: seedPre0013Database, verify: verify0013Migration, }, - "0014_fancy_speed_demon": { - seed: seedPre0014Database, - verify: verify0014Migration, - }, }; function lintMigrations(selectedMigrations: Migration[]) { diff --git a/src/lib/db/schema.ts b/src/lib/db/schema.ts index ddc63a7..4bfd9cd 100644 --- a/src/lib/db/schema.ts +++ b/src/lib/db/schema.ts @@ -678,16 +678,6 @@ export const oauthClients = sqliteTable("oauth_clients", { public: integer("public", { mode: "boolean" }), type: text("type"), requirePKCE: integer("require_pkce", { mode: "boolean" }), - // Added by @better-auth/oauth-provider 1.7 (client discovery, client - // credentials grant, OIDC back-channel logout, private_key_jwt, DPoP). - clientDiscoveryId: text("client_discovery_id"), - clientCredentialsScopes: text("client_credentials_scopes"), // JSON string[] - backchannelLogoutUri: text("backchannel_logout_uri"), - backchannelLogoutSessionRequired: integer("backchannel_logout_session_required", { mode: "boolean" }), - applicationType: text("application_type"), - jwks: text("jwks"), - jwksUri: text("jwks_uri"), - dpopBoundAccessTokens: integer("dpop_bound_access_tokens", { mode: "boolean" }), referenceId: text("reference_id"), metadata: text("metadata"), // JSON createdAt: integer("created_at", { mode: "timestamp" }).default(sql`(unixepoch())`), @@ -709,13 +699,6 @@ export const oauthAccessTokens = sqliteTable("oauth_access_tokens", { expiresAt: integer("expires_at", { mode: "timestamp" }), createdAt: integer("created_at", { mode: "timestamp" }).default(sql`(unixepoch())`), scopes: text("scopes").notNull(), // JSON string[] - // Added by @better-auth/oauth-provider 1.7 (resource indicators, token - // revocation on session end, DPoP proof binding). - authorizationCodeId: text("authorization_code_id"), - resources: text("resources"), // JSON string[] - requestedUserInfoClaims: text("requested_user_info_claims"), // JSON string[] - revoked: integer("revoked", { mode: "timestamp" }), - confirmation: text("confirmation"), // JSON }, (table) => [ index("idx_oauth_access_tokens_token").on(table.token), index("idx_oauth_access_tokens_client_id").on(table.clientId), @@ -735,15 +718,6 @@ export const oauthRefreshTokens = sqliteTable("oauth_refresh_tokens", { revoked: integer("revoked", { mode: "timestamp" }), authTime: integer("auth_time", { mode: "timestamp" }), scopes: text("scopes").notNull(), // JSON string[] - // Added by @better-auth/oauth-provider 1.7 (resource indicators, refresh - // token rotation with replay detection, DPoP proof binding). - authorizationCodeId: text("authorization_code_id"), - resources: text("resources"), // JSON string[] - requestedUserInfoClaims: text("requested_user_info_claims"), // JSON string[] - rotatedAt: integer("rotated_at", { mode: "timestamp" }), - rotationReplayResponse: text("rotation_replay_response"), - rotationReplayExpiresAt: integer("rotation_replay_expires_at", { mode: "timestamp" }), - confirmation: text("confirmation"), // JSON }, (table) => [ index("idx_oauth_refresh_tokens_token").on(table.token), index("idx_oauth_refresh_tokens_client_id").on(table.clientId), @@ -757,9 +731,6 @@ export const oauthConsents = sqliteTable("oauth_consents", { userId: text("user_id").references(() => users.id), referenceId: text("reference_id"), scopes: text("scopes").notNull(), // JSON string[] - // Added by @better-auth/oauth-provider 1.7 (resource indicators). - resources: text("resources"), // JSON string[] - requestedUserInfoClaims: text("requested_user_info_claims"), // JSON string[] createdAt: integer("created_at", { mode: "timestamp" }).default(sql`(unixepoch())`), updatedAt: integer("updated_at", { mode: "timestamp" }).default(sql`(unixepoch())`), }, (table) => [ @@ -767,49 +738,6 @@ export const oauthConsents = sqliteTable("oauth_consents", { index("idx_oauth_consents_user_id").on(table.userId), ]); -// OAuth protected resources (RFC 8707 resource indicators, new in -// @better-auth/oauth-provider 1.7). Empty unless resources are registered; -// the 1.7 fix for unbound resource indicators only issues audience-restricted -// tokens for resources listed here. -export const oauthResources = sqliteTable("oauth_resources", { - id: text("id").primaryKey(), - identifier: text("identifier").notNull().unique(), - name: text("name").notNull(), - accessTokenTtl: integer("access_token_ttl"), - refreshTokenTtl: integer("refresh_token_ttl"), - signingAlgorithm: text("signing_algorithm"), - signingKeyId: text("signing_key_id"), - allowedScopes: text("allowed_scopes"), // JSON string[] - customClaims: text("custom_claims"), // JSON - dpopBoundAccessTokensRequired: integer("dpop_bound_access_tokens_required", { mode: "boolean" }), - disabled: integer("disabled", { mode: "boolean" }), - policyVersion: integer("policy_version"), - metadata: text("metadata"), // JSON - createdAt: integer("created_at", { mode: "timestamp" }).default(sql`(unixepoch())`), - updatedAt: integer("updated_at", { mode: "timestamp" }).default(sql`(unixepoch())`), -}, (table) => [ - index("idx_oauth_resources_identifier").on(table.identifier), -]); - -// Which clients may request which resources (new in 1.7). -export const oauthClientResources = sqliteTable("oauth_client_resources", { - id: text("id").primaryKey(), - clientId: text("client_id").notNull(), - resourceId: text("resource_id").notNull(), - metadata: text("metadata"), // JSON - createdAt: integer("created_at", { mode: "timestamp" }).default(sql`(unixepoch())`), -}, (table) => [ - index("idx_oauth_client_resources_client_id").on(table.clientId), - index("idx_oauth_client_resources_resource_id").on(table.resourceId), -]); - -// Replay prevention for private_key_jwt / client_secret_jwt client assertions -// (new in 1.7): the row id is the assertion's jti, kept until expiry. -export const oauthClientAssertions = sqliteTable("oauth_client_assertions", { - id: text("id").primaryKey(), - expiresAt: integer("expires_at", { mode: "timestamp" }).notNull(), -}); - // JWKS keypairs for signing OIDC id_tokens (better-auth `jwt` plugin). // Model name "jwks" pluralizes to the binding name "jwkss" under usePlural, // while the physical table stays "jwks".