Skip to content

[comp] Production Deploy#2809

Merged
tofikwest merged 7 commits into
releasefrom
main
May 10, 2026
Merged

[comp] Production Deploy#2809
tofikwest merged 7 commits into
releasefrom
main

Conversation

@github-actions
Copy link
Copy Markdown
Contributor

@github-actions github-actions Bot commented May 10, 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.


Summary by cubic

Adds full AWS GovCloud support with partition-aware credentials, ARN handling, and environment-specific CloudShell/remediation flows. Also ships a public, SEO-optimized API docs surface with Mintlify metadata, safer OpenAPI output, and refreshed docs.

  • New Features

    • AWS GovCloud support: partition-aware defaults, ARN normalization, role ARN parsing, and config validation across API and remediation.
    • UI: choose AWS environment (commercial or GovCloud) during onboarding/settings; generate CloudShell URL and setup/remediation scripts per environment; prevent copying until an environment is selected.
    • API: propagate awsType in provider metadata; parse account IDs from arn:(aws|aws-us-gov); normalize partitions in the command executor and default regions in remediation.
    • Docs & OpenAPI: add metadata/SEO layer for public endpoints (operation/tag metadata, summaries, code samples); exclude sensitive/internal routes; prune unused schemas/fields; set public title/description in apps/api; add packages/docs/api-reference/overview.mdx, redirects in packages/docs/docs.json, and consolidate OpenAPI to packages/docs/openapi.json; copy edits across docs and remove Trust Center questionnaire page.
  • Migration

    • To enable GovCloud, set: SECURITY_HUB_GOVCLOUD_ROLE_ASSUMER_ARN, SECURITY_HUB_GOVCLOUD_ACCESS_KEY_ID, SECURITY_HUB_GOVCLOUD_SECRET_ACCESS_KEY, SECURITY_HUB_GOVCLOUD_SESSION_TOKEN.
    • When creating/updating AWS connections, store awsType as aws or aws-us-gov (defaults to aws if omitted).

Written for commit 1275f84. Summary will update on new commits.

github-actions Bot and others added 5 commits May 8, 2026 17:06
- Introduced functions to infer AWS partition and region based on findings.
- Updated remediation prompts to include AWS execution context.
- Enhanced ARN normalization for AWS and GovCloud.
- Added validation for AWS partition configurations.
- Implemented tests for AWS partition utilities.
- Updated various services and controllers to support AWS partitioning and GovCloud integration.
- Refactored the CloudTestsSection component for better readability by adjusting line breaks and indentation.
- Removed redundant imports and organized existing imports for clarity.
- Enhanced filtering logic for findings to streamline the code.
- Ensured consistent formatting across severity styles and service names for maintainability.
…ntial update logic

- Removed unnecessary console log from AwsAccountSettingsBody component.
- Simplified the updateCredential function in EmptyStateOnboarding and CloudSetup components by removing redundant logic for awsType, ensuring cleaner state management.
[dev] [tofikwest] feat/support-gov-cloud-aws
@vercel
Copy link
Copy Markdown

vercel Bot commented May 10, 2026

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

Project Deployment Actions Updated (UTC)
comp-framework-editor (staging) Ready Ready Preview, Comment May 10, 2026 9:37pm
2 Skipped Deployments
Project Deployment Actions Updated (UTC)
app (staging) Skipped Skipped May 10, 2026 9:37pm
portal (staging) Skipped Skipped May 10, 2026 9:37pm

Request Review

Copy link
Copy Markdown
Contributor

@cubic-dev-ai cubic-dev-ai Bot left a comment

Choose a reason for hiding this comment

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

2 issues found across 22 files

Confidence score: 4/5

  • This PR looks safe to merge overall, with moderate-confidence UI polish issues rather than core functional breakage (both findings are severity 5/10).
  • In apps/app/src/components/integrations/CloudShellSetup.tsx, the disabled state still shows the “Show full script...” control even though expanding has no visible effect, which can confuse users in the integration setup flow.
  • In apps/app/src/app/(app)/[orgId]/integrations/[slug]/components/EmptyStateOnboarding.tsx, hardcoded step numbering can show 2/3/4 when Step 1 is omitted, creating inconsistent onboarding guidance for non-AWS providers.
  • Pay close attention to apps/app/src/components/integrations/CloudShellSetup.tsx and apps/app/src/app/(app)/[orgId]/integrations/[slug]/components/EmptyStateOnboarding.tsx - disabled-state UX and conditional step numbering should be aligned to avoid user confusion.
Prompt for AI agents (unresolved issues)

Check if these issues are valid — if so, understand the root cause of each and fix them. If appropriate, use sub-agents to investigate and fix each issue separately.


<file name="apps/app/src/components/integrations/CloudShellSetup.tsx">

<violation number="1" location="apps/app/src/components/integrations/CloudShellSetup.tsx:89">
P2: When `disabled` is true, the "Show full script..." button still renders but does nothing — clicking it sets `expanded` without any visible effect since the `<pre>` always shows `disabledMessage`. Hide the expand/collapse button when disabled.</violation>
</file>

<file name="apps/app/src/app/(app)/[orgId]/integrations/[slug]/components/EmptyStateOnboarding.tsx">

<violation number="1" location="apps/app/src/app/(app)/[orgId]/integrations/[slug]/components/EmptyStateOnboarding.tsx:622">
P2: Hardcoded step numbers produce a gap (2, 3, 4) when `awsTypeFields` is empty. For non-AWS cloud providers that don't have an `awsType` field, Step 1 is hidden but subsequent steps still display as 2, 3, 4. Consider computing step numbers dynamically based on which sections are visible.</violation>
</file>

Reply with feedback, questions, or to request a fix. Tag @cubic-dev-ai to re-run a review, or fix all with cubic.

<div className="px-3 py-2.5">
<pre className="text-[11px] font-mono leading-relaxed text-foreground/70 whitespace-pre-wrap break-all">
{expanded ? finalScript : previewLines}
{disabled ? disabledMessage : expanded ? finalScript : previewLines}
Copy link
Copy Markdown
Contributor

@cubic-dev-ai cubic-dev-ai Bot May 10, 2026

Choose a reason for hiding this comment

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

P2: When disabled is true, the "Show full script..." button still renders but does nothing — clicking it sets expanded without any visible effect since the <pre> always shows disabledMessage. Hide the expand/collapse button when disabled.

Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At apps/app/src/components/integrations/CloudShellSetup.tsx, line 89:

<comment>When `disabled` is true, the "Show full script..." button still renders but does nothing — clicking it sets `expanded` without any visible effect since the `<pre>` always shows `disabledMessage`. Hide the expand/collapse button when disabled.</comment>

<file context>
@@ -74,7 +86,7 @@ export function CloudShellSetup({
         <div className="px-3 py-2.5">
           <pre className="text-[11px] font-mono leading-relaxed text-foreground/70 whitespace-pre-wrap break-all">
-            {expanded ? finalScript : previewLines}
+            {disabled ? disabledMessage : expanded ? finalScript : previewLines}
           </pre>
           {!expanded && (
</file context>
Fix with Cubic

<div className="p-6 space-y-4">
<StepHeader step={1} title="Create IAM Role" />
<CloudShellSetup script={provider.setupScript} externalId={orgId} />
<StepHeader step={2} title="Create IAM Role" />
Copy link
Copy Markdown
Contributor

@cubic-dev-ai cubic-dev-ai Bot May 10, 2026

Choose a reason for hiding this comment

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

P2: Hardcoded step numbers produce a gap (2, 3, 4) when awsTypeFields is empty. For non-AWS cloud providers that don't have an awsType field, Step 1 is hidden but subsequent steps still display as 2, 3, 4. Consider computing step numbers dynamically based on which sections are visible.

Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At apps/app/src/app/(app)/[orgId]/integrations/[slug]/components/EmptyStateOnboarding.tsx, line 622:

<comment>Hardcoded step numbers produce a gap (2, 3, 4) when `awsTypeFields` is empty. For non-AWS cloud providers that don't have an `awsType` field, Step 1 is hidden but subsequent steps still display as 2, 3, 4. Consider computing step numbers dynamically based on which sections are visible.</comment>

<file context>
@@ -542,25 +596,48 @@ function CloudSetup({
             <div className="p-6 space-y-4">
-              <StepHeader step={1} title="Create IAM Role" />
-              <CloudShellSetup script={provider.setupScript} externalId={orgId} />
+              <StepHeader step={2} title="Create IAM Role" />
+              <CloudShellSetup
+                script={setupScript}
</file context>
Fix with Cubic

Mintlify-Source: dashboard-editor

Co-authored-by: mintlify[bot] <109931778+mintlify[bot]@users.noreply.github.com>
* fix(docs): improve questionnaire API SEO metadata

* docs: add Mintlify API overview and metadata layer

* docs(api): broaden public API SEO metadata

* docs(api): harden public OpenAPI SEO surface
Copy link
Copy Markdown
Contributor

@cubic-dev-ai cubic-dev-ai Bot left a comment

Choose a reason for hiding this comment

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

2 issues found across 24 files (changes from recent commits).

Prompt for AI agents (unresolved issues)

Check if these issues are valid — if so, understand the root cause of each and fix them. If appropriate, use sub-agents to investigate and fix each issue separately.


<file name="apps/api/src/openapi/public-docs-quality.ts">

<violation number="1" location="apps/api/src/openapi/public-docs-quality.ts:81">
P2: Filter Path Item entries to HTTP methods only before running operation quality checks; otherwise non-operation fields are incorrectly reported as missing summaries/metadata.</violation>
</file>

<file name="apps/api/src/main.ts">

<violation number="1" location="apps/api/src/main.ts:177">
P2: Applying public-docs metadata to the runtime Swagger document forces the server URL to production, overriding the environment-specific `baseUrl` and making non-prod `/api/docs` point at prod.</violation>
</file>

Reply with feedback, questions, or to request a fix. Tag @cubic-dev-ai to re-run a review, or fix all with cubic.

const exposedTags = new Set<string>();

for (const [routePath, methods] of Object.entries(document.paths)) {
for (const [method, op] of Object.entries(
Copy link
Copy Markdown
Contributor

@cubic-dev-ai cubic-dev-ai Bot May 10, 2026

Choose a reason for hiding this comment

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

P2: Filter Path Item entries to HTTP methods only before running operation quality checks; otherwise non-operation fields are incorrectly reported as missing summaries/metadata.

Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At apps/api/src/openapi/public-docs-quality.ts, line 81:

<comment>Filter Path Item entries to HTTP methods only before running operation quality checks; otherwise non-operation fields are incorrectly reported as missing summaries/metadata.</comment>

<file context>
@@ -0,0 +1,120 @@
+  const exposedTags = new Set<string>();
+
+  for (const [routePath, methods] of Object.entries(document.paths)) {
+    for (const [method, op] of Object.entries(
+      methods as Record<string, OperationForQuality>,
+    )) {
</file context>
Fix with Cubic

Comment thread apps/api/src/main.ts
.build();
const document: OpenAPIObject = SwaggerModule.createDocument(app, config);

applyPublicOpenApiMetadata(document);
Copy link
Copy Markdown
Contributor

@cubic-dev-ai cubic-dev-ai Bot May 10, 2026

Choose a reason for hiding this comment

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

P2: Applying public-docs metadata to the runtime Swagger document forces the server URL to production, overriding the environment-specific baseUrl and making non-prod /api/docs point at prod.

Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At apps/api/src/main.ts, line 177:

<comment>Applying public-docs metadata to the runtime Swagger document forces the server URL to production, overriding the environment-specific `baseUrl` and making non-prod `/api/docs` point at prod.</comment>

<file context>
@@ -169,6 +174,8 @@ async function bootstrap(): Promise<void> {
     .build();
   const document: OpenAPIObject = SwaggerModule.createDocument(app, config);
 
+  applyPublicOpenApiMetadata(document);
+
   // Setup Swagger UI at /api/docs
</file context>
Fix with Cubic

@tofikwest tofikwest merged commit c1e484f into release May 10, 2026
14 checks passed
@claudfuen
Copy link
Copy Markdown
Contributor

🎉 This PR is included in version 3.49.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.

2 participants