Skip to content

Add Vercel integration with target source, schema, and tests - #641

Draft
mizhm wants to merge 11 commits into
mainfrom
feat/vercel-integration
Draft

mizhm wants to merge 11 commits into
mainfrom
feat/vercel-integration

Conversation

@mizhm

@mizhm mizhm commented Sep 17, 2026

Copy link
Copy Markdown
Contributor

This pull request adds support for Vercel as a new integration and target source in the system. The changes include defining the Vercel integration schema, registering the connector, updating the integration catalog, and providing comprehensive tests (including end-to-end tests) to ensure correct behavior. Additionally, user-facing labels and icons for Vercel are integrated throughout the codebase.

Vercel Integration Support

  • Added a new vercelSchema for Vercel integration, including required fields (apiToken, optional teamId), and registered the VercelConnector so it can be resolved by the integration factory. ([core-api/src/modules/integrations/schemas/vercel.schema.tsR1-R39](https://github.com/oasm-platform/open-asm/pull/641/files#diff-ccf2cef214466f69ac76a5fc638476ba1d2b471c9dadda5870ce459c88632537R1-R39))
  • Appended vercelSchema to the universalIntegrationSchema union, making Vercel available in the integration catalog. ([[1]](https://github.com/oasm-platform/open-asm/pull/641/files#diff-4b5f56ab31ab13b7aa358641337f6854bb1d20da40b40f58bb0e94e13e7758d4R6), [[2]](https://github.com/oasm-platform/open-asm/pull/641/files#diff-4b5f56ab31ab13b7aa358641337f6854bb1d20da40b40f58bb0e94e13e7758d4R32))

Testing and Validation

  • Introduced comprehensive unit tests for the Vercel schema, validation logic, sensitive field masking, and schema registration. ([core-api/src/modules/integrations/schemas/vercel.schema.spec.tsR1-R71](https://github.com/oasm-platform/open-asm/pull/641/files#diff-1ce6fddfaa2b546ce2475b87171cf318ac83e5f00040dfc7b6fbca3686f95a48R1-R71))
  • Added an end-to-end test suite (vercel-e2e.spec.ts) to verify the full integration pipeline, including dry-run, error handling, ingestion, and catalog exposure. ([core-api/src/modules/integrations/vercel-e2e.spec.tsR1-R329](https://github.com/oasm-platform/open-asm/pull/641/files#diff-7946aa7d4d4da972b23771396e97270a59e3d4b0dd5d6cde2066b62051439186R1-R329))

Target Source Enhancements

  • Added VERCEL as a new value in the TargetSource enum to represent Vercel-originated targets. ([core-api/src/modules/targets/entities/target.entity.tsR40](https://github.com/oasm-platform/open-asm/pull/641/files#diff-21f460d0904ed00547170e63325bba1773ec246f53d78692821e626d21bdca43R40))
  • Updated DTO mapping and schema to include Vercel as a recognized target source, with appropriate label and icon. ([[1]](https://github.com/oasm-platform/open-asm/pull/641/files#diff-62c5b664f33e68aacc55adca067c52d121354153c594982c57ba1d5f502a907fR25-R31), [[2]](https://github.com/oasm-platform/open-asm/pull/641/files#diff-f76f201b2216d7b59d01187636ddedf504ed5746e4ea2be1feedd06ffbda4941R46-R49))

@mizhm mizhm self-assigned this Sep 17, 2026
Connector findings were losing description, synopsis and a number of other
scanner-provided fields because neither the SDK Finding contract nor the
jobs_registry Vulnerability model carried them, and the worker explicitly
dropped matched_at.

- worker: map description, synopsis, authors, affectedUrl (from matched_at),
  ports, vpr_score, bid/cea/iava, publication/modification dates and
  confidence onto the jobs_registry Vulnerability
- proto: add confidence to Vulnerability and mirror the new connector Finding
  fields; regenerate the Go stubs
- core-api: add a nullable confidence column with a migration, and refresh
  every scanner-derived column on re-scan so rows created before this change
  are backfilled instead of staying empty
The detail page never rendered solution, and several API fields (synopsis,
host, confidence, CEA/IAVA ids, authors, extractor output, dates) were
missing. EPSS/VPR/CVE/BID/CWE were also nested under the cvssMetric guard,
so they disappeared whenever no CVSS vector was present.

- add a Solution section and a Details section (authors, extractor, dates,
  extracted results); show synopsis, host, confidence, CEA and IAVA
- move EPSS/VPR/CVE/BID/CWE out of the cvssMetric conditional
- add htmlToPlainText() and use it for description/synopsis/solution so
  scanner HTML renders as readable text without injecting raw HTML
- regenerate the API client for the new confidence field
Comment thread console/src/utils/html.ts
Comment on lines +27 to +29
const text = input
.replace(BLOCK_BOUNDARY, '\n')
.replace(ANY_TAG, '')
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.

2 participants