Skip to content

[comp] Production Deploy#2459

Merged
Marfuen merged 2 commits intoreleasefrom
main
Apr 3, 2026
Merged

[comp] Production Deploy#2459
Marfuen merged 2 commits intoreleasefrom
main

Conversation

@github-actions
Copy link
Copy Markdown
Contributor

@github-actions github-actions bot commented Apr 3, 2026

This is an automated pull request to release the candidate branch into production, which will trigger a deployment.
It was created by the [Production PR] action.

chore(integration): add support for encrypted client credentials
@cursor
Copy link
Copy Markdown

cursor bot commented Apr 3, 2026

PR Summary

Medium Risk
Exposes encrypted OAuth credential fields via the admin integrations API and adds client-side decryption/display of client secrets, which is sensitive and could increase blast radius if UI/env configuration is misused. Also updates the OpenAPI schema to require a new deactivated member flag, which may affect API consumers expecting the previous contract.

Overview
Admin integrations listing now returns encryptedClientId/encryptedClientSecret alongside existing credential metadata.

The admin integrations page decrypts these fields client-side (when available) and shows a new in-card credentials summary with a toggle to reveal/hide the secret.

OpenAPI schema is updated to add a required deactivated boolean on the member model.

Written by Cursor Bugbot for commit f38dd50. This will update automatically on new commits. Configure here.

@vercel
Copy link
Copy Markdown

vercel bot commented Apr 3, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
comp-framework-editor Ready Ready Preview, Comment Apr 3, 2026 6:34pm
2 Skipped Deployments
Project Deployment Actions Updated (UTC)
app (staging) Skipped Skipped Apr 3, 2026 6:34pm
portal (staging) Skipped Skipped Apr 3, 2026 6:34pm

Request Review

@vercel vercel bot temporarily deployed to staging – app April 3, 2026 18:34 Inactive
@vercel vercel bot temporarily deployed to staging – portal April 3, 2026 18:34 Inactive
@Marfuen Marfuen merged commit 1549cd8 into release Apr 3, 2026
11 of 12 checks passed
Copy link
Copy Markdown

@cursor cursor bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes and found 1 potential issue.

Fix All in Cursor

Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

clientIdHint: credential?.clientIdHint,
clientSecretHint: credential?.clientSecretHint,
encryptedClientId: credential?.encryptedClientId,
encryptedClientSecret: credential?.encryptedClientSecret,
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

API exposes encrypted credentials enabling full plaintext retrieval

High Severity

The listIntegrations endpoint now returns encryptedClientId and encryptedClientSecret to the browser. These are then decrypted via a 'use server' action and the full plaintext OAuth client secrets end up in browser memory, SWR cache, and the DOM. This contradicts the existing security design — the sibling getIntegration endpoint on line 114 explicitly says // don't expose actual credentials. Previously only masked clientIdHint/clientSecretHint values were sent. The full secrets are now accessible to any XSS vector, browser extension, or session-hijack targeting an admin user.

Additional Locations (2)
Fix in Cursor Fix in Web

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant