Crate miyabi_approval

Crate miyabi_approval 

Source
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