Expand description
Miyabi Approval System - Human-in-the-Loop workflow approval gates
This crate provides approval gate functionality for workflows, enabling:
- Multi-approver support
- Approval state persistence
- Timeout and escalation handling
- Notification system integration
§Example
use miyabi_approval::{ApprovalGate, ApprovalStore};
let gate = ApprovalGate::builder("deploy-production")
.required_approvers(vec!["tech-lead".to_string(), "ciso".to_string()])
.timeout_seconds(86400) // 24 hours
.build()?;
// Pause workflow at approval gate
let approval_id = gate.create_approval("workflow-123").await?;
// Later: approve the workflow
gate.approve(&approval_id, "tech-lead", Some("LGTM".to_string())).await?;Re-exports§
pub use error::ApprovalError;pub use error::Result;pub use gate::ApprovalGate;pub use gate::ApprovalGateBuilder;pub use notifications::ApprovalRequest;pub use notifications::DiscordEmbed;pub use notifications::DiscordNotifier;pub use notifications::MessageFormatter;pub use notifications::Notifier;pub use notifications::SlackBlock;pub use notifications::SlackNotifier;pub use notifications::WorkflowStatusUpdate;pub use state::ApprovalResponse;pub use state::ApprovalState;pub use state::ApprovalStatus;pub use store::ApprovalStore;
Modules§
- error
- Error types for approval system
- gate
- Approval gate implementation
- notifications
- Notification system for approval requests and workflow status updates
- state
- Approval state management
- store
- Approval state persistence