jobcelis
Official Rust SDK for the Jobcelis Event Infrastructure Platform.
All API calls go to https://jobcelis.com by default -- you only need your API key to get started.
Installation
Add to your Cargo.toml:
[]
= "1"
= { = "1", = ["full"] }
= "1"
Quick Start
use JobcelisClient;
use json;
async
Custom URL: If you're self-hosting Jobcelis, you can override the base URL:
let client = with_base_url;
Authentication
The auth methods do not require an API key. Use them to register, log in, and manage JWT tokens.
let client = new;
// Register a new account
let user = client.register.await?;
// Log in -- returns JWT access token and refresh token
let session = client.login.await?;
let access_token = session.as_str.unwrap;
let refresh_tok = session.as_str.unwrap;
// Set the JWT for subsequent authenticated calls
let mut client = client;
client.set_auth_token;
// Refresh an expired token
let new_session = client.refresh_token.await?;
client.set_auth_token;
// Verify MFA (requires auth token already set)
let result = client.verify_mfa.await?;
Events
// Send a single event
let event = client.send_event.await?;
// Send batch events (up to 1000)
let batch = client.send_events.await?;
// List events with pagination
let events = client.list_events.await?;
let cursor = events.as_str;
let next_page = client.list_events.await?;
// Get / delete a single event
let event = client.get_event.await?;
client.delete_event.await?;
Simulate
let result = client.simulate_event.await?;
Webhooks
// Create a webhook
let webhook = client.create_webhook.await?;
// List, get, update, delete
let webhooks = client.list_webhooks.await?;
let wh = client.get_webhook.await?;
client.update_webhook.await?;
client.delete_webhook.await?;
// Health and templates
let health = client.webhook_health.await?;
let templates = client.webhook_templates.await?;
Deliveries
let deliveries = client.list_deliveries.await?;
client.retry_delivery.await?;
Dead Letters
let dead_letters = client.list_dead_letters.await?;
let dl = client.get_dead_letter.await?;
client.retry_dead_letter.await?;
client.resolve_dead_letter.await?;
Replays
let replay = client.create_replay.await?;
let replays = client.list_replays.await?;
let r = client.get_replay.await?;
client.cancel_replay.await?;
Scheduled Jobs
// Create a job
let job = client.create_job.await?;
// CRUD
let jobs = client.list_jobs.await?;
let job = client.get_job.await?;
client.update_job.await?;
client.delete_job.await?;
// List runs for a job
let runs = client.list_job_runs.await?;
// Preview cron schedule
let preview = client.cron_preview.await?;
Pipelines
let pipeline = client.create_pipeline.await?;
let pipelines = client.list_pipelines.await?;
let p = client.get_pipeline.await?;
client.update_pipeline.await?;
client.delete_pipeline.await?;
// Test a pipeline with a sample payload
let result = client.test_pipeline.await?;
Event Schemas
let schema = client.create_event_schema.await?;
let schemas = client.list_event_schemas.await?;
let s = client.get_event_schema.await?;
client.update_event_schema.await?;
client.delete_event_schema.await?;
// Validate a payload against a topic's schema
let result = client.validate_payload.await?;
Sandbox
let endpoint = client.create_sandbox_endpoint.await?;
let endpoints = client.list_sandbox_endpoints.await?;
let requests = client.list_sandbox_requests.await?;
client.delete_sandbox_endpoint.await?;
Analytics
let events_chart = client.events_per_day.await?;
let deliveries_chart = client.deliveries_per_day.await?;
let topics = client.top_topics.await?;
let stats = client.webhook_stats.await?;
Project and Token Management
let project = client.get_project.await?;
client.update_project.await?;
let topics = client.list_topics.await?;
let token = client.get_token.await?;
let new_token = client.regenerate_token.await?;
Multi-Project Management
let projects = client.list_projects.await?;
let new_project = client.create_project.await?;
let p = client.get_project_by_id.await?;
client.update_project_by_id.await?;
client.set_default_project.await?;
client.delete_project.await?;
Team Members
let members = client.list_members.await?;
let member = client.add_member.await?;
client.update_member.await?;
client.remove_member.await?;
Invitations
let invitations = client.list_pending_invitations.await?;
client.accept_invitation.await?;
client.reject_invitation.await?;
Audit Logs
let logs = client.list_audit_logs.await?;
Data Export
let csv_data = client.export_events.await?;
write.unwrap;
let json_data = client.export_deliveries.await?;
client.export_jobs.await?;
client.export_audit_log.await?;
GDPR / Privacy
let consents = client.get_consents.await?;
client.accept_consent.await?;
let my_data = client.export_my_data.await?;
client.restrict_processing.await?;
client.lift_restriction.await?;
client.object_to_processing.await?;
client.restore_consent.await?;
Health Check
let health = client.health.await?;
let status = client.status.await?;
Error Handling
use ;
let client = new;
match client.get_event.await
Webhook Signature Verification
use verify_webhook_signature;
let body = r#"{"topic":"order.created"}"#;
let signature = "...";
if verify_webhook_signature else
License
BSL-1.1 (Business Source License)