nextcloud_goa/lib.rs
1//! GNOME Online Accounts integration for Nextcloud.
2//!
3//! This crate provides direct D-Bus integration with GNOME Online Accounts
4//! (`org.gnome.OnlineAccounts`) using [`zbus`] to securely discover and
5//! extract Nextcloud/ownCloud accounts configured on the Linux desktop session.
6//!
7//! # Architecture
8//!
9//! - [`GnomeOnlineAccounts`]: Connects to session D-Bus and queries the object manager.
10//! - [`GoaAccount`]: Represents a discovered account with base URL and assembled [`BasicAuth`](nextcloud_auth::BasicAuth).
11//! - [`proxy`]: Strongly-typed `zbus` proxies for GOA interfaces.
12//! - [`GoaError`]: Typed error enum for D-Bus communication and configuration errors.
13//! - [`parse_webdav_url`]: Normalises WebDAV URIs into Nextcloud base URLs.
14#![deny(missing_docs)]
15#![forbid(unsafe_code)]
16
17mod account;
18mod client;
19mod error;
20pub mod proxy;
21mod url;
22
23pub use account::GoaAccount;
24pub use client::GnomeOnlineAccounts;
25pub use error::GoaError;
26pub use url::parse_webdav_url;