Module: Coffrify

Defined in:
lib/coffrify.rb,
lib/coffrify/client.rb,
lib/coffrify/errors.rb,
lib/coffrify/version.rb,
lib/coffrify/webhook.rb,
lib/coffrify/event_catalog.rb

Defined Under Namespace

Modules: Webhook Classes: ApiError, ApiKeys, Audit, AuthError, Client, Error, NotFoundError, RateLimitError, Transfers, ValidationError, Webhooks

Constant Summary collapse

VERSION =
"0.2.0".freeze
EVENT_CATALOG =

Static event catalog mirroring the JS SDK / REST ‘GET /v1/webhooks/events`.

[
  # Transfer
  { type: "transfer.created",            family: "transfer",  stability: "stable" },
  { type: "transfer.downloaded",         family: "transfer",  stability: "stable" },
  { type: "transfer.expired",            family: "transfer",  stability: "stable" },
  { type: "transfer.deleted",            family: "transfer",  stability: "stable" },
  { type: "transfer.cloned",             family: "transfer",  stability: "stable" },
  { type: "transfer.scanned",            family: "transfer",  stability: "stable" },
  { type: "transfer.scan_clean",         family: "transfer",  stability: "stable", required_plan: "pro" },
  { type: "transfer.scan_infected",      family: "transfer",  stability: "stable", required_plan: "pro" },
  { type: "transfer.scan_quarantined",   family: "transfer",  stability: "stable", required_plan: "pro" },
  { type: "transfer.limit_reached",      family: "transfer",  stability: "stable" },
  { type: "transfer.password_failed",    family: "transfer",  stability: "stable" },
  { type: "transfer.geo_blocked",        family: "transfer",  stability: "stable", required_plan: "ultra" },
  { type: "transfer.preview_opened",     family: "transfer",  stability: "beta"   },
  { type: "transfer.email_sent",         family: "transfer",  stability: "stable" },
  { type: "transfer.e2e_created",        family: "transfer",  stability: "stable" },
  # Workspace
  { type: "workspace.created",           family: "workspace", stability: "stable" },
  { type: "workspace.plan_changed",      family: "workspace", stability: "stable" },
  { type: "workspace.payment_succeeded", family: "workspace", stability: "stable" },
  { type: "workspace.payment_failed",    family: "workspace", stability: "stable" },
  { type: "workspace.usage_limit_warning", family: "workspace", stability: "stable" },
  { type: "workspace.usage_limit_reached", family: "workspace", stability: "stable" },
  # Members
  { type: "member.invited",              family: "member",    stability: "stable" },
  { type: "member.accepted",             family: "member",    stability: "stable" },
  { type: "member.removed",              family: "member",    stability: "stable" },
  # API keys / tokens
  { type: "api_key.created",             family: "api_key",   stability: "stable" },
  { type: "api_key.revoked",             family: "api_key",   stability: "stable" },
  { type: "api_key.rotated",             family: "api_key",   stability: "stable" },
  { type: "api_key.expired",             family: "api_key",   stability: "stable" },
  { type: "api_key.suspicious_usage",    family: "api_key",   stability: "beta",  required_plan: "ultra" },
  { type: "api_token.created",           family: "api_token", stability: "stable" },
  { type: "api_token.used",              family: "api_token", stability: "beta"   },
  { type: "api_token.expired",           family: "api_token", stability: "stable" },
  # Webhook self
  { type: "webhook.delivery_failed_final", family: "webhook", stability: "stable" },
  { type: "webhook.endpoint_disabled",     family: "webhook", stability: "stable" },
  # SCIM/SAML
  { type: "scim.user_provisioned",       family: "scim",      stability: "stable", required_plan: "enterprise" },
  { type: "scim.user_deprovisioned",     family: "scim",      stability: "stable", required_plan: "enterprise" },
  { type: "saml.login_succeeded",        family: "saml",      stability: "stable", required_plan: "enterprise" },
  { type: "saml.login_failed",           family: "saml",      stability: "stable", required_plan: "enterprise" },
  # Audit/GDPR
  { type: "audit.exported",              family: "audit",     stability: "stable" },
  { type: "audit.policy_violated",       family: "audit",     stability: "beta",  required_plan: "ultra" },
  { type: "gdpr.deletion_requested",     family: "gdpr",      stability: "stable", required_plan: "pro" },
  { type: "gdpr.export_requested",       family: "gdpr",      stability: "stable", required_plan: "pro" },
  # System
  { type: "ping",                        family: "system",    stability: "stable" },
].freeze