Skip to main content

Module archive

Module archive 

Source
Expand description

Archive management API endpoints.

This module provides REST API endpoints for managing job archiving operations, including archiving jobs, restoring archived jobs, listing archived jobs, and configuring archival policies.

§Endpoints

  • POST /api/archive/jobs - Archive jobs based on policy
  • GET /api/archive/jobs - List archived jobs with pagination and filtering
  • POST /api/archive/jobs/{id}/restore - Restore an archived job
  • DELETE /api/archive/jobs - Purge old archived jobs
  • GET /api/archive/stats - Get archival statistics
  • GET /api/archive/policies - List archival policies
  • POST /api/archive/policies - Create or update archival policy
  • DELETE /api/archive/policies/{id} - Delete archival policy

§Examples

§Archive Jobs

use hammerwork_web::api::archive::{ArchiveRequest, ArchiveResponse};
use hammerwork::archive::{ArchivalReason, ArchivalPolicy};
use chrono::Duration;

let request = ArchiveRequest {
    queue_name: Some("completed_jobs".to_string()),
    reason: ArchivalReason::Automatic,
    archived_by: Some("scheduler".to_string()),
    dry_run: false,
    policy: Some(ArchivalPolicy::new()
        .archive_completed_after(Duration::days(7))),
};

// This would be sent to POST /api/archive/jobs
assert_eq!(request.queue_name, Some("completed_jobs".to_string()));
assert!(!request.dry_run);

§List Archived Jobs

use hammerwork_web::api::archive::ArchivedJobInfo;
use hammerwork::archive::{ArchivalReason, ArchivedJob};
use hammerwork::{JobId, JobStatus};
use chrono::Utc;
use uuid::Uuid;

let archived_job = ArchivedJobInfo {
    id: Uuid::new_v4(),
    queue_name: "email_queue".to_string(),
    status: JobStatus::Completed,
    created_at: Utc::now(),
    archived_at: Utc::now(),
    archival_reason: ArchivalReason::Automatic,
    original_payload_size: Some(1024),
    payload_compressed: true,
    archived_by: Some("system".to_string()),
};

assert_eq!(archived_job.queue_name, "email_queue");
assert!(archived_job.payload_compressed);

Structs§

ArchiveFilterParams
Archive filter parameters
ArchiveRequest
Request to archive jobs
ArchiveResponse
Response from archiving jobs
ArchivedJobInfo
Archived job information for API responses
PolicyRequest
Archival policy configuration request
PolicyResponse
Archival policy response
PurgeRequest
Request to purge archived jobs
PurgeResponse
Response from purging archived jobs
RecentOperation
Information about recent archival operations
RestoreRequest
Request to restore an archived job
RestoreResponse
Response from restoring a job
StatsResponse
Archive statistics response

Functions§

archive_routes
Create archive API routes