Expose approval requests in admin logs
CI / UI Checks (push) Has been cancelled
CI / Frontend E2E (push) Has been cancelled
CI / Deployment Manifests (push) Has been cancelled
CI / Deploy (push) Has been cancelled
CI / Rust Checks (push) Has been cancelled

This commit is contained in:
github-ops
2026-06-24 13:51:54 +00:00
parent 7aad3b1228
commit 8b8f2fc6c5
14 changed files with 699 additions and 42 deletions
@@ -23,11 +23,11 @@ use crank_registry::{
CreateAgentRequest, CreateApprovalRequest, CreateInvocationLogRequest,
CreatePlatformApiKeyRequest, CreateVersionRequest, CreateWorkspaceRequest,
CreateYamlImportJobRequest, DecideApprovalRequest, DescriptorKind, DescriptorMetadata,
FinishApprovalRequest, OperationSampleMetadata, PlatformApiKeyRecord, PostgresRegistry,
PublishAgentRequest, PublishRequest, RegistryError, RegistryOperation, SampleKind,
SaveAuthProfileRequest, SaveDescriptorMetadataRequest, SaveSampleMetadataRequest,
UpdateWorkspaceRequest, WorkspaceRecord, YamlImportJobCompletion, YamlImportJobId,
YamlImportJobStatus,
FinishApprovalRequest, ListApprovalRequestsQuery, OperationSampleMetadata,
PlatformApiKeyRecord, PostgresRegistry, PublishAgentRequest, PublishRequest, RegistryError,
RegistryOperation, SampleKind, SaveAuthProfileRequest, SaveDescriptorMetadataRequest,
SaveSampleMetadataRequest, UpdateWorkspaceRequest, WorkspaceRecord, YamlImportJobCompletion,
YamlImportJobId, YamlImportJobStatus,
};
fn test_workspace_id() -> WorkspaceId {
@@ -531,6 +531,24 @@ async fn manages_approval_request_lifecycle() {
assert_eq!(pending.len(), 1);
assert_eq!(pending[0].approval, approval);
let workspace_approvals = registry
.list_approval_requests(ListApprovalRequestsQuery {
workspace_id: &workspace_id,
status: None,
limit: 10,
})
.await
.unwrap();
assert_eq!(workspace_approvals.len(), 1);
assert_eq!(workspace_approvals[0].approval.id, approval.id);
let fetched = registry
.get_approval_request(&workspace_id, &approval.id)
.await
.unwrap()
.unwrap();
assert_eq!(fetched.approval, approval);
let decided = registry
.decide_approval_request(DecideApprovalRequest {
workspace_id: &workspace_id,
@@ -575,6 +593,20 @@ async fn manages_approval_request_lifecycle() {
Some(json!({"id": "lead_123"}))
);
let completed_by_status = registry
.list_approval_requests(ListApprovalRequestsQuery {
workspace_id: &workspace_id,
status: Some(ApprovalRequestStatus::Completed),
limit: 10,
})
.await
.unwrap();
assert_eq!(completed_by_status.len(), 1);
assert_eq!(
completed_by_status[0].approval.status,
ApprovalRequestStatus::Completed
);
let pending_after_decision = registry
.list_pending_approval_requests_for_agent(&workspace_id, &agent.id)
.await