Some checks failed
CI / Check / Test (push) Failing after 6m5s
Webhook ingestion from media servers — movies land in a pending watch queue, user rates and confirms to create diary entries. - domain: WatchEvent, WebhookToken models, MediaServerParser port - adapters: jellyfin + plex parser crates, SQLite + Postgres repos - application: ingest/confirm/dismiss/cleanup use cases, token mgmt - presentation: webhook endpoints (bearer + query param auth), watch queue + integrations settings HTML pages, OpenAPI docs - worker: WatchEventCleanupJob (daily, 30d retention) Movie resolution deferred to confirm — single canonical path through log_review for enrichment, poster fetch, federation.
93 lines
3.4 KiB
TOML
93 lines
3.4 KiB
TOML
[workspace]
|
|
members = [
|
|
"crates/adapters/auth",
|
|
"crates/adapters/event-publisher",
|
|
"crates/adapters/metadata",
|
|
"crates/adapters/poster-fetcher",
|
|
"crates/adapters/image-storage",
|
|
"crates/adapters/poster-sync",
|
|
"crates/adapters/rss",
|
|
"crates/adapters/sqlite",
|
|
"crates/adapters/postgres",
|
|
"crates/adapters/sqlite-federation",
|
|
"crates/adapters/postgres-federation",
|
|
"crates/adapters/sqlite-event-queue",
|
|
"crates/adapters/postgres-event-queue",
|
|
"crates/adapters/template-askama",
|
|
"crates/adapters/activitypub",
|
|
"crates/adapters/export",
|
|
"crates/adapters/event-payload",
|
|
"crates/adapters/nats",
|
|
"crates/api-types",
|
|
"crates/application",
|
|
"crates/adapters/tmdb-enrichment",
|
|
"crates/adapters/image-converter",
|
|
"crates/domain",
|
|
"crates/presentation",
|
|
"crates/tui",
|
|
"crates/worker",
|
|
"crates/adapters/importer",
|
|
"crates/adapters/jellyfin",
|
|
"crates/adapters/plex",
|
|
"crates/adapters/sqlite-search",
|
|
"crates/adapters/postgres-search",
|
|
]
|
|
resolver = "2"
|
|
|
|
[workspace.dependencies]
|
|
tokio = { version = "1.0", features = ["macros", "net", "rt", "rt-multi-thread", "sync", "time"] }
|
|
futures = "0.3"
|
|
dotenvy = "0.15"
|
|
serde = { version = "1.0", features = ["derive"] }
|
|
serde_json = "1.0"
|
|
anyhow = "1.0"
|
|
thiserror = "2.0"
|
|
tracing = "0.1"
|
|
tracing-subscriber = { version = "0.3.23", features = ["env-filter"] }
|
|
async-trait = "0.1"
|
|
uuid = { version = "1.23.0", features = ["v4", "v5", "serde"] }
|
|
chrono = { version = "0.4", features = ["serde"] }
|
|
sqlx = { version = "0.8.6", features = [
|
|
"runtime-tokio-rustls",
|
|
"sqlite",
|
|
"uuid",
|
|
"macros",
|
|
] }
|
|
rand = "0.9"
|
|
reqwest = { version = "0.13", features = ["json", "query"] }
|
|
sha2 = "0.10"
|
|
hex = "0.4"
|
|
object_store = { version = "0.11", features = ["aws"] }
|
|
axum = { version = "0.8.8", features = ["macros", "multipart"] }
|
|
csv = "1"
|
|
|
|
api-types = { path = "crates/api-types" }
|
|
domain = { path = "crates/domain" }
|
|
tmdb-enrichment = { path = "crates/adapters/tmdb-enrichment" }
|
|
application = { path = "crates/application" }
|
|
presentation = { path = "crates/presentation" }
|
|
auth = { path = "crates/adapters/auth" }
|
|
metadata = { path = "crates/adapters/metadata" }
|
|
poster-fetcher = { path = "crates/adapters/poster-fetcher" }
|
|
image-storage = { path = "crates/adapters/image-storage" }
|
|
poster-sync = { path = "crates/adapters/poster-sync" }
|
|
event-publisher = { path = "crates/adapters/event-publisher" }
|
|
rss = { path = "crates/adapters/rss" }
|
|
export = { path = "crates/adapters/export" }
|
|
sqlite = { path = "crates/adapters/sqlite" }
|
|
sqlite-federation = { path = "crates/adapters/sqlite-federation" }
|
|
postgres = { path = "crates/adapters/postgres" }
|
|
postgres-federation = { path = "crates/adapters/postgres-federation" }
|
|
template-askama = { path = "crates/adapters/template-askama" }
|
|
activitypub = { path = "crates/adapters/activitypub" }
|
|
event-payload = { path = "crates/adapters/event-payload" }
|
|
nats = { path = "crates/adapters/nats" }
|
|
sqlite-event-queue = { path = "crates/adapters/sqlite-event-queue" }
|
|
postgres-event-queue = { path = "crates/adapters/postgres-event-queue" }
|
|
importer = { path = "crates/adapters/importer" }
|
|
jellyfin = { path = "crates/adapters/jellyfin" }
|
|
plex = { path = "crates/adapters/plex" }
|
|
image-converter = { path = "crates/adapters/image-converter" }
|
|
sqlite-search = { path = "crates/adapters/sqlite-search" }
|
|
postgres-search = { path = "crates/adapters/postgres-search" }
|