feat: configure inbound SMS webhooks - #6
Merged
Conversation
Contributor
OpenTofu TestOpenTofu test passed. View run output |
Contributor
OpenTofu PlanOpenTofu plan passed. View run outputOpenTofu will perform the following actions:
# twilio_phone_number.agent["grillmaster"] will be updated in-place
~ resource "twilio_phone_number" "agent" {
id = "PN3db453e0dbbe18e024b609fcbab090a4"
# (13 unchanged attributes hidden)
~ messaging {
+ url = "https://sms.makeitwork.cloud/twilio/inbound"
# (2 unchanged attributes hidden)
}
# (2 unchanged blocks hidden)
}
# twilio_phone_number.agent["homerepair"] will be updated in-place
~ resource "twilio_phone_number" "agent" {
id = "PN08b9385d6eb49a52e593f47d568bdc42"
# (13 unchanged attributes hidden)
~ messaging {
+ url = "https://sms.makeitwork.cloud/twilio/inbound"
# (2 unchanged attributes hidden)
}
# (2 unchanged blocks hidden)
}
# twilio_phone_number.agent["homesteader"] will be updated in-place
~ resource "twilio_phone_number" "agent" {
id = "PN04710b0ff991f860a1f2685c69f62d38"
# (13 unchanged attributes hidden)
~ messaging {
+ url = "https://sms.makeitwork.cloud/twilio/inbound"
# (2 unchanged attributes hidden)
}
# (2 unchanged blocks hidden)
}
# twilio_phone_number.agent["lawnmowerman"] will be updated in-place
~ resource "twilio_phone_number" "agent" {
id = "PNd36f82c80264daef191509d3506acb2c"
# (13 unchanged attributes hidden)
~ messaging {
+ url = "https://sms.makeitwork.cloud/twilio/inbound"
# (2 unchanged attributes hidden)
}
# (2 unchanged blocks hidden)
}
Plan: 0 to add, 4 to change, 0 to destroy.
─────────────────────────────────────────────────────────────────────────────
Note: You didn't use the -out option to save this plan, so OpenTofu can't
guarantee to take exactly these actions if you run "tofu apply" now. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Configures the existing four
twilio_phone_number.agentresources to send incoming messages withPOSTto the healthy bridge endpoint:https://sms.makeitwork.cloud/twilio/inbound.The shared endpoint is intentional: the cluster-owned bridge determines the target primary agent from the Twilio destination number. This root continues to own only Twilio phone-number inventory and per-number webhook fields.
Fixes #
None — owner-authorized Twilio integration completion.
Type of change
Validation
opentofu / testandopentofu / plansucceeded.Synced/Healthy, its two-container Pod ready with zero restarts, the TunnelBinding present, andGET https://sms.makeitwork.cloud/healthzreturning{"status":"ok"}.No local OpenTofu, SOPS, state, plan, or apply operation was run or claimed. The provider reference was verified against the current
RJPearson94/twilio0.27.1resource documentation:messaging.urlandmessaging.methodare supported, andPOSTis valid.Impact and rollout
Producer / consumer:
kustomize-clusterowns the healthy bridge, route, sender allowlist, number-to-agent mapping, and runtime secrets.tfroot-twiliochanges only themessagingfields of the four existing Twilio number resources. The bridge image, chart, GitOps desired state, SOPS credential ciphertext, and Cloudflare ownership remain unchanged.Confirmed apply scope: the environment-gated
mainapply will update only the inbound messaging URL/method on the four existing phone numbers. It will not purchase, replace, or release a number, nor change credentials, state-backend, or bridge-runtime configuration.Confirmation-gated live stage: merging invokes the environment-gated
mainapply, which updates the live Twilio number webhooks. After a successful apply, verify the provider-reported change and then send a representative allowed-source SMS/MMS through the intended number. That functional test must confirm signature validation, queueing, primary-agent routing, and outbound delivery separately.Rollback: use a reviewed change to remove or replace the messaging block; never alter the numbers, route, or bridge runtime manually in a console. Do not merge if the plan contains a number replacement or any scope beyond the four expected webhook updates.
Safety and secrets
GitHub Advanced Security secret scanning is unavailable for this repository. The three-file diff was manually reviewed; it contains only non-sensitive endpoint configuration and ownership documentation.
AI-assisted change: an OpenCode agent materially produced this change; reviewers should confirm the exact four-resource plan and the canonical ownership boundary before merging.