v1.4.0
What's Changed
- fix(discord): align OAuth actions with current API by @hyrious in #287
- fix(oauth): render clientConfigFields in the web console by @hirocaster in #288
- feat(provider): add Microsoft To Do by @hirocaster in #290
- feat: support connection-scoped OAuth apps by @hyrious in #291
- fix(gmail): remove the admin-only scope from user OAuth by @lumpinif in #293
- feat(oauth): let clients request a scope subset by @lumpinif in #294
- fix(oauth): require a non-empty requested scope subset by @BlackHole1 in #295
- feat(grafana): register proxy executor for the Grafana HTTP API by @luckydududu in #292
- refactor(providers): remove the global proxy registry by @hyrious in #297
- fix(figma): request only public OAuth app scopes and enable PKCE by @lumpinif in #296
- fix(oauth): keep stored scope subsets readable after scope removals by @BlackHole1 in #298
- feat(googlechat): add Google Chat provider by @TK88101 in #299
- feat(resend): add email lifecycle actions by @uuzzrm in #300
- feat(totp): add local authenticator provider by @leavesster in #301
- feat(esa): add esa provider by @suin in #303
- feat(xero): add Xero accounting provider by @chenmin911130-cyber in #305
- feat(airtable): add OAuth authentication by @elliothux in #307
- fix: request only necessary Google OAuth scopes by @lumpinif in #310
- feat(asana): add OAuth authentication by @elliothux in #308
- feat(confluence): add OAuth authentication by @elliothux in #309
- feat(miro): add OAuth provider by @elliothux in #311
- fix(todoist): update OAuth scopes by @elliothux in #313
- feat(gitlab): add OAuth authentication by @elliothux in #314
- feat(webflow): add OAuth authentication by @elliothux in #315
- feat(attio): add OAuth authentication by @elliothux in #316
- feat(wordpress): add OAuth support by @elliothux in #317
- feat(mymind): add mymind provider by @vanessa in #312
- feat(mailchimp): add OAuth authentication by @elliothux in #320
- feat(shopify): add OAuth authentication by @elliothux in #321
- feat(dropbox-sign): add OAuth authentication by @elliothux in #323
- feat(heygen): add OAuth authentication by @elliothux in #324
- feat(okta): add OAuth authentication by @elliothux in #325
- feat(bamboohr): add OAuth authentication by @elliothux in #326
- feat(datadog): add OAuth authentication by @elliothux in #322
- fix(run-log): keep summaries intact when a URL-like value cannot be parsed by @uuzzrm in #332
- fix(run-log): redact credentials in malformed URLs by @l1shen in #337
- feat(googlemeet): add OAuth provider by @elliothux in #327
- feat(alpaca): add OAuth authentication by @elliothux in #335
- fix(run-log): redact credentials in non-http and protocol-relative URLs by @uuzzrm in #342
- feat(canva-cn): add OAuth provider by @elliothux in #341
- fix(zoom): use user-managed OAuth scopes by @elliothux in #340
- fix(calendly): update OAuth configuration by @elliothux in #339
- feat(coinbase): add OAuth authentication by @elliothux in #334
- feat(cloudflare): let Browser Run connect with OAuth by @lumpinif in #329
- feat(mcp): support 2026-07-28 protocol by @hyrious in #343
- feat(providers): add OrcaRouter by @Marc-oss-hub in #336
- feat(storage): support S3 transit files by @l1shen in #345
- feat: mqtt by @hyrious in #346
- feat(googledrive): support files.get media downloads by @elliothux in #347
- feat(baidu-netdisk): add transit file download by @elliothux in #348
- feat(dropbox): return transit files for downloads by @elliothux in #351
- feat(one-drive): return transit files for downloads by @elliothux in #352
- feat(cloudflare-r2): add transit object download by @elliothux in #349
- feat(supabase): add transit storage download by @elliothux in #350
- feat(gitlab): add project issue and merge request actions by @LancerLee428 in #354
- feat(twilio): add voice call actions by @Terminator666666 in #355
- feat(vonage): add SMS report actions by @Terminator666666 in #356
- feat(vercel): add delete_webhook action by @Frankie-Xu in #360
- feat(googlecalendar): add sendUpdates to event write actions by @Frankie-Xu in #361
- feat(vercel): add optional teamId and slug request scope by @Frankie-Xu in #364
- feat(googlecalendar): add add_attendee without wiping existing guests by @Frankie-Xu in #362
- fix(vercel): apply the connection team scope to get_team by @BlackHole1 in #367
- feat(providers): enforce generated action handler contracts by @l1shen in #374
- feat: allow scoping runtime tokens to specific connections by @Frankie-Xu in #363
- fix(outlook): accept Graph's parenthesized folder-scoped nextLink by @gracexmatin in #372
- fix(oauth): validate credentials with identity endpoints, not resource lists by @Frankie-Xu in #368
- fix(ssrf): harden shared provider egress and pin proxy to provider origin by @Frankie-Xu in #369
- feat(storage): add download_object transit actions for aliyun_oss and aws_s3 by @Frankie-Xu in #371
- feat(runtime): align unknown_action errors with OpenAPI and runtime docs by @Frankie-Xu in #373
- feat(storage): add PostgreSQL runtime support by @l1shen in #377
- chore: v1.4.0 by @l1shen in #378
New Contributors
- @hirocaster made their first contribution in #288
- @luckydududu made their first contribution in #292
- @TK88101 made their first contribution in #299
- @uuzzrm made their first contribution in #300
- @leavesster made their first contribution in #301
- @chenmin911130-cyber made their first contribution in #305
- @elliothux made their first contribution in #307
- @vanessa made their first contribution in #312
- @Marc-oss-hub made their first contribution in #336
- @LancerLee428 made their first contribution in #354
- @Terminator666666 made their first contribution in #355
- @Frankie-Xu made their first contribution in #360
- @gracexmatin made their first contribution in #372
Full Changelog: v1.3.5...v1.4.0