API Reference DripDrop v#0.1.0

Copy Markdown View Source

Modules

Public entry point for DripDrop.

Health-state transitions and ramp-cap math for outbound adapters.

Tenant-scoped sender pool used by outbound sequence versions.

Membership row connecting an adapter pool to a channel adapter.

Context for authoring outbound adapter pools and memberships.

Smooth weighted round-robin allocator for outbound adapter pools.

Per-adapter, per-sequence outbound send-share budget.

Context for managing outbound adapter sequence budgets.

OTP application supervisor for DripDrop runtime services.

Local Nebulex cache used for short-lived dispatch and provider state.

Uniform contract implemented by DripDrop channel providers.

Configures one provider implementation for a DripDrop channel.

Context for creating, updating, and selecting channel adapters.

Registry and lookup helpers for built-in and host-registered channel providers.

Email channel namespace and provider registration surface.

Gmail API email provider.

Local development email provider backed by Swoosh.Adapters.Local.

Builds simple RFC 5322 messages for direct email APIs.

MailerSend email provider backed by Swoosh.

Marker module for MailerSend webhook route dispatch.

Mailgun email provider backed by Swoosh.

Marker module for Mailgun webhook route dispatch.

Microsoft 365 email provider backed by Microsoft Graph.

Retrieves and caches host-owned OAuth access tokens for email providers.

Postmark email provider backed by Swoosh.

Marker module for Postmark webhook route dispatch.

Amazon SES email provider backed by Swoosh.

Marker module for Amazon SES SNS webhook route dispatch.

SMTP email provider backed by Swoosh.

SendGrid email provider backed by Swoosh.

Marker module for SendGrid Event Webhook route dispatch.

Shared Swoosh delivery helper for built-in email providers.

Shared helpers for provider implementations.

Extracts rendered provider payload data from steps.

Convenience macro and validation helpers for provider modules.

Phoenix PubSub channel namespace and provider registration surface.

Phoenix PubSub channel provider for in-app dispatch fan-out.

SMS channel namespace and provider registration surface.

Amazon SNS SMS provider.

Local development SMS provider.

Twilio SMS provider.

Marker module for Twilio messaging status webhook route dispatch.

Slack channel namespace and provider registration surface.

Slack incoming-webhook channel provider.

Telegram channel namespace and provider registration surface.

Telegram Bot API channel provider for sending chat messages.

Generic webhook channel namespace and provider registration surface.

Generic signed HTTP webhook channel provider.

Signature signing and verification per the Standard Webhooks spec.

Builds Standard Webhooks request payloads and signature headers.

WhatsApp channel namespace and provider registration surface.

WhatsApp Cloud API channel provider for sending templated or text messages.

Centralized UTC clock helpers.

Per-adapter Postgres transaction-scoped advisory lock for outbound dispatch.

Runtime condition attached to a step or branch transition.

Predicate parsing and evaluation for condition rules.

Small configuration helpers used across DripDrop.

Small helpers for crossing raw SQL and Ecto schema boundaries.

Dispatch administration helpers.

Limits in-flight dispatches by channel and adapter.

Builds deterministic idempotency keys for step execution scheduling.

Creates and enqueues step execution rows for enrollments.

Cloak Ecto type for maps encrypted with DripDrop.Vault.

A subscriber's lifecycle through a sequence.

Enrollment lifecycle context.

Host or subscriber event used to trigger event-timed sequence steps.

Shared helpers for data shaping, module resolution, and small parsing tasks.

Behaviour for host-defined Elixir hooks invoked during dispatch.

Evaluates Elixir module hooks and HTTP hooks with bounded runtime.

Validates outbound HTTP hook URLs to mitigate SSRF.

Stores an HTTP hook that sequence conditions can call during dispatch.

Context for HTTP hooks.

Host-callable inbound email ingestion.

Normalizes verified provider webhooks into DripDrop message events.

Shared message-event correlation queries.

Seeds due cron-driven steps on each scheduler tick.

Executes one scheduled step through policy, rendering, delivery, and transition handling.

A normalized provider event emitted after delivery or inbound webhook ingest.

Versioned DripDrop schema migrations for host applications.

Initial DripDrop schema migration registered with EctoEvolver.

Shared helpers for DripDrop Mix tasks.

Default reply handler for inbound provider events.

Outbound-only dispatch gate for adapter health state.

Defers dispatch when a channel adapter has been paused by the bounce/complaint threshold checker.

Periodically pauses adapters whose rolling bounce or complaint rates cross policy limits.

First dispatch policy check.

Outbound-only minimum gap enforcement between sends from one adapter.

Defers dispatch outside recipient-local sending hours.

Outbound-only daily cap enforcement using adapter ramp state.

Defers dispatch when configured sending-rate buckets are exhausted.

Behaviour for rate-limit backends used by the messaging policy gate.

Postgres-backed rate-limit backend using advisory transaction locks.

Applies optional per-step and per-adapter sending controls.

Outbound-only per-sequence share cap for a pinned adapter.

Adds RFC 8058 one-click unsubscribe headers when a step opts in.

Normalizes channel recipient identifiers for matching and policy checks.

Redacts secrets from values before they are persisted to audit snapshots.

Thin delegating wrapper around the host-configured DripDrop repo.

Behaviour for scheduling DripDrop step executions.

Scheduler adapter for host applications that use Oban.

Scheduler adapter backed by PgFlow.

In-memory scheduler adapter used by the DripDrop test suite.

Sequence definition shared by one or more immutable versions.

Public authoring API for sequences, versions, steps, transitions, and conditions.

Immutable authoring version for a sequence.

Persisted audit row for a URL rewritten through the short-link pipeline.

Context for persisted short-link records.

Behaviour implemented by short-link providers.

Resolves effective short-link configuration.

Short-link adapter for in-process GoodAnalytics integration.

Delegates short-link creation to a host-provided Elixir module.

Short-link adapter that leaves destination URLs unchanged.

Rewrites payload URLs through the configured short-link provider.

Provider-neutral request for creating a short link.

Provider-neutral result from creating a short link.

Short-link adapter that calls a host-owned HTTP endpoint.

Validates host configuration before DripDrop starts dispatching messages.

A sequence step with channel, timing, and template configuration.

A scheduled or completed attempt to run one step for one enrollment.

Explicit edge between steps, or from sequence entry / to completion.

A normalized do-not-send record for a channel recipient.

Normalize, create, and query channel suppressions.

Telemetry event catalogue for DripDrop.

Public template helpers.

Renders templates and validates channel payload shapes.

Deterministic spintax rendering for optional template variation.

Channel-specific rendered payload validators.

Builds the template variable scope used during dispatch.

Helpers for enforcing explicit tenant scope on query APIs.

Outbound email threading header generation.

Embedded timing configuration for sequence steps.

Signs and verifies one-click unsubscribe tokens.

Cloak vault used for encrypted DripDrop credential fields.

Webhook route helpers for host applications.

Router macro for mounting DripDrop provider webhooks.

Handles RFC 8058 one-click unsubscribe URLs generated by DripDrop.

Framework-neutral Plug for provider webhook ingestion.

Normalizes provider webhook request access for signature verification.

Mix Tasks

Verifies that the configured database has the current DripDrop schema version.

Generates a host migration that applies pending DripDrop schema upgrades.

Generates a wrapper migration in the host app that calls DripDrop.Migration.

Prints the SQL needed to remove DripDrop database objects.