refactor: database structure

This commit is contained in:
master 2025-01-03 04:42:42 +08:00
parent 70932900cd
commit 917af7320e
462 changed files with 1223 additions and 724 deletions

0
.cargo/config.toml Normal file → Executable file
View File

0
.editorconfig Normal file → Executable file
View File

0
.gitignore vendored Normal file → Executable file
View File

0
.prettierignore Normal file → Executable file
View File

0
.vscode/extensions.json vendored Normal file → Executable file
View File

0
.vscode/launch.json vendored Normal file → Executable file
View File

0
.vscode/settings.json vendored Normal file → Executable file
View File

198
Cargo.lock generated Normal file → Executable file
View File

@ -2,6 +2,16 @@
# It is not intended for manual editing.
version = 4
[[package]]
name = "Inflector"
version = "0.11.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "fe438c63458706e03479442743baae6c88256498e6431708f6dfc520a26515d3"
dependencies = [
"lazy_static",
"regex",
]
[[package]]
name = "addr2line"
version = "0.24.2"
@ -165,6 +175,12 @@ version = "0.7.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7c02d123df017efcdfbd739ef81735b36c5ba83ec3c59c80a9d7ecc718f92e50"
[[package]]
name = "ascii_utils"
version = "0.9.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "71938f30533e4d95a6d17aa530939da3842c2ab6f4f84b9dae68447e4129f74a"
[[package]]
name = "assert-json-diff"
version = "2.0.2"
@ -191,6 +207,98 @@ dependencies = [
"zstd-safe",
]
[[package]]
name = "async-graphql"
version = "7.0.13"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "59fd6bd734afb8b6e4d0f84a3e77305ce0a7ccc60d70f6001cb5e1c3f38d8ff1"
dependencies = [
"async-graphql-derive",
"async-graphql-parser",
"async-graphql-value",
"async-stream",
"async-trait",
"base64 0.22.1",
"bytes",
"fast_chemail",
"fnv",
"futures-timer",
"futures-util",
"handlebars",
"http 1.2.0",
"indexmap 2.7.0",
"mime",
"multer",
"num-traits",
"pin-project-lite",
"regex",
"serde",
"serde_json",
"serde_urlencoded",
"static_assertions_next",
"tempfile",
"thiserror 1.0.69",
]
[[package]]
name = "async-graphql-axum"
version = "7.0.13"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ec8c1bb47161c37286e40e2fa58055e97b2a2b6cf1022a6686967e10636fa5d7"
dependencies = [
"async-graphql",
"async-trait",
"axum",
"bytes",
"futures-util",
"serde_json",
"tokio",
"tokio-stream",
"tokio-util",
"tower-service",
]
[[package]]
name = "async-graphql-derive"
version = "7.0.13"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ac38b4dd452d529d6c0248b51df23603f0a875770352e26ae8c346ce6c149b3e"
dependencies = [
"Inflector",
"async-graphql-parser",
"darling",
"proc-macro-crate",
"proc-macro2",
"quote",
"strum",
"syn 2.0.92",
"thiserror 1.0.69",
]
[[package]]
name = "async-graphql-parser"
version = "7.0.13"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "42d271ddda2f55b13970928abbcbc3423cfc18187c60e8769b48f21a93b7adaa"
dependencies = [
"async-graphql-value",
"pest",
"serde",
"serde_json",
]
[[package]]
name = "async-graphql-value"
version = "7.0.13"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "aefe909173a037eaf3281b046dc22580b59a38b765d7b8d5116f2ffef098048d"
dependencies = [
"bytes",
"indexmap 2.7.0",
"serde",
"serde_json",
]
[[package]]
name = "async-stream"
version = "0.3.6"
@ -282,6 +390,7 @@ dependencies = [
"async-trait",
"axum-core",
"axum-macros",
"base64 0.22.1",
"bytes",
"futures-util",
"http 1.2.0",
@ -300,8 +409,10 @@ dependencies = [
"serde_json",
"serde_path_to_error",
"serde_urlencoded",
"sha1",
"sync_wrapper",
"tokio",
"tokio-tungstenite",
"tower 0.5.2",
"tower-layer",
"tower-service",
@ -722,6 +833,9 @@ name = "bytes"
version = "1.9.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "325918d6fe32f23b19878fe4b34794ae41fc19ddbe53b10571a4874d44ffd39b"
dependencies = [
"serde",
]
[[package]]
name = "bytesize"
@ -1576,6 +1690,15 @@ dependencies = [
"regex-syntax 0.8.5",
]
[[package]]
name = "fast_chemail"
version = "0.9.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "495a39d30d624c2caabe6312bfead73e7717692b44e0b32df168c275a2e8e9e4"
dependencies = [
"ascii_utils",
]
[[package]]
name = "fastrand"
version = "2.3.0"
@ -1768,6 +1891,12 @@ version = "0.3.31"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f90f7dce0722e95104fcb095585910c0977252f286e354b5e3bd38902cd99988"
[[package]]
name = "futures-timer"
version = "3.0.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f288b0a4f20f9a56b5d1da57e2227c661b7b16168e2f72365f57b63326e29b24"
[[package]]
name = "futures-util"
version = "0.3.31"
@ -1904,6 +2033,20 @@ dependencies = [
"tracing",
]
[[package]]
name = "handlebars"
version = "5.1.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d08485b96a0e6393e9e4d1b8d48cf74ad6c063cd905eb33f42c1ce3f0377539b"
dependencies = [
"log",
"pest",
"pest_derive",
"serde",
"serde_json",
"thiserror 1.0.69",
]
[[package]]
name = "hashbrown"
version = "0.12.3"
@ -4369,6 +4512,8 @@ name = "recorder"
version = "0.1.0"
dependencies = [
"anyhow",
"async-graphql",
"async-graphql-axum",
"async-trait",
"axum",
"axum-auth",
@ -5874,6 +6019,12 @@ version = "1.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f"
[[package]]
name = "static_assertions_next"
version = "1.1.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d7beae5182595e9a8b683fa98c4317f956c9a2dec3b9716990d20023cc60c766"
[[package]]
name = "string_cache"
version = "0.8.7"
@ -5945,6 +6096,22 @@ name = "strum"
version = "0.26.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8fec0f0aef304996cf250b31b5a10dee7980c85da9d759361292b8bca5a18f06"
dependencies = [
"strum_macros",
]
[[package]]
name = "strum_macros"
version = "0.26.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4c6bee85a5a24955dc440386795aa378cd9cf82acd5f764469152d2270e581be"
dependencies = [
"heck 0.5.0",
"proc-macro2",
"quote",
"rustversion",
"syn 2.0.92",
]
[[package]]
name = "subtle"
@ -6328,6 +6495,18 @@ dependencies = [
"xattr",
]
[[package]]
name = "tokio-tungstenite"
version = "0.24.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "edc5f74e248dc973e0dbb7b74c7e0d6fcc301c694ff50049504004ef4d0cdcd9"
dependencies = [
"futures-util",
"log",
"tokio",
"tungstenite",
]
[[package]]
name = "tokio-util"
version = "0.7.13"
@ -6336,6 +6515,7 @@ checksum = "d7fcaa8d55a2bdd6b83ace262b016eca0d79ee02818c5c1bcdf0305114081078"
dependencies = [
"bytes",
"futures-core",
"futures-io",
"futures-sink",
"pin-project-lite",
"tokio",
@ -6559,6 +6739,24 @@ version = "0.2.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b"
[[package]]
name = "tungstenite"
version = "0.24.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "18e5b8366ee7a95b16d32197d0b2604b43a0be89dc5fac9f8e96ccafbaedda8a"
dependencies = [
"byteorder",
"bytes",
"data-encoding",
"http 1.2.0",
"httparse",
"log",
"rand",
"sha1",
"thiserror 1.0.69",
"utf-8",
]
[[package]]
name = "typed-builder"
version = "0.20.0"

0
Cargo.toml Normal file → Executable file
View File

0
LICENSE Normal file → Executable file
View File

0
README.md Normal file → Executable file
View File

0
apps/app/.env.development Normal file → Executable file
View File

0
apps/app/.env.example Normal file → Executable file
View File

0
apps/app/.gitignore vendored Normal file → Executable file
View File

0
apps/app/__tests__/sign-in.test.tsx Normal file → Executable file
View File

0
apps/app/__tests__/sign-up.test.tsx Normal file → Executable file
View File

View File

View File

0
apps/app/app/(authenticated)/components/cursors.tsx Normal file → Executable file
View File

0
apps/app/app/(authenticated)/components/header.tsx Normal file → Executable file
View File

View File

0
apps/app/app/(authenticated)/components/sidebar.tsx Normal file → Executable file
View File

0
apps/app/app/(authenticated)/layout.tsx Normal file → Executable file
View File

0
apps/app/app/(authenticated)/page.tsx Normal file → Executable file
View File

0
apps/app/app/(authenticated)/webhooks/page.tsx Normal file → Executable file
View File

0
apps/app/app/(unauthenticated)/layout.tsx Normal file → Executable file
View File

View File

View File

0
apps/app/app/.well-known/vercel/flags/route.ts Normal file → Executable file
View File

0
apps/app/app/actions/users/get.ts Normal file → Executable file
View File

0
apps/app/app/actions/users/search.ts Normal file → Executable file
View File

0
apps/app/app/api/collaboration/auth/route.ts Normal file → Executable file
View File

0
apps/app/app/apple-icon.png Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 216 B

After

Width:  |  Height:  |  Size: 216 B

0
apps/app/app/cron/keep-alive/route.ts Normal file → Executable file
View File

0
apps/app/app/global-error.tsx Normal file → Executable file
View File

0
apps/app/app/health/route.ts Normal file → Executable file
View File

0
apps/app/app/icon.png Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 96 B

After

Width:  |  Height:  |  Size: 96 B

0
apps/app/app/layout.tsx Normal file → Executable file
View File

0
apps/app/app/opengraph-image.png Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 57 KiB

After

Width:  |  Height:  |  Size: 57 KiB

0
apps/app/instrumentation.ts Normal file → Executable file
View File

0
apps/app/liveblocks.config.ts Normal file → Executable file
View File

0
apps/app/middleware.ts Normal file → Executable file
View File

0
apps/app/next.config.ts Normal file → Executable file
View File

0
apps/app/package.json Normal file → Executable file
View File

0
apps/app/postcss.config.mjs Normal file → Executable file
View File

0
apps/app/sentry.client.config.ts Normal file → Executable file
View File

0
apps/app/tailwind.config.ts Normal file → Executable file
View File

0
apps/app/tsconfig.json Normal file → Executable file
View File

0
apps/app/vercel.json Normal file → Executable file
View File

0
apps/app/vitest.config.ts Normal file → Executable file
View File

0
apps/docs/api-reference/endpoint/create.mdx Normal file → Executable file
View File

0
apps/docs/api-reference/endpoint/delete.mdx Normal file → Executable file
View File

0
apps/docs/api-reference/endpoint/get.mdx Normal file → Executable file
View File

0
apps/docs/api-reference/introduction.mdx Normal file → Executable file
View File

0
apps/docs/api-reference/openapi.json Normal file → Executable file
View File

0
apps/docs/development.mdx Normal file → Executable file
View File

0
apps/docs/essentials/code.mdx Normal file → Executable file
View File

0
apps/docs/essentials/images.mdx Normal file → Executable file
View File

0
apps/docs/essentials/markdown.mdx Normal file → Executable file
View File

0
apps/docs/essentials/navigation.mdx Normal file → Executable file
View File

0
apps/docs/essentials/reusable-snippets.mdx Normal file → Executable file
View File

0
apps/docs/essentials/settings.mdx Normal file → Executable file
View File

0
apps/docs/favicon.svg Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 5.3 KiB

After

Width:  |  Height:  |  Size: 5.3 KiB

0
apps/docs/images/checks-passed.png Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 157 KiB

After

Width:  |  Height:  |  Size: 157 KiB

0
apps/docs/images/hero-dark.svg Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 12 KiB

After

Width:  |  Height:  |  Size: 12 KiB

0
apps/docs/images/hero-light.svg Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 10 KiB

After

Width:  |  Height:  |  Size: 10 KiB

0
apps/docs/introduction.mdx Normal file → Executable file
View File

0
apps/docs/logo/dark.svg Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 9.3 KiB

After

Width:  |  Height:  |  Size: 9.3 KiB

0
apps/docs/logo/light.svg Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 9.0 KiB

After

Width:  |  Height:  |  Size: 9.0 KiB

0
apps/docs/mint.json Normal file → Executable file
View File

0
apps/docs/package.json Normal file → Executable file
View File

0
apps/docs/quickstart.mdx Normal file → Executable file
View File

0
apps/docs/snippets/snippet-intro.mdx Normal file → Executable file
View File

0
apps/email-playground/.gitignore vendored Normal file → Executable file
View File

0
apps/email-playground/emails/contact.tsx Normal file → Executable file
View File

0
apps/email-playground/package.json Normal file → Executable file
View File

0
apps/email-playground/tsconfig.json Normal file → Executable file
View File

0
apps/proxy/.whistle/.gitignore vendored Normal file → Executable file
View File

0
apps/proxy/.whistle/properties/properties Normal file → Executable file
View File

0
apps/proxy/.whistle/rules/files/0.webui Normal file → Executable file
View File

0
apps/proxy/.whistle/rules/files/2.recorder Normal file → Executable file
View File

0
apps/proxy/.whistle/rules/properties Normal file → Executable file
View File

0
apps/proxy/.whistle/values/properties Normal file → Executable file
View File

0
apps/proxy/package.json Normal file → Executable file
View File

0
apps/recorder/.devcontainer/Dockerfile Normal file → Executable file
View File

0
apps/recorder/.devcontainer/devcontainer.json Normal file → Executable file
View File

0
apps/recorder/.devcontainer/docker-compose.yml Normal file → Executable file
View File

0
apps/recorder/.github/workflows/ci.yaml vendored Normal file → Executable file
View File

0
apps/recorder/.gitignore vendored Normal file → Executable file
View File

4
apps/recorder/Cargo.toml Normal file → Executable file
View File

@ -44,7 +44,7 @@ axum = "0.7.9"
uuid = { version = "1.6.0", features = ["v4"] }
tracing-subscriber = { version = "0.3", features = ["env-filter", "json"] }
sea-orm-migration = { version = "1", features = ["runtime-tokio-rustls"] }
reqwest = "0.12.9"
reqwest = { version = "0.12.9" }
thiserror = "2"
rss = "2"
bytes = "1.9"
@ -85,6 +85,8 @@ testcontainers-modules = { version = "0.11.4", optional = true }
log = "0.4.22"
anyhow = "1.0.95"
bollard = { version = "0.18", optional = true }
async-graphql = "7.0.13"
async-graphql-axum = "7.0.13"
[dev-dependencies]

0
apps/recorder/examples/playground.rs Normal file → Executable file
View File

2
apps/recorder/src/app.rs Normal file → Executable file
View File

@ -20,7 +20,7 @@ use crate::{
dal::{AppDalClient, AppDalInitalizer},
extract::mikan::{client::AppMikanClientInitializer, AppMikanClient},
migrations::Migrator,
models::entities::subscribers,
models::subscribers,
workers::subscription_worker::SubscriptionWorker,
};

0
apps/recorder/src/auth/basic.rs Normal file → Executable file
View File

2
apps/recorder/src/auth/config.rs Normal file → Executable file
View File

@ -24,7 +24,7 @@ pub struct OidcAuthConfig {
}
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
#[serde(tag = "type", rename_all = "snake_case")]
#[serde(tag = "auth_type", rename_all = "snake_case")]
pub enum AppAuthConfig {
Basic(BasicAuthConfig),
Oidc(OidcAuthConfig),

0
apps/recorder/src/auth/errors.rs Normal file → Executable file
View File

0
apps/recorder/src/auth/mod.rs Normal file → Executable file
View File

0
apps/recorder/src/auth/oidc.rs Normal file → Executable file
View File

0
apps/recorder/src/auth/service.rs Normal file → Executable file
View File

0
apps/recorder/src/bin/main.rs Normal file → Executable file
View File

0
apps/recorder/src/config/mod.rs Normal file → Executable file
View File

Some files were not shown because too many files have changed in this diff Show More