calternal-plugin-calendar
Calendar Plugin for connected CalDAV providers.
client/ speaks to external providers. cache/ stores encrypted account
Security state and rebuildable event data in the Index. No event copy is
written to a Home or to a local iCalendar file.
Request timing exposes selected operations without User data (#549).
Source: crates/plugins/calendar/src/lib.rs
Modules
Section titled “Modules”| Module | Summary |
|---|---|
cache |
Derived calendar data and Security state stored in the Index. |
client |
CalDAV discovery, collection synchronization, and conditional event writes. |
feeds |
Calendar feed adapters for issue #431 and the public route in DESIGN §33. |
view |
Calendar projections read rebuildable Index rows from their owning Plugins. |
Re-exports
Section titled “Re-exports”InstanceKeyError
Section titled “InstanceKeyError”pub enum InstanceKeyErrorNo doc comment.
Variants
InvalidEnvironmentValueRandomSourceMissingAfterRaceFilesystem(calternal_fs::Error)
Implements: Debug, std::fmt::Display, std::error::Error
Source: crates/plugins/calendar/src/lib.rs:88
Functions
Section titled “Functions”configure_instance_secret_key
Section titled “configure_instance_secret_key”pub fn configure_instance_secret_key(key: [u8; 32]) -> Result<(), InstanceKeyError>Install the key before the server constructs the plugin router.
Source: crates/plugins/calendar/src/lib.rs:113
configure_public_url
Section titled “configure_public_url”pub fn configure_public_url(public_url: String)Configure the canonical instance URL used in Event and Note deep links.
The server validates this URL before it builds Plugin routes. Keeping one configured value prevents request Host headers from changing stored links.
Source: crates/plugins/calendar/src/lib.rs:127
configure_subscription_allowed_networks
Section titled “configure_subscription_allowed_networks”pub fn configure_subscription_allowed_networks(networks: Vec<ipnet::IpNet>)Allow URL subscriptions to reach these operator-listed networks (#431).
Subscriptions accept only globally routable addresses by default. An
instance admin can list private networks (for example an internal school
calendar server) with CALTERNAL_SERVER__SUBSCRIPTION_ALLOWED_NETWORKS.
Only the first call has an effect, like the other instance settings.
Source: crates/plugins/calendar/src/lib.rs:137
load_instance_secret_key
Section titled “load_instance_secret_key”pub fn load_instance_secret_key(root: &Root) -> Result<[u8; 32], InstanceKeyError>Load the instance AEAD key or create it below the reserved system directory.
CALTERNAL_SECRET_KEY uses padded standard Base64 for exactly 32 bytes.
The key file stores the same 32 bytes in binary. Key rotation is a separate
operation because it must re-encrypt every credential in the Index.