1#![deny(warnings)]
5#![deny(deprecated)]
6#![recursion_limit = "512"]
7#![warn(unused_extern_crates)]
8#![deny(clippy::suspicious)]
10#![deny(clippy::perf)]
11#![deny(clippy::todo)]
13#![deny(clippy::unimplemented)]
14#![deny(clippy::unwrap_used)]
15#![deny(clippy::expect_used)]
16#![deny(clippy::panic)]
17#![deny(clippy::await_holding_lock)]
18#![deny(clippy::needless_pass_by_value)]
19#![deny(clippy::trivially_copy_pass_by_ref)]
20#![deny(clippy::disallowed_types)]
21#![deny(clippy::manual_let_else)]
22#![deny(clippy::indexing_slicing)]
23#![allow(clippy::unreachable)]
24
25#[cfg(all(test, feature = "dhat-heap"))]
26#[global_allocator]
27static ALLOC: dhat::Alloc = dhat::Alloc;
28
29#[macro_use]
30extern crate rusqlite;
31
32#[macro_use]
33extern crate tracing;
34
35#[macro_use]
40pub mod macros;
41
42pub mod be;
43pub mod constants;
44pub mod credential;
45pub mod entry;
46pub mod event;
47pub mod filter;
48
49pub(crate) mod migration_data;
53
54pub mod modify;
55pub mod time;
56pub(crate) mod utils;
57pub mod value;
58pub mod valueset;
59#[macro_use]
60mod plugins;
61pub mod idm;
62pub mod repl;
63pub mod schema;
64pub mod server;
65pub mod status;
66pub mod testkit;
67
68#[allow(unused_imports)]
72pub mod prelude {
73 pub(crate) use crate::be::Limits;
74 pub(crate) use crate::constants::uuids::*;
75 pub use crate::constants::*;
76 pub(crate) use crate::entry::{
77 entry_init_fn, Entry, EntryCommitted, EntryIncrementalCommitted, EntryIncrementalNew,
78 EntryInit, EntryInitNew, EntryInvalid, EntryInvalidCommitted, EntryInvalidNew, EntryNew,
79 EntryReduced, EntryReducedCommitted, EntryRefresh, EntryRefreshNew, EntrySealed,
80 EntrySealedCommitted, EntrySealedNew, EntryTuple, EntryValid,
81 };
82 pub use crate::event::{CreateEvent, DeleteEvent, ExistsEvent, ModifyEvent, SearchEvent};
83 pub use crate::filter::{
84 f_and, f_andnot, f_eq, f_gt, f_id, f_inc, f_invalid, f_lt, f_or, f_pres, f_self,
85 f_spn_name, f_sub, Filter, FilterInvalid, FilterValid, FC,
86 };
87 pub use crate::idm::authentication::{ClientAuthInfo, ClientCertInfo};
88 pub use crate::idm::server::{IdmServer, IdmServerAudit, IdmServerDelayed};
89 pub use crate::modify::{
90 m_assert, m_pres, m_purge, m_remove, Modify, ModifyInvalid, ModifyList, ModifyValid,
91 };
92 pub use crate::repl::cid::Cid;
93 pub use crate::schema::{SchemaAttribute, SchemaClass};
94 pub use crate::server::access::AccessControlsTransaction;
95 pub use crate::server::batch_modify::BatchModifyEvent;
96 pub use crate::server::identity::{
97 AccessScope, IdentType, IdentUser, Identity, IdentityId, InternalRole, Source,
98 };
99 pub use crate::server::{
100 QueryServer, QueryServerReadTransaction, QueryServerTransaction,
101 QueryServerWriteTransaction,
102 };
103 pub use crate::time::duration_from_epoch_now;
104 pub use crate::value::{
105 ApiTokenScope, IndexType, PartialValue, SessionScope, SyntaxType, Value,
106 };
107 pub(crate) use crate::valueset::{
108 ValueSet, ValueSetBool, ValueSetCid, ValueSetIname, ValueSetIutf8, ValueSetRefer,
109 ValueSetSha256, ValueSetSyntax, ValueSetT, ValueSetUtf8, ValueSetUuid,
110 };
111 pub use kanidm_proto::attribute::{AttrString, Attribute};
112 pub use kanidm_proto::constants::*;
113 pub use kanidm_proto::internal::{
114 ConsistencyError, Filter as ProtoFilter, OperationError, PluginError, SchemaError,
115 };
116 pub use kanidm_proto::scim_v1::JsonValue;
117 pub(crate) use kanidm_proto::scim_v1::{
118 server::{ScimEntryKanidm, ScimValueKanidm},
119 ScimEntryHeader,
120 };
121 #[cfg(test)]
122 pub use kanidmd_lib_macros::*;
123 pub use sketching::{
124 admin_debug, admin_error, admin_info, admin_warn, filter_error, filter_info, filter_trace,
125 filter_warn, perf_trace, request_error, request_info, request_trace, request_warn,
126 security_access, security_critical, security_debug, security_error, security_info,
127 tagged_event, EventTag,
128 };
129 pub(crate) use std::sync::LazyLock;
130 pub use std::time::Duration;
131 pub use time::format_description::well_known::Rfc3339;
132 pub use url::Url;
133 pub use uuid::{uuid, Uuid};
134}