refactor: database structure
0
.cargo/config.toml
Normal file → Executable file
0
.editorconfig
Normal file → Executable file
0
.gitignore
vendored
Normal file → Executable file
0
.prettierignore
Normal file → Executable file
0
.vscode/extensions.json
vendored
Normal file → Executable file
0
.vscode/launch.json
vendored
Normal file → Executable file
0
.vscode/settings.json
vendored
Normal file → Executable file
198
Cargo.lock
generated
Normal file → Executable 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
0
apps/app/.env.development
Normal file → Executable file
0
apps/app/.env.example
Normal file → Executable file
0
apps/app/.gitignore
vendored
Normal file → Executable file
0
apps/app/__tests__/sign-in.test.tsx
Normal file → Executable file
0
apps/app/__tests__/sign-up.test.tsx
Normal file → Executable file
0
apps/app/app/(authenticated)/components/avatar-stack.tsx
Normal file → Executable file
0
apps/app/app/(authenticated)/components/collaboration-provider.tsx
Normal file → Executable file
0
apps/app/app/(authenticated)/components/cursors.tsx
Normal file → Executable file
0
apps/app/app/(authenticated)/components/header.tsx
Normal file → Executable file
0
apps/app/app/(authenticated)/components/posthog-identifier.tsx
Normal file → Executable file
0
apps/app/app/(authenticated)/components/sidebar.tsx
Normal file → Executable file
0
apps/app/app/(authenticated)/layout.tsx
Normal file → Executable file
0
apps/app/app/(authenticated)/page.tsx
Normal file → Executable file
0
apps/app/app/(authenticated)/webhooks/page.tsx
Normal file → Executable file
0
apps/app/app/(unauthenticated)/layout.tsx
Normal file → Executable file
0
apps/app/app/(unauthenticated)/sign-in/[[...sign-in]]/page.tsx
Normal file → Executable file
0
apps/app/app/(unauthenticated)/sign-up/[[...sign-up]]/page.tsx
Normal file → Executable file
0
apps/app/app/.well-known/vercel/flags/route.ts
Normal file → Executable file
0
apps/app/app/actions/users/get.ts
Normal file → Executable file
0
apps/app/app/actions/users/search.ts
Normal file → Executable file
0
apps/app/app/api/collaboration/auth/route.ts
Normal file → Executable file
0
apps/app/app/apple-icon.png
Normal file → Executable 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
0
apps/app/app/global-error.tsx
Normal file → Executable file
0
apps/app/app/health/route.ts
Normal file → Executable file
0
apps/app/app/icon.png
Normal file → Executable file
Before Width: | Height: | Size: 96 B After Width: | Height: | Size: 96 B |
0
apps/app/app/layout.tsx
Normal file → Executable file
0
apps/app/app/opengraph-image.png
Normal file → Executable file
Before Width: | Height: | Size: 57 KiB After Width: | Height: | Size: 57 KiB |
0
apps/app/instrumentation.ts
Normal file → Executable file
0
apps/app/liveblocks.config.ts
Normal file → Executable file
0
apps/app/middleware.ts
Normal file → Executable file
0
apps/app/next.config.ts
Normal file → Executable file
0
apps/app/package.json
Normal file → Executable file
0
apps/app/postcss.config.mjs
Normal file → Executable file
0
apps/app/sentry.client.config.ts
Normal file → Executable file
0
apps/app/tailwind.config.ts
Normal file → Executable file
0
apps/app/tsconfig.json
Normal file → Executable file
0
apps/app/vercel.json
Normal file → Executable file
0
apps/app/vitest.config.ts
Normal file → Executable file
0
apps/docs/api-reference/endpoint/create.mdx
Normal file → Executable file
0
apps/docs/api-reference/endpoint/delete.mdx
Normal file → Executable file
0
apps/docs/api-reference/endpoint/get.mdx
Normal file → Executable file
0
apps/docs/api-reference/introduction.mdx
Normal file → Executable file
0
apps/docs/api-reference/openapi.json
Normal file → Executable file
0
apps/docs/development.mdx
Normal file → Executable file
0
apps/docs/essentials/code.mdx
Normal file → Executable file
0
apps/docs/essentials/images.mdx
Normal file → Executable file
0
apps/docs/essentials/markdown.mdx
Normal file → Executable file
0
apps/docs/essentials/navigation.mdx
Normal file → Executable file
0
apps/docs/essentials/reusable-snippets.mdx
Normal file → Executable file
0
apps/docs/essentials/settings.mdx
Normal file → Executable file
0
apps/docs/favicon.svg
Normal file → Executable 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
Before Width: | Height: | Size: 157 KiB After Width: | Height: | Size: 157 KiB |
0
apps/docs/images/hero-dark.svg
Normal file → Executable file
Before Width: | Height: | Size: 12 KiB After Width: | Height: | Size: 12 KiB |
0
apps/docs/images/hero-light.svg
Normal file → Executable file
Before Width: | Height: | Size: 10 KiB After Width: | Height: | Size: 10 KiB |
0
apps/docs/introduction.mdx
Normal file → Executable file
0
apps/docs/logo/dark.svg
Normal file → Executable 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
Before Width: | Height: | Size: 9.0 KiB After Width: | Height: | Size: 9.0 KiB |
0
apps/docs/mint.json
Normal file → Executable file
0
apps/docs/package.json
Normal file → Executable file
0
apps/docs/quickstart.mdx
Normal file → Executable file
0
apps/docs/snippets/snippet-intro.mdx
Normal file → Executable file
0
apps/email-playground/.gitignore
vendored
Normal file → Executable file
0
apps/email-playground/emails/contact.tsx
Normal file → Executable file
0
apps/email-playground/package.json
Normal file → Executable file
0
apps/email-playground/tsconfig.json
Normal file → Executable file
0
apps/proxy/.whistle/.gitignore
vendored
Normal file → Executable file
0
apps/proxy/.whistle/properties/properties
Normal file → Executable file
0
apps/proxy/.whistle/rules/files/0.webui
Normal file → Executable file
0
apps/proxy/.whistle/rules/files/2.recorder
Normal file → Executable file
0
apps/proxy/.whistle/rules/properties
Normal file → Executable file
0
apps/proxy/.whistle/values/properties
Normal file → Executable file
0
apps/proxy/package.json
Normal file → Executable file
0
apps/recorder/.devcontainer/Dockerfile
Normal file → Executable file
0
apps/recorder/.devcontainer/devcontainer.json
Normal file → Executable file
0
apps/recorder/.devcontainer/docker-compose.yml
Normal file → Executable file
0
apps/recorder/.github/workflows/ci.yaml
vendored
Normal file → Executable file
0
apps/recorder/.gitignore
vendored
Normal file → Executable file
4
apps/recorder/Cargo.toml
Normal file → Executable 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
2
apps/recorder/src/app.rs
Normal file → Executable 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
2
apps/recorder/src/auth/config.rs
Normal file → Executable 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),
|
||||
|