Skip to main content

Crate swarmhive_api_types

Crate swarmhive_api_types 

Source
Expand description

SwarmHive HTTP API types.

Plain serde DTOs + utoipa::ToSchema annotations shared across the wire. Consumed by:

  • swarmhive-server — for axum handler request / response bodies.
  • swarmhive-cli — for HTTP client request / response deserialization.
  • swarmhive-entity — for impl From<&entity::Model> conversions.

Boundary rules:

  • This crate MUST stay free of sea-orm, axum, tokio, reqwest, or any IO / runtime dependency. It is the thinnest possible shared layer.
  • Concrete DTOs (User, Release, Artifact, …) are added by subsequent proposals (add-persistence-foundation, add-app-release-artifact, …).

Re-exports§

pub use api_token::ApiToken;
pub use api_token::ApiTokenKind;
pub use api_token::CreateTokenRequest;
pub use api_token::CreateTokenResponse;
pub use app::App;
pub use app::CreateAppRequest;
pub use app::UpdateAppRequest;
pub use artifact::Artifact;
pub use artifact::ChannelAction;
pub use artifact::ChannelReleaseHistoryEntry;
pub use audit::AuditLog;
pub use channel::Channel;
pub use channel::ChannelView;
pub use channel::CreateChannelRequest;
pub use channel::UpdateChannelRequest;
pub use device::DEVICE_GRANT_TYPE;
pub use device::DeviceAuthorizationView;
pub use device::DeviceCodeRequest;
pub use device::DeviceCodeResponse;
pub use device::DeviceTokenError;
pub use device::DeviceTokenErrorResponse;
pub use device::DeviceTokenRequest;
pub use device::DeviceTokenResponse;
pub use device::DeviceVerifyRequest;
pub use identity::IdentityProvider;
pub use mail::CreateProviderReq;
pub use mail::MailLogStatus;
pub use mail::MailLogView;
pub use mail::MailProviderView;
pub use mail::MailStatusResp;
pub use mail::MailTemplateView;
pub use mail::PreviewReq;
pub use mail::PreviewResp;
pub use mail::ProviderKind;
pub use mail::SmtpEncryption;
pub use mail::TestSentResp;
pub use mail::TouchedResp;
pub use mail::UpdateProviderReq;
pub use mail::UpdateTemplateReq;
pub use oauth::CreateOAuthProviderReq;
pub use oauth::OAuthProviderKind;
pub use oauth::OAuthProviderView;
pub use oauth::OAuthTestResult;
pub use oauth::PublicOAuthProvider;
pub use oauth::UpdateOAuthProviderReq;
pub use platform::Platform;
pub use release::CreateReleaseRequest;
pub use release::PromoteRequest;
pub use release::Release;
pub use release::ReleaseStatus;
pub use release::RollbackRequest;
pub use release::UpdateReleaseRequest;
pub use role::Permission;
pub use role::PermissionName;
pub use role::Role;
pub use storage::CorsConfigRequest;
pub use storage::CorsConfigResult;
pub use storage::CreateStorageBackendRequest;
pub use storage::StorageBackendView;
pub use storage::StorageTestResult;
pub use storage::UpdateStorageBackendRequest;
pub use storage::UrlMode;
pub use update::AndroidUpdateResponse;
pub use update::TauriUpdateExtensions;
pub use update::TauriUpdateResponse;
pub use update::UpgradeType;
pub use upload::CompletePart;
pub use upload::CompleteRequest;
pub use upload::CompleteResponse;
pub use upload::PresignFile;
pub use upload::PresignPart;
pub use upload::PresignRequest;
pub use upload::PresignResponse;
pub use user::User;
pub use user::UserStatus;

Modules§

api_token
app
artifact
audit
channel
device
RFC 8628 Device Authorization Grant 的 HTTP DTO(swarmhive login 用)。
identity
mail
Mail HTTP DTOs —— SMTP provider / 模板 / 日志 / 状态。
oauth
OAuth provider configuration DTOs (admin Settings > Authentication) + the public provider list consumed by the /login page.
platform
release
role
storage
update
Tauri v2 updater「dynamic update server」兼容响应 DTO。
upload
user