Overview
A client-mode connector for a curated work-management slice of the Asana REST API:
Default
BASE_ADDRESS is https://app.asana.com/api/1.0. Topics use devops/asana/<object>/<verb>.
Auth is Bearer personal access token or OAuth 2.0 access token (
Authorization: Bearer …). Prefer Hub secret ASANA_ACCESS_TOKEN (aliases ASANA_PAT, ASANA_TOKEN). Status remains blocked until an authenticated live smoke succeeds.Basic Syntax
Events
Auth
- Create a personal access token in Asana developer console, or obtain an OAuth 2.0 access token.
- Set connector
BASE_ADDRESStohttps://app.asana.com/api/1.0. - Pass
access_tokenon MQTT JSON payloads so the Bearer header resolves. For path params, also passuser_gid/task_gid/project_gid. - Store secrets in Hub /
GET SECRET "ASANA_ACCESS_TOKEN"(aliasesASANA_PAT,ASANA_TOKEN). Never commit real credentials. - Successful smoke:
GET /users/me→ HTTP 200 withdata.gid. Invalid tokens → HTTP 401.
Example payloads
getUser (smoke):Server / inbound companion
POST /webhooks is client-mode registration (MQTT → Asana). Asana then POSTs events to your target URL (handshake with X-Hook-Secret). Receiving those callbacks into MQTT requires a separate companion ENABLE_SERVER connector — not included in AsanaRestApi.lot.
Deploy notes
- Deploy
AsanaRestApi.lotonly (noADD METADATA). - Hub catalog metadata lives in
hub-metadata.lot(WITH STATUS "beta", icon, doclink). - Docs: https://docs.coreflux.org/latest/lot-language/routes/rest-api-apps/asana

