diff --git a/Cargo.lock b/Cargo.lock index 7b28a77..4dc9fd3 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -4,7 +4,7 @@ version = 4 [[package]] name = "admin-api" -version = "0.3.0" +version = "0.3.1" dependencies = [ "argon2", "async-trait", @@ -384,7 +384,7 @@ dependencies = [ [[package]] name = "crank-adapter-rest" -version = "0.3.0" +version = "0.3.1" dependencies = [ "async-trait", "axum", @@ -399,7 +399,7 @@ dependencies = [ [[package]] name = "crank-community-auth" -version = "0.3.0" +version = "0.3.1" dependencies = [ "argon2", "async-trait", @@ -417,7 +417,7 @@ dependencies = [ [[package]] name = "crank-community-mcp" -version = "0.3.0" +version = "0.3.1" dependencies = [ "async-trait", "axum", @@ -440,7 +440,7 @@ dependencies = [ [[package]] name = "crank-core" -version = "0.3.0" +version = "0.3.1" dependencies = [ "async-trait", "serde", @@ -453,7 +453,7 @@ dependencies = [ [[package]] name = "crank-mapping" -version = "0.3.0" +version = "0.3.1" dependencies = [ "crank-core", "serde", @@ -464,7 +464,7 @@ dependencies = [ [[package]] name = "crank-registry" -version = "0.3.0" +version = "0.3.1" dependencies = [ "crank-core", "crank-mapping", @@ -480,7 +480,7 @@ dependencies = [ [[package]] name = "crank-runtime" -version = "0.3.0" +version = "0.3.1" dependencies = [ "aes-gcm", "async-trait", @@ -505,7 +505,7 @@ dependencies = [ [[package]] name = "crank-schema" -version = "0.3.0" +version = "0.3.1" dependencies = [ "crank-core", "serde", @@ -1273,7 +1273,7 @@ checksum = "47e1ffaa40ddd1f3ed91f717a33c8c0ee23fff369e3aa8772b9605cc1d22f4c3" [[package]] name = "mcp-server" -version = "0.3.0" +version = "0.3.1" dependencies = [ "async-trait", "axum", diff --git a/Cargo.toml b/Cargo.toml index 6e2951c..396da51 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -17,7 +17,7 @@ resolver = "3" edition = "2024" license = "MIT" rust-version = "1.85" -version = "0.3.0" +version = "0.3.1" [workspace.dependencies] aes-gcm = "0.10" diff --git a/TASKS.md b/TASKS.md index 92bbb6a..84ee48c 100644 --- a/TASKS.md +++ b/TASKS.md @@ -164,4 +164,5 @@ Progress: - Phase 1 / task `1.6`: Community test surface уже приведен к честному baseline — `test = false` удален ранее, premium-only tests вычищены, `just verify` проходит на текущем составе workspace - Phase 1 / task `1.7`: workspace version bumped to `0.2.0`; release gate пройден (`just verify`, `npm run build`, `npm run e2e`), release commit и tag `v0.2.0` подготовлены в `crank-community` - Phase 2 dependency slice: `IdentityProvider` seam widened to cover `SSO/TOTP` with default `NotSupportedForProvider` methods and shared public DTOs for authorize/callback/two-factor flows; workspace version bumped to `0.3.0` for downstream enterprise consumption + - Phase 2 dependency slice: `apps/admin-api` now exposes a reusable lib target (`src/lib.rs`), so downstream private repos can depend on `build_app`, `AppState`, `AdminServiceBuilder`, and auth/state modules without copying the Community admin app - backward-compatible alias `CommunityMachineCredentialVerifier` сохранен, поведение Community не изменено diff --git a/apps/admin-api/src/lib.rs b/apps/admin-api/src/lib.rs new file mode 100644 index 0000000..51e3520 --- /dev/null +++ b/apps/admin-api/src/lib.rs @@ -0,0 +1,9 @@ +pub mod app; +pub mod auth; +pub mod error; +pub mod rate_limit; +pub mod request_context; +pub mod routes; +pub mod service; +pub mod state; +pub mod storage; diff --git a/apps/admin-api/src/main.rs b/apps/admin-api/src/main.rs index 9a5fb59..4339b77 100644 --- a/apps/admin-api/src/main.rs +++ b/apps/admin-api/src/main.rs @@ -1,31 +1,20 @@ -mod app; -mod auth; -mod error; -mod rate_limit; -mod request_context; -mod routes; -mod service; -mod state; -mod storage; - use std::{env, net::SocketAddr, path::PathBuf}; -use crank_community_auth::PasswordIdentityProvider; -use crank_registry::{PostgresPoolConfig, PostgresRegistry}; -use sqlx::postgres::PgConnectOptions; -use tokio::net::TcpListener; -use tracing::info; - -use crate::{ +use admin_api::{ app::build_app, auth::{AuthSettings, BootstrapAdminConfig}, service::AdminServiceBuilder, state::AppState, }; +use crank_community_auth::PasswordIdentityProvider; +use crank_registry::{PostgresPoolConfig, PostgresRegistry}; use crank_runtime::{ RequestRateLimitConfig, RequestRateLimiter, RuntimeCacheConfig, RuntimeCacheStores, RuntimeLimits, SecretCrypto, community_default, }; +use sqlx::postgres::PgConnectOptions; +use tokio::net::TcpListener; +use tracing::info; #[tokio::main] async fn main() -> Result<(), Box> {