//! Cross-cutting types used by every PiCloud crate. //! //! Keep this crate small. If something only one core needs, it belongs in //! that core's crate. Things here must be genuinely shared (IDs, the Script //! entity, error roots, transport DTOs). pub mod app; pub mod auth; pub mod crypto; pub mod dead_letters; pub mod docs; pub mod email; pub mod error; pub mod events; pub mod exec_summary; pub mod execution_log; pub mod files; pub mod group; pub mod group_docs; pub mod group_files; pub mod group_kv; pub mod http; pub mod ids; pub mod inbox; pub mod invoke; pub mod kv; pub mod log_sink; pub mod modules; pub mod outbox_writer; pub mod pubsub; pub mod queue; pub mod realtime; pub mod realtime_authority; pub mod route; pub mod sandbox; pub mod script; pub mod sdk_cx; pub mod secrets; pub mod services; pub mod subscriber_token; pub mod trigger_event; pub mod users; pub mod validator; pub mod vars; pub mod version; /// serde `default` for `enabled`-style boolean fields that should default to /// `true` when absent from the wire (bool's own `Default` is `false`). Shared /// by `Script`/`Route`, the apply `Bundle` types, and the CLI manifest. #[must_use] pub fn default_true() -> bool { true } pub use app::{App, AppDomain, DomainShape}; pub use auth::{AppRole, InstanceRole, Principal, Scope, UserId}; pub use crypto::{decrypt, encrypt, CryptoError, EncryptResult, MasterKey, MasterKeyError}; pub use dead_letters::{DeadLetterError, DeadLetterId, DeadLetterService, NoopDeadLetterService}; pub use docs::{DocId, DocRow, DocsError, DocsListPage, DocsService, NoopDocsService}; pub use email::{EmailError, EmailService, NoopEmailService, OutboundEmail}; pub use error::Error; pub use events::{EmitError, NoopEventEmitter, ServiceEvent, ServiceEventEmitter}; pub use exec_summary::ExecResponseSummary; pub use execution_log::{ExecutionLog, ExecutionSource, ExecutionStatus}; pub use files::{ sanitize_stored_content_type, validate_collection as validate_files_collection, FileMeta, FileUpdate, FilesError, FilesListPage, FilesService, NewFile, NoopFilesService, SAFE_RENDER_FALLBACK, }; pub use group::Group; pub use group_docs::{GroupDocsError, GroupDocsService, NoopGroupDocsService}; pub use group_files::{GroupFilesError, GroupFilesService, NoopGroupFilesService}; pub use group_kv::{GroupKvError, GroupKvService, NoopGroupKvService}; pub use http::{HttpError, HttpRequest, HttpResponse, HttpService, NoopHttpService}; pub use ids::{ AdminUserId, ApiKeyId, AppId, AppUserId, ExecutionId, GroupId, InvitationId, QueueMessageId, RequestId, ScriptId, TriggerId, }; pub use inbox::{ InboxDeliveryOutcome, InboxFailureKind, InboxResolver, InboxResult, NoopInboxResolver, }; pub use invoke::{InvokeError, InvokeService, InvokeTarget, NoopInvokeService, ResolvedScript}; pub use kv::{KvError, KvListPage, KvService, NoopKvService}; pub use log_sink::{ExecutionLogSink, LogSinkError}; pub use modules::{ ModuleResolution, ModuleScript, ModuleSource, ModuleSourceError, NoopModuleSource, }; pub use outbox_writer::{HttpDispatchPayload, NewHttpOutbox, OutboxWriter, OutboxWriterError}; pub use pubsub::{ topic_matches, validate_topic_pattern, NoopPubsubService, PubsubError, PubsubService, }; pub use queue::{EnqueueOpts, NoopQueueService, QueueError, QueueService}; pub use realtime::{BroadcasterError, NoopRealtimeBroadcaster, RealtimeBroadcaster, RealtimeEvent}; pub use realtime_authority::{DenyAllRealtimeAuthority, RealtimeAuthority, SubscribeDenied}; pub use route::{DispatchMode, HostKind, PathKind, Route}; pub use sandbox::ScriptSandbox; pub use script::{Script, ScriptKind, ScriptOwner}; pub use sdk_cx::SdkCallCx; pub use secrets::{ validate_secret_name, NoopSecretsService, SecretsError, SecretsListPage, SecretsService, SECRET_NAME_MAX_BYTES, }; pub use services::Services; pub use trigger_event::{ DeadLetterEventDetail, DocsEventOp, FilesEventOp, KvEventOp, TriggerEvent, }; pub use users::{ AppUser, CreateUserInput, EmailTemplateOpts, GeneratedAccept, GeneratedSession, Invitation, InviteOpts, NoopUsersService, UpdateUserInput, UsersError, UsersListOpts, UsersListPage, UsersService, }; pub use validator::{ScriptValidator, ValidatedScript, ValidationError}; pub use vars::{NoopVarsService, VarsError, VarsService}; pub use version::{API_VERSION, PRODUCT_VERSION, SDK_VERSION, WIRE_VERSION};