Private
Public Access
1
0

Compare commits

..

1 Commits

Author SHA1 Message Date
8c6ddbf59e chore: bump version to 0.2.0
All checks were successful
CI Pipeline / Rust Format Check (push) Successful in 4s
CI Pipeline / Clippy Lints (push) Successful in 51s
CI Pipeline / Rust Unit Tests (push) Successful in 1m10s
CI Pipeline / Security Audit (push) Successful in 6s
CI Pipeline / Frontend Lint & Type Check (push) Successful in 15s
CI Pipeline / Build .deb & Release (push) Successful in 3m51s
2026-06-05 17:35:51 -05:00
8 changed files with 17 additions and 21 deletions

16
Cargo.lock generated
View File

@ -2043,7 +2043,7 @@ checksum = "f8ca58f447f06ed17d5fc4043ce1b10dd205e060fb3ce5b979b8ed8e59ff3f79"
[[package]]
name = "migrate-secrets"
version = "0.2.3"
version = "0.1.9"
dependencies = [
"anyhow",
"hex",
@ -2548,7 +2548,7 @@ dependencies = [
[[package]]
name = "pm-agent-client"
version = "0.2.3"
version = "0.1.9"
dependencies = [
"anyhow",
"chrono",
@ -2565,7 +2565,7 @@ dependencies = [
[[package]]
name = "pm-auth"
version = "0.2.3"
version = "0.1.9"
dependencies = [
"anyhow",
"argon2",
@ -2593,7 +2593,7 @@ dependencies = [
[[package]]
name = "pm-ca"
version = "0.2.3"
version = "0.1.9"
dependencies = [
"anyhow",
"chrono",
@ -2617,7 +2617,7 @@ dependencies = [
[[package]]
name = "pm-core"
version = "0.2.3"
version = "0.1.9"
dependencies = [
"aes-gcm",
"anyhow",
@ -2641,7 +2641,7 @@ dependencies = [
[[package]]
name = "pm-reports"
version = "0.2.3"
version = "0.1.9"
dependencies = [
"anyhow",
"chrono",
@ -2661,7 +2661,7 @@ dependencies = [
[[package]]
name = "pm-web"
version = "0.2.3"
version = "0.1.9"
dependencies = [
"anyhow",
"axum",
@ -2702,7 +2702,7 @@ dependencies = [
[[package]]
name = "pm-worker"
version = "0.2.3"
version = "0.1.9"
dependencies = [
"anyhow",
"chrono",

View File

@ -12,7 +12,7 @@ members = [
]
[workspace.package]
version = "0.2.4"
version = "0.2.0"
edition = "2021"
authors = ["Echo <echo@moon-dragon.us>"]
license = "MIT"

View File

@ -120,7 +120,7 @@ pub async fn login(
let user: Option<DbUser> = sqlx::query_as(
r#"
SELECT id, username, display_name, role, auth_provider,
password_hash, totp_secret_encrypted, totp_secret_nonce, mfa_enabled, is_active, force_password_reset,
password_hash, totp_secret, mfa_enabled, is_active, force_password_reset,
failed_login_attempts, locked_until
FROM users
WHERE username = $1 AND auth_provider = 'local'
@ -278,7 +278,7 @@ pub async fn refresh_session(
let user: DbUser = sqlx::query_as(
r#"
SELECT id, username, display_name, role, auth_provider,
password_hash, totp_secret_encrypted, totp_secret_nonce, mfa_enabled, is_active, force_password_reset,
password_hash, totp_secret, mfa_enabled, is_active, force_password_reset,
failed_login_attempts, locked_until
FROM users WHERE id = $1
"#,

View File

@ -553,7 +553,7 @@ impl CertAuthority {
FROM certificates \
WHERE status = 'revoked'::cert_status \
AND revoked_at IS NOT NULL \
AND expires_at > NOW() \
AND not_after > NOW() \
ORDER BY revoked_at ASC",
)
.fetch_all(db)

View File

@ -178,10 +178,8 @@ pub enum EnrollmentStatusResponse {
Pending,
Approved {
ca_crt: String,
ca_chain: String,
server_crt: String,
server_key: String,
crl_pem: String,
},
Denied,
NotFound,

View File

@ -435,7 +435,7 @@ async fn disable_mfa(
));
}
sqlx::query("UPDATE users SET totp_secret_encrypted = NULL, totp_secret_nonce = NULL, mfa_enabled = FALSE WHERE id = $1")
sqlx::query("UPDATE users SET totp_secret = NULL, mfa_enabled = FALSE WHERE id = $1")
.bind(auth_user.user_id)
.execute(&state.db)
.await

View File

@ -111,10 +111,8 @@ async fn enroll_status(
}
return Ok(Json(EnrollmentStatusResponse::Approved {
ca_crt: entry.pki.ca_crt.clone(),
ca_chain: entry.pki.ca_chain.clone(),
server_crt: entry.pki.server_crt.clone(),
server_key: entry.pki.server_key.clone(),
crl_pem: entry.pki.crl_pem.clone(),
}));
}
@ -188,7 +186,7 @@ async fn approve_enrollment(
// Check for FQDN/IP collision in hosts table
if let Some(existing_host) = sqlx::query_as::<_, Host>(
"SELECT id, fqdn, ip_address::text, display_name, os_family, os_name, arch, agent_version, health_status, last_health_at, last_patch_at, agent_port, notes, registered_at, updated_at, crl_status, crl_age_seconds, crl_next_update FROM hosts WHERE fqdn = $1 OR ip_address = $2::inet"
"SELECT id, fqdn, ip_address::text, display_name, os_family, os_name, arch, agent_version, health_status, last_health_at, last_patch_at, agent_port, notes, registered_at, updated_at FROM hosts WHERE fqdn = $1 OR ip_address = $2::inet"
)
.bind(&enrollment_request.fqdn)
.bind(enrollment_request.ip_address.to_string())

View File

@ -132,7 +132,7 @@ async fn list_hosts(
THEN 'some_unhealthy'
ELSE 'all_healthy'
END AS health_check_status,
h.registered_at,
h.registered_at
h.crl_status
FROM hosts h
LEFT JOIN host_patch_data hpd ON hpd.host_id = h.id
@ -166,7 +166,7 @@ async fn list_hosts(
THEN 'some_unhealthy'
ELSE 'all_healthy'
END AS health_check_status,
h.registered_at,
h.registered_at
h.crl_status
FROM hosts h
LEFT JOIN host_patch_data hpd ON hpd.host_id = h.id
@ -434,7 +434,7 @@ async fn update_host(
SELECT id, fqdn, host(ip_address)::text AS ip_address, display_name,
os_family, os_name, arch, agent_version, health_status,
last_health_at, last_patch_at, agent_port, notes,
registered_at, updated_at, crl_status, crl_age_seconds, crl_next_update
registered_at, updated_at
FROM hosts WHERE id = (SELECT id FROM updated)
) h
"#,