Overview
A client-mode connector for the Trello REST API that turns plant events into visible work. A typical flow opens a card on the maintenance board when an alarm fires, moves it from To do to In progress to Done as the work order progresses, adds comments with live readings, labels it by line, assigns a technician, attaches a dashboard link, ticks lockout checklist items and records asset or downtime values in custom fields. The same connector reads boards, lists and cards back into the broker for andon screens and shift reports, and registers Trello webhooks that post board changes to a Coreflux server connector. One connector carries 38 events (21 GET, 11 POST, 6 PUT; 17 writes, no DELETE). Topics usedevops/trello/<object>/<verb>; each response is published on <source topic>/response.
The template was checked against Trello’s OpenAPI definition and a local mock. Thirteen read events were called live, without credentials, against Trello’s public roadmap board, and every event was probed on
api.trello.com with a dummy key (each answers invalid key, while unknown paths answer 404). Writes have not run with a real key and token yet, so status stays blocked until an authenticated smoke passes.Setup
- Create a Power-Up in the Trello Power-Up admin portal and generate its API key.
- Generate a user token for that key (the Token link next to the key, or
https://trello.com/1/authorize?expiration=never&scope=read,write&response_type=token&key=<key>). The token acts as the user who approved it, so use a service account that is a member of the boards you automate. - Keep both in broker secrets (for example
TRELLO_API_KEYandTRELLO_TOKEN) and build the header value in a LoT action withGET SECRET. Never retain topics that carry it.
Authentication
Trello takes the key and token either askey and token query parameters or in an Authorization header. This connector uses the header so credentials never appear in URLs or logs. Pass the whole header value in authorization:
authorization.
Query parameters and bodies
Trello reads create and update fields from query parameters, so writes pass them URL-encoded inquery (for example idList=<listId>&name=Press%207%20overtemperature&pos=top). Reads use query for fields, filter and limits; leave it empty for defaults. Only CardCustomFieldSet takes a JSON body. Values are sent as given, so URL-encode them yourself.
Examples
Open a maintenance card when a press overheats (devops/trello/cards/create):
id and shortUrl.
Move it to In progress when a technician accepts the work order (devops/trello/cards/update):
devops/trello/cards/custom-fields/set):
devops/trello/lists/cards/list):
devops/trello/webhooks/create):
Events
Limits
Trello allows 300 requests per 10 seconds per API key and 100 requests per 10 seconds per token, and answers429 above that. Batch folds up to 10 GET calls into one request. Custom fields need the Custom Fields Power-Up on the board.
Not packaged
- All DELETE endpoints (boards, lists, cards, labels, checklists, attachments, webhooks) on purpose; archive with
closed=trueinstead. - File uploads to cards (multipart);
CardAttachmentAddUrlattaches links only. - Board membership and Workspace administration, enterprise endpoints, Power-Up plugin data, stickers, emoji, notifications and saved searches.
- The incoming webhook direction: Trello posts change events to a separate
ENABLE_SERVERREST_API connector, which must answer the creationHEADrequest and verifyX-Trello-Webhook.
Suggested branches
feat/rest-api-route-trello for the broker template and feat/docs-rest-api-trello for this page.
