Skip to content

[comp] Production Deploy#2070

Merged
tofikwest merged 6 commits intoreleasefrom
main
Jan 30, 2026
Merged

[comp] Production Deploy#2070
tofikwest merged 6 commits intoreleasefrom
main

Conversation

@github-actions
Copy link
Contributor

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.

* feat(api): add support for multiple connections in AWS integration

* fix(api): improve error handling and connection activation logic

* feat(cloud-tests): conditionally show "Add connection" button for providers

* fix(api): enhance AWS credentials validation and improve connection handling

* fix(integrations): improve success message for AWS connection

* fix(integrations): prevent re-initialization of connection view on open

* fix(api): merge existing credentials for AWS connection validation

---------

Co-authored-by: Tofik Hasanov <annexcies@gmail.com>
@vercel
Copy link

vercel bot commented Jan 29, 2026

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

Project Deployment Actions Updated (UTC)
app (staging) Ready Ready Preview, Comment Jan 30, 2026 2:42pm
1 Skipped Deployment
Project Deployment Actions Updated (UTC)
portal (staging) Skipped Skipped Jan 30, 2026 2:42pm

Request Review

@cursor
Copy link

cursor bot commented Jan 29, 2026

PR Summary

Medium Risk
Medium risk: changes connection creation/testing flows (including AWS STS/SecurityHub validation), adds a new daily Trigger.dev orchestrator, and introduces new bulk-delete and vendor-risk assessment behaviors that write to core tables.

Overview
Multi-connection cloud integrations (AWS-first). Providers now expose supportsMultipleConnections, and ConnectionService only enforces “one connection per org” when that flag is false. Connections can store/display metadata (connection name, regions, role/account info), and there’s a new PATCH /v1/integrations/connections/:id to update metadata.

AWS connection hardening + multi-region scanning. AWS connections are now validated before creation and before credential updates by assuming roles via SECURITY_HUB_ROLE_ASSUMER_ARN and verifying Security Hub is enabled in all selected regions; successful creates are immediately activated. AWS security scans now accept multiple regions, assume role once, scan each region, and tag findings with region in title/evidence for UI filtering.

New scheduled cloud security scans. Adds Trigger.dev tasks cloud-security-schedule (daily orchestrator) and run-cloud-security-scan (per-connection worker) to run scans for active connections whose manifest enables multi-connection support.

Task + vendor workflow updates. Adds DELETE /v1/tasks/bulk and a UI bulk-delete modal (API client delete now supports request bodies). Vendor risk assessment now supports internal single-vendor triggering with run tracking, UI realtime/skeleton progress, website editing, and AI-based normalization of assessment riskLevel into persisted inherent/residual probability/impact enums.

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

@CLAassistant
Copy link

CLA assistant check
Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.
You have signed the CLA already but the status is still pending? Let us recheck it.

* feat(cloud-security): add daily scheduled task for cloud security scans

* feat(cloud-security): enhance AWS region scanning with improved credential handling

* refactor(cloud-security): improve error handling and logging in scan task

* refactor(cloud-security): simplify primary region assignment in AWS service

---------

Co-authored-by: Tofik Hasanov <annexcies@gmail.com>
* fix(app): remove device hosts when removing a member

* fix(app): remove device hosts before deactivating the member

* fix(app): remove devices from fleet before assignment clearing and member deactivation

* fix(app): add null check on hosts array before mapping

---------

Co-authored-by: chasprowebdev <chasgarciaprowebdev@gmail.com>
Co-authored-by: Mariano Fuentes <marfuen98@gmail.com>
Co-authored-by: chasprowebdev <70908289+chasprowebdev@users.noreply.github.com>
return fleet.delete(`/hosts/${hostId}`);
}));
}
}
Copy link

Choose a reason for hiding this comment

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

FleetDM failure blocks member removal operation

Medium Severity

The new FleetDM integration code runs without error handling before the database cleanup operations. If getFleetInstance() fails (e.g., missing FLEET_URL/FLEET_TOKEN environment variables) or any of the FleetDM API calls fail (network issues, service unavailable, invalid label ID), the entire member removal operation fails. This prevents removing members from the organization when FleetDM is misconfigured or unavailable, even though FleetDM cleanup is not essential to the core operation of deactivating a member.

Fix in Cursor Fix in Web

* feat(vendor): implement risk assessment triggering and update schemas

* feat(vendor): handle failure states in risk assessment run

* feat(tasks): add bulk delete endpoint for tasks and corresponding UI

* feat(vendor): implement AI-based normalization for risk levels

---------

Co-authored-by: Tofik Hasanov <annexcies@gmail.com>
return Impact.moderate;
}
}

Copy link

Choose a reason for hiding this comment

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

Duplicated normalizeWebsite and extractDomain utility functions

Low Severity

The normalizeWebsite and extractDomain functions are duplicated in three locations: apps/app/src/utils/normalize-website.ts (the shared utility), apps/api/src/vendors/vendors.service.ts, and apps/api/src/trigger/vendor/vendor-risk-assessment-task.ts. The implementations are identical. The API-side code could either import from a shared package or create a single utility file in the API package rather than duplicating these functions.

Additional Locations (1)

Fix in Cursor Fix in Web

Co-authored-by: Tofik Hasanov <annexcies@gmail.com>
Copy link

@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.

Bugbot Autofix is OFF. To automatically fix reported issues with Cloud Agents, enable Autofix in the Cursor dashboard.

await this.connectionService.activateConnection(id);
this.logger.log(
`Activated connection ${id} after credential update (was in error state)`,
);
Copy link

Choose a reason for hiding this comment

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

Paused connections incorrectly activated on credential update

Medium Severity

The comment states "Only activate the connection if it was in error state (don't resume paused connections)" but this behavior isn't achieved. The storeApiKeyCredentials method (called at line 1052) unconditionally sets the connection status to 'active' internally before the status check at line 1058 can execute. This means paused connections will be unexpectedly resumed when a user updates credentials like regions, contrary to the documented intent.

Fix in Cursor Fix in Web

* fix(docs): remove redundant setup steps from Aikido integration guide

* style(trust): update text color for domain alert message

---------

Co-authored-by: Tofik Hasanov <annexcies@gmail.com>
@claudfuen
Copy link
Contributor

🎉 This PR is included in version 1.80.0 🎉

The release is available on GitHub release

Your semantic-release bot 📦🚀

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.

3 participants