Skip to content

[comp] Production Deploy#2673

Merged
Marfuen merged 55 commits intoreleasefrom
main
Apr 28, 2026
Merged

[comp] Production Deploy#2673
Marfuen merged 55 commits intoreleasefrom
main

Conversation

@github-actions
Copy link
Copy Markdown
Contributor

@github-actions github-actions Bot commented Apr 24, 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

Moves Statement of Applicability into Documents with an overview card, approval/decline tracking, and PDF export, and strengthens scheduling across automations and integration checks with a shared “due today” helper and tests. Also supports selecting specific policies in “Download All,” splits the GitHub sanitized inputs check, updates docs/build scripts, and fixes GWS 2FA filter parsing.

  • New Features

    • SOA (CS-277): Added export-to-PDF endpoint and jsPDF generator; moved SOA UI to Documents with overview card, section, and export button; tracks approvedAt and declinedAt; added controller/service tests and non-empty DTO validation; included SOA in documents score and ISO 27001 framework detection.
    • Scheduling: Introduced isDueToday with unit tests; orchestrators now filter via filterDueAutomations/filterDueTasks and only write last-run when execution happened (retry on infra errors); browser automation records evaluationStatus; DTOs use TaskFrequency and PATCH endpoints accept scheduleFrequency; Swagger/response DTOs expose integrationScheduleFrequency and integrationLastRunAt.
    • Policies: Download picker supports search/status groups and selecting visible/all; API accepts policyIds via CSV or repeated keys and dedupes.
    • Integrations: Split GitHub sanitized inputs into separate Input Validation and Code Scanning checks; runner aggregates results; IDs remain compatible.
    • Docs/Infra: Added AGENTS.md and skills; standardized bun/bunx usage; @trycompai/db publishes flattened dist/schema.prisma.
  • Bug Fixes

    • SOA: Correct approval/decline status handling, export classification for declined cases, pagination in PDF, and error handling to avoid infinite loading.
    • Google Workspace: Coerce target_org_units to array in 2FA user filter to prevent crashes.

Written for commit e56a698. Summary will update on new commits. Review in cubic

chasprowebdev and others added 26 commits April 23, 2026 11:40
…ad all

* feat(policies): allow filtering download-all by policyIds

* feat(policies): parse policyIds query param on download-all endpoint

* fix(policies): use typed mockAuthContext in controller spec

* feat(policies): add policy download picker sheet

* feat(policies): open download picker sheet from Download All button

* chore(policies): import icons from design-system re-export

* fix(policies): reset picker selection on reopen and accept array policyIds

Addresses cubic review on PR #2672:
- PolicyDownloadSheet: reset selection to current policy IDs whenever the
  sheet opens or the policies prop changes, so reopens and upstream data
  refreshes don't leave stale or deleted IDs selected.
- Controller: accept repeated-key array form (?policyIds=a&policyIds=b)
  in addition to comma-separated, and flatten both into a single deduped
  string[].

---------

Co-authored-by: Mariano <marfuen98@gmail.com>
[dev] [carhartlewis] lewis/comp-skills-fix
tofikwest and others added 2 commits April 27, 2026 10:21
The target_org_units variable (multi-select) can be stored as a string
when a single value is saved. The code assumed it was always an array,
causing .join() and .some() to crash with 'join is not a function'.

Coerce string values to a single-element array in parseGoogleWorkspaceCheckUserFilter.

Fixes: Snoonu customer GWS 2FA check failing with 'userFilterConfig.targetOrgUnits.join is not a function'
…y-coercion

fix(gws): coerce target_org_units to array in check-user-filter
tofikwest and others added 3 commits April 27, 2026 11:49
…mations

Splits the combined "Sanitized Inputs & Code Scanning" GitHub check into
two separate IntegrationChecks so each renders as its own card in the
integrations UI:

- input_validation - "Input Validation" - scans for validation libraries
  in package.json / requirements.txt / pyproject.toml / composer.json
- code_scanning - "Code Scanning" - detects CodeQL default setup,
  custom CodeQL workflows, or third-party SARIF uploaders

Both checks remain mapped to the existing sanitizedInputs task template;
the runner aggregates pass/fail across checks per task, so auto-completion
behavior is preserved (task only completes when both pass for every repo).

Detection logic is unchanged - the JS/PY/PHP package catalogs and the
CodeQL detection flow (default-setup API + workflow file fallback) move
verbatim into the new files. Shared catalogs are extracted to
validation-libraries.ts; CodeQL detection helpers are extracted to
code-scanning-detector.ts to keep each file under the 300-line limit.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
…ode-scanning

Reverts the previous split structure to a more conservative approach:
keep sanitized-inputs.ts (and its check id 'sanitized_inputs') and just
strip the code-scanning logic out of it. Code scanning becomes a single
new self-contained file (code-scanning.ts).

This preserves continuity for existing customers:
- IntegrationCheckRun records under 'sanitized_inputs' continue to be
  the same automation
- IntegrationConnection.metadata.disabledTaskChecks entries that
  reference 'sanitized_inputs' remain valid

Removes the helper modules (input-validation.ts, validation-libraries.ts,
code-scanning-detector.ts) introduced in the previous commit.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
…heck

feat(integrations): split GitHub sanitized inputs check into two automations
@claudfuen
Copy link
Copy Markdown
Contributor

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

5 participants