Files
inbuxa-server/crates/http/Cargo.toml
T
jcoffey-dev 0bc6b03dcd Branding and templates: per-domain, tenant and server logos, /logo, operator calendar email templates and RSVP page (BT-1 to BT-26)
Logos resolve domain, then tenant, then server-wide, then the built-in, with
subdomains finding their domain. GET /logo serves a data-URL image, redirects
to a URL logo without fetching it, sandboxes SVG, and answers 404 when no
custom logo applies. Emails embed the first PNG, JPEG or GIF logo. Logo and
template writes are checked; stored templates are read at send time, always
escaped, and fall back to the built-in with a build warning when they don't
parse. The RSVP page is served byte for byte with a CSP and no-referrer. The
sign-in and RSVP pages load the logo through an image element. MT-22's
session logo follows the chain to the server-wide logo.
Acceptance tests 1 to 17; test 18 written as the ignored branding_compat.
2026-09-18 22:27:19 -07:00

53 lines
1.5 KiB
TOML

[package]
name = "http"
version = "0.16.22"
edition = "2024"
[dependencies]
store = { path = "../store" }
common = { path = "../common" }
utils = { path = "../utils" }
trc = { path = "../trc" }
email = { path = "../email" }
smtp = { path = "../smtp" }
jmap = { path = "../jmap" }
dav = { path = "../dav" }
scim = { path = "../scim" }
groupware = { path = "../groupware" }
http_proto = { path = "../http-proto" }
jmap_proto = { path = "../jmap-proto" }
types = { path = "../types" }
directory = { path = "../directory" }
services = { path = "../services" }
registry = { path = "../registry" }
mail-parser = { version = "0.11", features = ["full_encoding", "rkyv"] }
mail-builder = { version = "1.0" }
mail-auth = { version = "0.13", features = ["generate", "arc"] }
tokio = { version = "1.53", features = ["rt"] }
hyper = { version = "1.11.1", features = ["server", "http1", "http2"] }
inbuxa-features = { path = "../features" }
hyper-util = { version = "0.1.20", features = ["tokio"] }
http-body-util = "0.1.5"
async-stream = "0.3.6"
serde = { version = "1.0", features = ["derive"]}
serde_json = "1.0"
chrono = "0.4"
base64 = "0.23"
sha2 = "0.11"
rkyv = { version = "0.8.18", features = ["little_endian"] }
form-data = { version = "0.6.0", features = ["sync"], default-features = false }
mime = "0.3.17"
percent-encoding = "2.3.2"
hashify = { version = "0.2" }
[dev-dependencies]
flate2 = "1.1"
[features]
test_mode = []
dev_mode = []
enterprise = ["scim/enterprise"]
[lints]
workspace = true