Skip to content

Add extension scanning worfklow and admin dashboard#1537

Merged
netomi merged 2 commits intoeclipse:security-improvementsfrom
yeeth-security:yeeth/security-improvements
Jan 12, 2026
Merged

Add extension scanning worfklow and admin dashboard#1537
netomi merged 2 commits intoeclipse:security-improvementsfrom
yeeth-security:yeeth/security-improvements

Conversation

@janbro
Copy link
Contributor

@janbro janbro commented Jan 12, 2026

Add Scan Administration (UI + Backend) for Extension Scanning Lifecycle

#1396

This PR introduces the foundations for the scan administration capability spanning the Web UI and backend, enabling admins to inspect, filter, and act on extension scan results across their full lifecycle.

Web UI

New Scan Admin Page

  • Adds scan-admin.tsx with a tabbed layout, dialogs, and a dedicated context provider.
  • Five tabs:
    • Scans
    • Quarantined
    • Auto Rejected
    • Allowed Files
    • Blocked Files

State & Architecture

  • Introduces a Scan Admin context with reducer, actions, effects, helpers, and types.
  • Centralized handling of:
    • scans / files
    • counts
    • pagination
    • filters
    • selection state
    • auto-refresh
  • Hook set for tabs, filters, pagination, search, dialogs, URL sync, and ScanCard state, keeping tab content components lean and declarative.

Interaction & UX

  • Toolbars:
    • TabToolbar
    • SearchToolbar
    • CountsToolbar
  • Scan card utilities for consistent status and badge rendering.
  • Bookmarkable, back/forward-safe URLs via state-driven URL synchronization.
  • Integrated async actions:
    • Bulk decisions (allow / block)
    • File-level actions (allow / block / delete)
    • Automatic refresh and pagination reset on completion.

Scope Discipline

  • All UI changes are additive under webui/src/**.
  • No existing code paths modified.
  • Barrel index.ts exports added for tabs and toolbars to streamline imports.

Backend / Domain Model

Core Domain

  • New JPA entities and enums modeling the scan lifecycle and decisions

Persistence & Queries

  • Repositories with filtering, pagination, and count support for:
    • scans
    • threats
    • validation failures
    • admin decisions
    • file decisions

API Layer

  • Comprehensive DTOs for admin workflows and UI consumption:
    • Scan results, statistics, and counts
    • Filter options
    • Admin and file decision requests / responses

Scanning Services

  • Orchestrated, transactional scan lifecycle with configuration gating:
    • ExtensionScanService
    • ExtensionScanPersistenceService
    • ExtensionScanner
  • Pluggable ValidationCheck model.
  • Startup recovery for incomplete scans via StaleScanRecovery.

Database Migration

  • New schema and indexes for:
    • scans
    • validation failures
    • threats
    • admin decisions
    • file decisions
  • Migration: V1_59__Extension_Scan_Tables.sql

Note: Long running scanning will be implemented in a future PR

@netomi
Copy link
Contributor

netomi commented Jan 12, 2026

can you please sign the ECA to let the check pass?

@janbro
Copy link
Contributor Author

janbro commented Jan 12, 2026

Yep looks like only one of us had the agreement signed. Will get the second signed once he becomes available

@netomi
Copy link
Contributor

netomi commented Jan 12, 2026

details can be found here: https://api.eclipse.org/git/eca/status/gh/eclipse/openvsx/1537

@alejandro-n-rivera alejandro-n-rivera force-pushed the yeeth/security-improvements branch from 93af210 to d2d48b0 Compare January 12, 2026 13:18
@netomi netomi merged commit a28dd6c into eclipse:security-improvements Jan 12, 2026
1 check passed
netomi pushed a commit that referenced this pull request Jan 29, 2026
* add configurable fast-fail pre-publish validation of extensions

* add UI for admin Extension Scans dashboard

---------

Co-authored-by: Alejandro Rivera <alejandrorivera1996@gmail.com>
netomi pushed a commit that referenced this pull request Feb 5, 2026
* add configurable fast-fail pre-publish validation of extensions

* add UI for admin Extension Scans dashboard

---------

Co-authored-by: Alejandro Rivera <alejandrorivera1996@gmail.com>
janbro added a commit to yeeth-security/openvsx that referenced this pull request Feb 11, 2026
* add configurable fast-fail pre-publish validation of extensions

* add UI for admin Extension Scans dashboard

---------

Co-authored-by: Alejandro Rivera <alejandrorivera1996@gmail.com>
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.

3 participants