Skip to content

feat(integrations): first-class AWS and Slack integrations with org-wide prowler scanning#286

Closed
LuD1161 wants to merge 5 commits intomainfrom
LuD1161/integrations-page
Closed

feat(integrations): first-class AWS and Slack integrations with org-wide prowler scanning#286
LuD1161 wants to merge 5 commits intomainfrom
LuD1161/integrations-page

Conversation

@LuD1161
Copy link
Contributor

@LuD1161 LuD1161 commented Feb 13, 2026

Summary

  • Add first-class AWS and Slack integration catalog with OAuth flow, connection management, and credential resolution
  • Redesign integrations UI with dedicated detail pages, setup instructions, and connection cards
  • Refactor prowler scanning with shared utilities, org-wide multi-account scanning support, and analytics output
  • Enhance Slack notifications with rich formatting and bot token validation
  • Add new worker components: AWS Assume Role, AWS Org Discovery, and Integration Credential Resolver
  • Fix TypeScript type safety across SDK, backend client, frontend schemas, and worker components

Changes

  • Backend: New AwsService, SlackService, SetupTokenService, IntegrationCatalog, expanded integrations controller/service/repository, DB migration for token fields
  • Frontend: New IntegrationDetailPage, redesigned IntegrationsManager, updated ParameterField (toggle support), IntegrationCallback improvements, expanded API client and Zustand store
  • Worker: New aws-assume-role, aws-org-discovery, integration-credential-resolver components; refactored prowler-scan with prowler-shared utilities; enhanced slack notifications; updated opensearch-indexer
  • SDK: Added toggle to ComponentParameterType, process/cloud/core to ComponentCategory
  • Docs: Integration setup guide, sample workflows (org discovery, prowler-to-analytics, prowler-slack-summary)

Test plan

  • Verify AWS integration OAuth flow and credential storage
  • Verify Slack integration OAuth flow and bot token validation
  • Test prowler single-account and org-wide scans
  • Test integration credential resolver in workflow context
  • Verify frontend integration detail pages render correctly
  • Run full test suite (674 tests passing)

…edesigned UI

Add comprehensive integrations module with AWS and Slack as first-class
providers, including a redesigned frontend, new backend services, worker
components, and sample CSPM workflows.

Backend:
- Expand integration_tokens schema with org-scoped fields, health tracking,
  credential types (api_key, iam_role, webhook, oauth), and display names
- Add @InternalOnly() guard for internal-only endpoints (X-Internal-Token)
- Add AwsService (STS AssumeRole, Organizations discovery) and SlackService
  (webhook messaging, OAuth token exchange)
- Add integration catalog with static provider definitions and setup instructions
- Add SetupTokenService and ExternalIdGenerator for secure onboarding flows
- Expand controller with catalog, org-connections, AWS/Slack creation,
  validation, credential resolution, and org-discovery endpoints
- Enforce @CurrentAuth() on all user-facing routes (D16)
- Add assertConnectionOwnership for org-bound authorization (D18)

Frontend:
- Redesign IntegrationsManager as provider card grid with connection counts
- Add IntegrationDetailPage with setup instructions, connection table,
  and provider-specific forms (AWS access key/IAM role, Slack webhook/OAuth)
- Update integrationStore with org-scoped connections, merge-and-dedup (D17),
  catalog fetching, and provider-specific create/validate/test actions
- Update API service with direct fetch calls for new endpoints
- Update ParameterField to use merged connections for workflow selectors

Worker:
- Add integration-credential-resolver component (resolves creds via internal API)
- Add aws-org-discovery component (lists AWS Organization accounts)
- Add aws-assume-role component (STS AssumeRole for cross-account scanning)

Sample workflows:
- AWS CSPM Org Account Discovery (resolve creds → discover accounts)
- AWS CSPM Prowler to Analytics (resolve creds → Prowler scan → Analytics Sink)

Signed-off-by: Aseem Shrey <LuD1161@users.noreply.github.com>
…ion cards

- Fix OAuth callback spinner stuck in React 18 strict mode by removing
  the cancelled cleanup pattern (exchangeStartedRef is sufficient)
- Remove userId from completeOAuthSession input; derive from state record
  since the exchange endpoint is @public()
- Add Slack auth.test validation for OAuth connections and fix valid->ok
  field mapping in testSlackConnection controller
- Add team:read scope and team.info API to fetch workspace icons
- Enrich connection metadata with workspace icon during OAuth and on
  test/validate (best-effort backfill for existing connections)
- Redesign connection cards with workspace icon/initials, green health
  badge, scope count, and hover effects
- Add dashed "Add Connection" card to the connections grid
- Fix toast text: "connection is healthy" instead of "message sent"

Signed-off-by: Aseem Shrey <LuD1161@users.noreply.github.com>
- Add team:read to default Slack OAuth scopes in .env.example and
  integrations.md
- Include integration docs, core component docs, and README updates

Signed-off-by: Aseem Shrey <LuD1161@users.noreply.github.com>
Add a new sample workflow JSON that chains AWS credential resolution,
Prowler security scan, and Slack notification via webhook. The Slack
message includes a formatted summary with finding counts by severity.

Signed-off-by: Aseem Shrey <LuD1161@users.noreply.github.com>
Refactor prowler-scan with shared utilities, improve slack notification
formatting, enhance AWS assume-role and org-discovery with integration
credential resolver support, update opensearch indexer, and improve
frontend workflow parameter handling and integration detail page.

Signed-off-by: Aseem Shrey <LuD1161@users.noreply.github.com>
@chatgpt-codex-connector
Copy link

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.

@LuD1161 LuD1161 closed this Feb 13, 2026
@LuD1161 LuD1161 deleted the LuD1161/integrations-page branch February 13, 2026 03:52
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant