use utoipa::OpenApi; #[derive(OpenApi)] #[openapi( info( title = "gitdata admin api", version = "1.0", description = "GitData 管理后台 API。独立进程(adminhost)、独立会话 Cookie(gitdata_admin_session)、固定角色 super_admin/operator/viewer。" ), paths( crate::handlers::auth::login, crate::handlers::auth::logout, crate::handlers::auth::me, crate::handlers::auth::change_password, crate::handlers::admins::list_admins, crate::handlers::admins::create_admin, crate::handlers::admins::get_admin, crate::handlers::admins::update_admin, crate::handlers::admins::delete_admin, crate::handlers::admins::reset_admin_password, crate::handlers::admins::revoke_admin_sessions, crate::handlers::users::list_users, crate::handlers::users::get_user, crate::handlers::users::update_user, crate::handlers::users::suspend_user, crate::handlers::users::revoke_suspension, crate::handlers::users::reset_user_password, crate::handlers::users::revoke_user_sessions, crate::handlers::users::delete_user, crate::handlers::users::create_user, crate::handlers::users::bulk_users, crate::handlers::users::export_users, crate::handlers::users::list_user_sessions, crate::handlers::users::revoke_user_session, crate::handlers::users::get_user_security, crate::handlers::users::clear_user_two_factor, crate::handlers::chat::stats, crate::handlers::chat::list_rooms, crate::handlers::chat::get_room, crate::handlers::chat::update_room, crate::handlers::chat::delete_room, crate::handlers::chat::list_members, crate::handlers::chat::remove_member, crate::handlers::chat::purge_room, crate::handlers::chat::list_messages, crate::handlers::chat::export_messages, crate::handlers::chat::get_message, crate::handlers::chat::bulk_delete_messages, crate::handlers::chat::list_attachments, crate::handlers::chat::delete_attachment, crate::handlers::spaces::list_spaces, crate::handlers::spaces::get_space, crate::handlers::spaces::update_space, crate::handlers::spaces::transfer_space, crate::handlers::spaces::delete_space, crate::handlers::spaces::list_space_members, crate::handlers::spaces::remove_space_member, crate::handlers::spaces::add_space_member, crate::handlers::storage::overview, crate::handlers::storage::list_objects, crate::handlers::storage::download_url, crate::handlers::storage::delete_object, crate::handlers::queues::list_queues, crate::handlers::queues::requeue_failed, crate::handlers::queues::purge, crate::handlers::queues::failed_jobs, crate::handlers::tasks::list_tasks, crate::handlers::tasks::get_task, crate::handlers::tasks::retry_task, crate::handlers::tasks::cancel_task, crate::handlers::tasks::delete_task, crate::handlers::tasks::task_stats, crate::handlers::tasks::bulk_tasks, crate::handlers::act::summary, crate::handlers::act::list_runs, crate::handlers::act::cancel_run, crate::handlers::act::rerun_run, crate::handlers::repos::list_repos, crate::handlers::repos::get_repo, crate::handlers::repos::update_repo, crate::handlers::runners::list_runners, crate::handlers::runners::update_runner, crate::handlers::runners::delete_runner, crate::handlers::runners::list_runner_tokens, crate::handlers::runners::create_runner_token, crate::handlers::runners::revoke_runner_token, crate::handlers::runners::list_environments, crate::handlers::runners::upsert_environment, crate::handlers::runners::delete_environment, crate::handlers::runners::upsert_environment_secret, crate::handlers::runners::delete_environment_secret, crate::handlers::logs::list_audit_logs, crate::handlers::logs::list_job_logs, crate::handlers::logs::export_audit_logs, crate::handlers::system::status, crate::handlers::system::config, crate::handlers::system::dashboard ), components(schemas( crate::services::act::AdminActSummary, crate::services::act::AdminActRunDto, crate::services::act::AdminActRunPage, crate::services::act::ListActRunsQuery, crate::services::repos::AdminRepoSummary, crate::services::repos::AdminRepoPage, crate::services::repos::ListReposQuery, crate::services::repos::UpdateRepoCmd, crate::services::runners::RunnerDto, crate::services::runners::RunnerPageDto, crate::services::runners::UpdateRunnerCmd, crate::services::runners::RunnerTokenDto, crate::services::runners::CreatedRunnerTokenDto, crate::services::runners::CreateRunnerTokenCmd, crate::services::runners::EnvironmentAdminDto, crate::services::runners::UpsertEnvironmentAdminCmd, crate::services::runners::UpsertEnvironmentSecretCmd, export::rest::NoData, export::pagination::PageQuery, models::admin::admin_user::AdminRole, models::users::user_suspensions::SuspensionType, crate::services::auth::AdminLoginCmd, crate::services::auth::AdminLoginResp, crate::services::auth::AdminDto, crate::services::auth::ChangePasswordCmd, crate::services::auth::CreateAdminCmd, crate::services::auth::UpdateAdminCmd, crate::services::auth::ResetAdminPasswordCmd, crate::services::users::AdminUserSummary, crate::services::users::AdminUserEmailDto, crate::services::users::AdminUserSessionDto, crate::services::users::AdminUserSpaceDto, crate::services::users::AdminSuspensionDto, crate::services::users::AdminUserDetail, crate::services::users::UpdateUserCmd, crate::services::users::SuspendUserCmd, crate::services::users::ResetUserPasswordCmd, crate::services::users::RevokeSessionsResp, crate::services::users::DeleteUserResp, crate::services::users::CreateUserCmd, crate::services::users::CreateUserResp, crate::services::users::BulkUsersCmd, crate::services::users::BulkUsersResp, crate::services::users::BulkUserFailure, crate::services::users::AdminUserSessionRow, crate::services::users::AdminUserSessionPage, crate::services::users::AdminUserSecurityDto, crate::services::chat::AdminChatKindCount, crate::services::chat::AdminChatStatsDto, crate::services::chat::AdminChatRoomSummary, crate::services::chat::AdminChatRoomDetail, crate::services::chat::UpdateChatRoomCmd, crate::services::chat::AdminChatRoomMemberDto, crate::services::chat::AdminChatMessageDto, crate::services::chat::AdminChatMessageEditDto, crate::services::chat::AdminChatReactionGroupDto, crate::services::chat::AdminChatAttachmentDto, crate::services::chat::AdminChatThreadDto, crate::services::chat::AdminChatMessageDetail, crate::services::chat::BulkDeleteChatMessagesCmd, crate::services::chat::BulkChatMessageFailure, crate::services::chat::BulkDeleteChatMessagesResp, crate::services::chat::PurgeChatMessagesResp, crate::services::chat::DeleteChatRoomResp, crate::services::chat::DeleteChatAttachmentResp, crate::services::chat::RemoveChatMemberResp, crate::services::spaces::AdminSpaceSummary, crate::services::spaces::AdminSpaceDetail, crate::services::spaces::UpdateSpaceCmd, crate::services::spaces::TransferSpaceCmd, crate::services::spaces::AdminSpaceMemberDto, crate::services::spaces::RemoveMemberResp, crate::services::spaces::AddSpaceMemberCmd, crate::services::spaces::AddSpaceMemberResp, crate::services::storage::StorageCategoryDto, crate::services::storage::StorageOverviewDto, crate::services::storage::StorageObjectDto, crate::services::storage::StorageObjectPageDto, crate::services::storage::DownloadUrlDto, crate::services::storage::DeleteObjectResp, crate::services::queues::QueueSnapshotDto, crate::services::queues::QueueActionResp, crate::services::tasks::TaskDto, crate::services::tasks::TaskPageDto, crate::services::tasks::TaskDetailDto, crate::services::tasks::TaskActionResp, crate::services::tasks::TaskSourceStatDto, crate::services::tasks::TaskStatsDto, crate::services::tasks::BulkTaskCmd, crate::services::tasks::BulkTaskResp, crate::services::tasks::BulkTaskFailure, crate::services::logs::AuditLogDto, crate::services::logs::AuditLogPageDto, crate::services::logs::JobLogDto, crate::services::logs::JobLogPageDto, crate::services::system::ProcessInfoDto, crate::services::system::DependencyDto, crate::services::system::DependenciesDto, crate::services::system::FeaturesDto, crate::services::system::CountsDto, crate::services::system::SystemStatusDto, crate::services::system::HostEntryDto, crate::services::system::AdminEndpointDto, crate::services::system::SearchConfigDto, crate::services::system::ImportConfigDto, crate::services::system::GitConfigDto, crate::services::system::StorageConfigDto, crate::services::system::DatabaseConfigDto, crate::services::system::RedisConfigDto, crate::services::system::SessionConfigDto, crate::services::system::EmailConfigDto, crate::services::system::SystemConfigDto, crate::services::system::TrendPointDto, crate::services::system::DashboardDto )) )] pub struct AdminApiDoc; pub fn api_doc() -> utoipa::openapi::OpenApi { let mut doc = AdminApiDoc::openapi(); doc.servers = Some(vec![utoipa::openapi::Server::new("/api/v1")]); { use utoipa::openapi::security::{ApiKey, ApiKeyValue, SecurityScheme}; let components = doc .components .get_or_insert_with(utoipa::openapi::Components::default); components.add_security_scheme( "admin_session_cookie", SecurityScheme::ApiKey(ApiKey::Cookie(ApiKeyValue::new("gitdata_admin_session"))), ); } doc.security = Some(vec![utoipa::openapi::security::SecurityRequirement::new( "admin_session_cookie", Vec::::new(), )]); doc }