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.
22 lines
641 B
TOML
22 lines
641 B
TOML
[package]
|
|
name = "inbuxa-features"
|
|
description = "INBUXA's rebuilt features: behavior Stalwart ships only in its Enterprise Edition, rebuilt clean-room"
|
|
license = "AGPL-3.0-only"
|
|
version = "0.16.22"
|
|
edition = "2024"
|
|
|
|
[dependencies]
|
|
registry = { path = "../registry" }
|
|
jmap_proto = { path = "../jmap-proto" }
|
|
store = { path = "../store" }
|
|
trc = { path = "../trc" }
|
|
types = { path = "../types" }
|
|
utils = { path = "../utils" }
|
|
ahash = { version = "0.8.12", features = ["serde"] }
|
|
serde = { version = "1.0", features = ["derive"] }
|
|
serde_json = "1.0"
|
|
base64 = "0.23"
|
|
|
|
[dev-dependencies]
|
|
tokio = { version = "1.53", features = ["macros", "rt"] }
|