HTTP
Overview
Section titled “Overview”messaging-http is an answer-owned messaging provider generated from build-answer.json. It is useful when a system talks to a digital worker through plain HTTP rather than a named chat platform.
It currently supports:
- Mapping inbound HTTP
POSTJSON requests into normalized provider events - Optional inbound bearer-token or API-key-header checks
- Capturing selected request headers and query parameters
- Building outbound
GETorPOSTHTTP request descriptions from message payloads - URL templating with payload values such as
{payload.case_id}
-
Add the provider pack
Select
messaging-httpwithgtc wizardor add the pack to the bundle from the messaging provider catalog. -
Configure routing and auth
Use the setup answers generated for your installed pack. Typical config includes route/public URL information, optional auth, captured headers, and outbound request settings.
-
Run setup
Terminal window gtc setup ./my-bundle -
Start the runtime
Terminal window gtc start ./my-bundle
Inbound Mapping
Section titled “Inbound Mapping”Inbound HTTP expects a POST request with a JSON object body. The provider maps it to an event shaped like:
{ "provider": "messaging-http", "direction": "inbound", "kind": "http.webhook", "idempotency_key": "req-1", "source": { "method": "POST", "path": "/webhooks/acme", "headers": { "x-request-id": "req-1" }, "query": { "source": "test" } }, "payload": { "case_id": "C123", "event": "case.created" }}The idempotency key is taken from Idempotency-Key, X-Request-Id, payload.idempotency_key, or payload.id when present.
Outbound Mapping
Section titled “Outbound Mapping”Outbound messages are converted into HTTP request descriptions. For example, with config:
{ "method": "POST", "url": "https://example.test/cases/{payload.case_id}", "headers": { "content-type": "application/json" }, "timeout_ms": 5000}A message payload of { "case_id": "C123", "status": "open" } produces:
{ "method": "POST", "url": "https://example.test/cases/C123", "headers": { "content-type": "application/json" }, "body": "{\"case_id\":\"C123\",\"status\":\"open\"}", "timeout_ms": 5000}Network Access
Section titled “Network Access”| Direction | Protocol and port | Purpose |
|---|---|---|
| Incoming | HTTPS 443 to Greentic | External systems posting webhook-style JSON requests |
| Incoming, local development | HTTP on the local runtime/tester port | Local testing before TLS/tunnel termination |
| Outgoing | HTTP or HTTPS to configured endpoints | Provider-built outbound requests |
Testing
Section titled “Testing”Use the local tester:
./scripts/test_http.shThe tester page has separate buttons for inbound mapping and outbound request generation, and shows a clear pass/fail status.