Repository navigation
feat(trello): add Trello API module - #174
Open
seanspeaks wants to merge 2 commits into
Open
seanspeaks wants to merge 2 commits into
seanspeaks wants to merge 2 commits into
Conversation
Add @friggframework/api-module-trello as a v1-ready Frigg module covering member identity, boards/lists/cards CRUD, organizations, labels, and webhook subscription management against the official Trello REST API. Includes curated OpenAPI, capability manifest, Power-Ups Fenestra draft, and a HubSpot-style Tier-3 webhook extension. Co-authored-by: Sean Matthews <sean.matthews@lefthook.co>
Reconcile the curated contract against Atlassian's official Trello OpenAPI: security schemes (query key+token), webhook create/update as query params, createLabel required fields, and response schemas. Client auth and tests updated to match. Co-authored-by: Sean Matthews <sean.matthews@lefthook.co>
seanspeaks
marked this pull request as ready for review
October 22, 2026 00:36
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
Adds
@friggframework/api-module-trelloatpackages/v1-ready/trello/— a Frigg v2 API module for Trello’s REST API (members, boards, lists, cards, organizations/workspaces, labels, webhooks).No prior Trello package existed under
packages/(includingneeds-updating); this is a greenfield module shaped likepackages/v1-ready/fathom/, with webhook extensions followingpackages/v1-ready/hubspot/extensions/webhooks/(and Front’s sibling pattern).What the API is & sources
Trello (Atlassian) project boards. Official docs only:
Curated contract:
trello.openapi.yaml— subset of the official swagger (same server URL, security schemes, paths/methods/params/schemas for the scoped ops; camelCaseoperationIds for the Api client).Spec recheck (follow-up)
Diffed every curated operation against
swagger.v3.jsonand fixed conflicts:ApiKeyAndTokenheaderAuthorizationAPIKey(keyquery) +APIToken(tokenquery); globalsecurity: [{APIKey:[], APIToken:[]}]key+tokenquery params to match OpenAPI schemesPOST/PUT /webhooks,POST /tokens/{token}/webhooksrequestBodyJSONcallbackURL,idModel, …)POST /labelsidBoardrequiredname,color,idBoarddescOrganizationonlyfirstConsecutiveFailDateWebhookTrelloListpropertiesColorenumdue/startformatsdate-timedateUnchanged scope: still the same 24 operations (identity, boards/lists/cards CRUD, orgs, labels, webhooks). Optional query params now mirror the vendor lists for those ops; no new endpoints.
Auth method
API key + user token (Trello Auth / Power-Up key), matching official OpenAPI
APIKey+APIToken.https://trello.com/1/authorize?expiration=never&scope=read,write,account&response_type=token&key=…?key=&token=on every requestsetAuthParams+getAuthorizationRequirements(apiKey form); identity fromGET /members/meTRELLO_API_KEY,TRELLO_TOKEN,TRELLO_API_SECRET(webhook HMAC)No partner approval required for classic key+token REST access. The full vendor swagger marks many operations with operation-level
OAuth2security (overriding global key+token); the Authorization and Webhooks guides still document classic key+token for these routes — we keep key+token and declare global OpenAPI security as the vendor document’s global schemes.Endpoints covered
getMemberGET /members/{id}listBoardsGET /members/{id}/boardsgetBoard/createBoard/updateBoardlistLists/getList/createList/updateListlistCards/listListCards/getCard/createCard/updateCardlistOrganizations/getOrganizationlistLabels/createLabelcreateWebhook/getWebhook/updateWebhook/deleteWebhook/webhookslistTokenWebhooks/createTokenWebhook/tokens/{token}/webhooksverifyWebhookSignatureX-Trello-Webhook)Endpoints skipped (intentionally)
The official OpenAPI has ~261 operations. Skipped for this core integration surface:
trello.openapi.yamlcomponents for reference (OAuth2), but the Definition/Api use classic key+tokenCapability manifest & Fenestra
trello.capabilities.json—capability-manifest/v0.1; fields aligned to official schemas (org without inventeddesc; webhookfirstConsecutiveFailDate;label.createrequires name+color+idBoard).trello.fenestra.yaml— draft Power-Ups UI ecosystem; fenestra validate ✓.extensions/webhooks/— Tier-3 DB-free receiver; prefer?memberId=<externalId>oncallbackURL.Commands run & output
npm test(module)Artifact: npm test output
frigg validate --module(via frigg PR #702 validators.) Artifact: frigg validate output
frigg auth test .Pending credentials — no sandbox API key/token available; not faked.
Fenestra validate
Artifact: fenestra validate output
Open questions
Prefer Atlassian OAuth 2.0 (3LO) over classic key+token?Partially answered by spec: vendor OpenAPI global security isAPIKey+APIToken; many ops also list operation-levelOAuth2with scopes (read:board:trello, etc.). Classic key+token remains correct for this module; OAuth2 wiring is a product choice for a follow-up, not a swagger conflict for key+token clients.?memberId=oncallbackURL. Is that the preferred Frigg convention?lefthookhq/lefthook-botsdefinitions/manifests/was not accessible (404); no draft manifest available.Credit
packages/v1-ready/fathom/packages/v1-ready/hubspot/extensions/webhooks/(+ Front sibling)To show artifacts inline, enable in settings.