nextcloud_users/lib.rs
1//! Nextcloud user provisioning and server capabilities client.
2//!
3//! This crate models the Nextcloud OCS User and Server Capabilities APIs,
4//! wrapping [`nextcloud_ocs::OcsClient`] with strongly typed representations
5//! of:
6//! - Server capabilities discovery ([`Capabilities`]): Nextcloud version,
7//! operational status, poll intervals, WebDAV root, file chunking, undelete,
8//! versioning, and theming branding.
9//! - User details and storage quota ([`User`], [`Quota`]): user ID, display
10//! name, email, account status, group memberships, and storage limits.
11//!
12//! Sensitive fields (such as user email addresses and internal storage locations)
13//! are strictly redacted in [`std::fmt::Debug`] formatting to prevent credential
14//! or personal data leakage into log files.
15//!
16//! Official Nextcloud API Documentation:
17//! - [OCS API Overview](https://docs.nextcloud.com/server/latest/developer_manual/client_apis/OCS/ocs-api-overview.html)
18//! - [Capabilities API](https://docs.nextcloud.com/server/latest/developer_manual/client_apis/OCS/ocs-api-overview.html#capabilities-api)
19//! - [User Metadata](https://docs.nextcloud.com/server/latest/developer_manual/client_apis/OCS/ocs-api-overview.html#user-metadata)
20//! - [User Provisioning API](https://docs.nextcloud.com/server/latest/admin_manual/configuration_user/user_provisioning_api.html)
21#![deny(missing_docs)]
22#![forbid(unsafe_code)]
23
24mod capabilities;
25mod client;
26mod user;
27pub(crate) mod wire;
28
29pub use capabilities::{
30 Capabilities, CapabilitiesData, ChunkedUpload, CoreCapabilities, FilesCapabilities,
31 ServerStatus, ServerVersion, ThemingCapabilities,
32};
33pub use client::UserClient;
34pub use user::{Quota, User};