Metadata-Version: 2.5
Name: render-lab-tasks-twilio
Version: 0.1.0
Summary: twilio tasks for Render Workflows
Project-URL: Repository, https://github.com/render-lab/render-tasks-python
License-Expression: MIT
License-File: LICENSE
Requires-Python: >=3.12
Requires-Dist: httpx<0.29,>=0.28
Requires-Dist: render-lab-tasks-core<0.2,>=0.1.1
Requires-Dist: render-lab-triggers<0.2,>=0.1.0
Requires-Dist: render==1.0.1
Description-Content-Type: text/markdown

# render-lab-tasks-twilio

Ten Twilio messaging, Conversations, Verify and webhook tasks. Import `.tasks`
for wrapped tasks and raw injectable implementations. The package root is inert.

## Environment

`TWILIO_ACCOUNT_SID` and `TWILIO_AUTH_TOKEN` are read lazily for API calls.
`TWILIO_VERIFY_SERVICE_SID` and `TWILIO_CONVERSATIONS_SERVICE_SID` are optional defaults
for their respective service inputs. Webhook verification needs only the auth token.

## Behavior

Communications writes have zero durable retries. List tasks return one explicit page
and an opaque next-page token. Await delivery polls once per attempt and distinguishes
sent, delivered and read; inbound or failed messages fail explicitly. Scheduling
requires a messaging service. Cancellation reads back an already-canceled message.
Webhook validation covers form parameters and JSON body hashes with constant-time
signature checks, also exposed through the registration-free `webhook_validation` module.
No live SMS, verification, or conversation messages have been sent; testing gaps are
tracked in the repository backlog.

## Webhook adapter

`render_lab_tasks_twilio.webhooks.twilio_adapter(on_event, ...)` returns a
registration-free adapter for `render_lab_triggers`. The callback receives the
verified event and returns `{"task": "namespace.task", "args": [event]}` or `None`.
The signing credential `TWILIO_AUTH_TOKEN` is read inside verification unless
provided explicitly. Importing this module does not register tasks. Signature
checks use the raw body; live delivery remains in the testing backlog.

## Installation

```sh
pip install render-lab-tasks-twilio==0.1.0
```
