delete agent flow

This commit is contained in:
lda committed 2026-04-14 05:34:56 +07:00
1 parent 3053009a7e
commit 28dda76ee8
13 files changed
+295 -20

No files matched your search

+53
View File
@@ -187,6 +187,19 @@ impl Store {
Ok(removed)
}
pub async fn revoke_agent(&self, agent_id: &str) -> Result<bool> {
let removed = self
.agents
.remove(agent_id.as_bytes())
.context("failed removing agent credentials")?
.is_some();
if removed {
self.flush()
.context("failed flushing db after agent revoke")?;
}
Ok(removed)
}
pub async fn stats(&self) -> Result<StateStats> {
let now = now_unix();
let mut enroll_token_count = 0usize;
@@ -694,6 +707,46 @@ mod tests {
cleanup_dir(&dir);
}
#[tokio::test]
async fn revoke_agent_removes_credentials() {
let (store, dir) = make_store().await;
store
.enroll_tokens
.insert(b"enr-revoke-agent-test", &(u64::MAX - 10).to_le_bytes())
.expect("insert should succeed");
let issued = store
.enroll("enr-revoke-agent-test")
.await
.expect("enroll should succeed");
assert!(
store
.verify_agent_token(&issued.agent_id, &issued.agent_token)
.await
);
let removed = store
.revoke_agent(&issued.agent_id)
.await
.expect("revoke should succeed");
assert!(removed);
assert!(
!store
.verify_agent_token(&issued.agent_id, &issued.agent_token)
.await
);
let removed_again = store
.revoke_agent(&issued.agent_id)
.await
.expect("second revoke should succeed");
assert!(!removed_again);
cleanup_dir(&dir);
}
#[tokio::test]
async fn audit_events_append_and_filter() {
let (store, dir) = make_store().await;