feat: add comprehensive CLI with API client, session management, and data seeding

- Binary renamed from 'api' to 'xevion' with full CLI command structure
- Authentication: login/logout with session persistence to .xevion-session
- API commands: projects, tags, settings CRUD operations with JSON/table output
- Serve command: run production server with configurable listen addresses
- Seed command: moved from bin/ to CLI subcommand for database initialization
- HTTP client abstraction supporting both TCP and Unix socket connections
This commit is contained in:
2026-01-13 19:55:45 -06:00
parent b6d377a143
commit aa56d31067
18 changed files with 1849 additions and 243 deletions
+3 -3
View File
@@ -60,7 +60,7 @@ pub struct ApiSiteSettings {
}
// Request types for updates
#[derive(Debug, Deserialize)]
#[derive(Debug, Deserialize, Serialize)]
pub struct UpdateSiteIdentityRequest {
#[serde(rename = "displayName")]
pub display_name: String,
@@ -70,7 +70,7 @@ pub struct UpdateSiteIdentityRequest {
pub site_title: String,
}
#[derive(Debug, Deserialize)]
#[derive(Debug, Deserialize, Serialize)]
pub struct UpdateSocialLinkRequest {
pub id: String,
pub platform: String,
@@ -82,7 +82,7 @@ pub struct UpdateSocialLinkRequest {
pub display_order: i32,
}
#[derive(Debug, Deserialize)]
#[derive(Debug, Deserialize, Serialize)]
pub struct UpdateSiteSettingsRequest {
pub identity: UpdateSiteIdentityRequest,
#[serde(rename = "socialLinks")]