Skip to content

docs: update Node.js SQLite Test Suite Compatibility document with cu… #229

docs: update Node.js SQLite Test Suite Compatibility document with cu…

docs: update Node.js SQLite Test Suite Compatibility document with cu… #229

Workflow file for this run

name: Security Scanning
on:
push:
branches: [main]
pull_request:
branches: [main]
schedule:
# Run security scan weekly on Monday at 9am UTC
- cron: "0 9 * * 1"
workflow_dispatch:
permissions:
contents: read
security-events: write
jobs:
npm-audit:
name: NPM Audit
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
- name: Setup Node.js
uses: actions/setup-node@395ad3262231945c25e8478fd5baf05154b1d79f # v6.1.0
with:
node-version: 20
cache: "npm"
- name: Run npm audit
run: |
npm audit --production --audit-level=moderate || true
osv-scanner:
name: OSV Scanner
uses: google/osv-scanner-action/.github/workflows/osv-scanner-reusable.yml@375a0e8ebdc98e99b02ac4338a724f5750f21213 # v2.3.1
permissions:
actions: read
security-events: write
contents: read
with:
scan-args: |-
-r
./
codeql-javascript:
name: CodeQL JavaScript/TypeScript Analysis
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
- name: Initialize CodeQL
uses: github/codeql-action/init@5d4e8d1aca955e8d8589aabd499c5cae939e33c7 # v4.31.9
with:
languages: javascript-typescript
queries: security-and-quality
config: |
paths-ignore:
- '**/src/upstream/**'
- '**/node_modules/**'
- '**/build/**'
- '**/prebuilds/**'
- '**/dist/**'
- '**/coverage/**'
- '**/vendored/**'
- '**/third-party/**'
- '**/test/**'
- '**/test-directory/**'
- name: Autobuild
uses: github/codeql-action/autobuild@5d4e8d1aca955e8d8589aabd499c5cae939e33c7 # v4.31.9
- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@5d4e8d1aca955e8d8589aabd499c5cae939e33c7 # v4.31.9
codeql-cpp:
name: CodeQL C++ Analysis
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
with:
submodules: recursive
- name: Setup build environment
run: |
sudo apt-get update
sudo apt-get install -y python3 make g++ gcc
- name: Setup Node.js
uses: actions/setup-node@395ad3262231945c25e8478fd5baf05154b1d79f # v6.1.0
with:
node-version: 20
cache: "npm"
- name: Install dependencies
run: npm ci
- name: Initialize CodeQL
uses: github/codeql-action/init@5d4e8d1aca955e8d8589aabd499c5cae939e33c7 # v4.31.9
with:
languages: cpp
queries: security-and-quality
- name: Build C++ code
run: npm run build:native:rebuild
- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@5d4e8d1aca955e8d8589aabd499c5cae939e33c7 # v4.31.9
with:
upload: false
output: sarif-results
# Filter false positives and upstream code from results
# - cpp/slicing: All instances are N-API wrapper classes (Napi::Buffer,
# Napi::BigInt, etc.) assigned to Napi::Value. This is intentional and
# safe - these are thin wrappers around napi_value handles, and slicing
# only loses cached C++ state, not the underlying JS value reference.
# See: https://github.com/nodejs/node-addon-api/blob/main/doc/value.md
- name: Filter upstream code from SARIF
uses: advanced-security/filter-sarif@f3b8118a9349d88f7b1c0c488476411145b6270d # v1.0.1
with:
patterns: |
-**/src/upstream/**
-**/node_modules/**
-**:cpp/slicing
input: sarif-results/cpp.sarif
output: sarif-results/cpp.sarif
- name: Upload filtered SARIF
uses: github/codeql-action/upload-sarif@5d4e8d1aca955e8d8589aabd499c5cae939e33c7 # v4.31.9
with:
sarif_file: sarif-results/cpp.sarif
dependency-review:
name: Dependency Review
runs-on: ubuntu-latest
if: github.event_name == 'pull_request'
steps:
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
- name: Dependency Review
uses: actions/dependency-review-action@3c4e3dcb1aa7874d2c16be7d79418e9b7efd6261 # v4.8.2
with:
fail-on-severity: moderate
deny-licenses: AGPL-3.0, GPL-3.0
secrets-scan:
name: Secrets Scanning
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
with:
fetch-depth: 0
- name: TruffleHog OSS
uses: trufflesecurity/trufflehog@05cccb53bc9e13bc6d17997db5a6bcc3df44bf2f # v3.92.3
with:
path: ./
base: ${{ github.event.repository.default_branch }}
head: HEAD
extra_args: --exclude-paths .trufflehog-exclude.txt --only-verified
continue-on-error: true
summary:
name: Security Summary
runs-on: ubuntu-latest
needs: [npm-audit, osv-scanner, codeql-javascript, codeql-cpp, secrets-scan]
if: always()
steps:
- name: Summary
run: |
echo "## Security Scan Summary" >> $GITHUB_STEP_SUMMARY
echo "" >> $GITHUB_STEP_SUMMARY
echo "| Check | Status |" >> $GITHUB_STEP_SUMMARY
echo "|-------|--------|" >> $GITHUB_STEP_SUMMARY
echo "| NPM Audit | ${{ needs.npm-audit.result }} |" >> $GITHUB_STEP_SUMMARY
echo "| OSV Scanner | ${{ needs.osv-scanner.result }} |" >> $GITHUB_STEP_SUMMARY
echo "| CodeQL JS/TS | ${{ needs.codeql-javascript.result }} |" >> $GITHUB_STEP_SUMMARY
echo "| CodeQL C++ | ${{ needs.codeql-cpp.result }} |" >> $GITHUB_STEP_SUMMARY
echo "| Secrets Scan | ${{ needs.secrets-scan.result }} |" >> $GITHUB_STEP_SUMMARY