Open
Conversation
Add README and Files tabs to review detail page, allowing reviewers to view skill content directly without switching to skill detail page. - Add CodeViewer component with lowlight-based syntax highlighting - Add Tabs UI to review-detail page showing README and file tree - Support file content viewing with auto language detection - Import highlight.js github-dark theme for code blocks - Add i18n keys for skill content section Dependencies: highlight.js, lowlight for syntax highlighting
Extend access control for skill file viewing to support reviewers and namespace/platform admins viewing non-published versions. - Expose platformRoles in AuthContextFilter request attributes - Pass platformRoles to SkillQueryService access checks - Allow SKILL_ADMIN and SUPER_ADMIN to view any version - Allow namespace OWNER/ADMIN to view unpublished versions - Allow skill owner to view any version status (not just PENDING_REVIEW) Fixes 400 "版本未发布" errors for reviewers and rejected versions.
Navigate away before cache cleanup to prevent refetching deleted skill data during component unmount. - Move navigation before removeQueries in withdraw handler - Remove skill-specific invalidation from useWithdrawSkillReview - Only invalidate skill list queries, not individual skill queries Fixes 400 errors when withdrawing the only version of a skill.
Add domain model for security scanning with event-driven architecture and database schema for storing audit results. - Add SecurityAudit entity with findings and verdict - Add SECURITY_REJECTED status to SkillVersionStatus enum - Add security audit database migration (V12) - Integrate security scanning into skill publish workflow - Add WebClient dependency for HTTP communication - Update SkillPublishService to trigger security scans The security audit is triggered automatically when a skill version is submitted for review and blocks publication if critical issues are found.
Configure skill-scanner service integration and expose security audit data in review API responses. - Add skill-scanner service configuration in application.yml - Add Redis Stream configuration for async scan task processing - Include security audit data in ReviewTaskResponse DTO - Update ReviewController to return audit results with review tasks Reviewers can now see security scan results directly in the review interface without additional API calls.
Add security audit API client and display security scan results in the skill management interface. - Add securityAuditApi client for fetching audit results - Add SecurityAudit type definitions - Regenerate OpenAPI schema with security audit endpoints - Display SECURITY_REJECTED status in my-skills page Users can now see when their skills are rejected due to security issues and view the scan results.
Add skill-scanner service to local and staging deployment stacks with Docker Compose configuration. - Add scanner service to docker-compose.yml and staging variant - Add scanner-related make targets for development workflow - Update README with security scanning documentation - Add scanner directory to gitignore The skill-scanner service runs as a separate microservice that performs static analysis on skill packages and reports findings via Redis Stream.
Scanner was missing from production deployment files, and defaulted to enabled in application.yml which would break startup when scanner service is not deployed. - Change scanner default from enabled=true to enabled=false - Add skill-scanner service to compose.release.yml (behind profile) - Add scanner env vars to .env.release.example - Add scanner-tmp shared volume between server and scanner - Create K8s scanner-deployment.yaml - Add scanner service to K8s services.yaml - Add scanner env vars to K8s backend-deployment.yaml - Remove unused scanStreamKey bean from RedisStreamConfig
Allow users to enable security scanner when deploying via runtime.sh. - Add --scanner flag to start scanner service with profile - Add --scanner-image flag to override scanner image repository - Support scanner image in --aliyun/--mirror-registry mirror mode - Write SKILLHUB_SECURITY_SCANNER_ENABLED=true to .env.release - Always include scanner profile on down/clean to stop all containers Usage: sh runtime.sh up --version v0.1.0 --scanner
Update Security Scanning, Container Runtime, and Kubernetes sections to document all scanner enablement paths: runtime.sh --scanner, make targets, docker compose --profile, and K8s manifests.
- dev-all now starts all services including scanner with Redis readiness check before launching backend - dev also includes scanner profile for consistency - Remove redundant targets: dev-deps, dev-server-only, dev-all-scanner - dev-down and dev-all-reset include scanner profile for cleanup
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Risk
User-facing impact:
SKILLHUB_SECURITY_SCANNER_ENABLED=false), opt-in via env varDeployment or migration impact:
security_auditstable (auto-applied by Flyway)scanner-deployment.yamlif scanner is desiredRollback approach:
SKILLHUB_SECURITY_SCANNER_ENABLED=false(default)Notes
Related issue: N/A (feature development)
Follow-up work:
Docs or operator runbooks updated:
docs/security-scanning.mdwith architecture overviewscanner/README.mdandscanner/QUICKSTART.mddocs/api/skill-scanner-api.mdwith API reference