@networkpro/web 1.24.2 → 1.24.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -58,6 +58,10 @@ jobs:
58
58
  - name: Install jq
59
59
  run: sudo apt-get install -y jq
60
60
 
61
+ - name: Run npm audit
62
+ run: npm audit --audit-level=moderate
63
+ continue-on-error: true
64
+
61
65
  - name: Run JSDoc lint check
62
66
  id: jsdoc_lint
63
67
  continue-on-error: true
@@ -0,0 +1,95 @@
1
+ # .github/workflows/probely-scan.yml
2
+ #
3
+ # Copyright © 2025 Network Pro Strategies (Network Pro™)
4
+ # SPDX-License-Identifier: CC-BY-4.0 OR GPL-3.0-or-later
5
+ # This file is part of Network Pro
6
+
7
+ name: Weekly DAST Scan (Probely)
8
+
9
+ on:
10
+ schedule:
11
+ - cron: '0 9 * * 2' # Every Tuesday, 9 AM UTC
12
+ workflow_dispatch:
13
+
14
+ jobs:
15
+ dast-scan:
16
+ runs-on: ubuntu-24.04
17
+ permissions:
18
+ contents: read
19
+ actions: read
20
+ id-token: none
21
+
22
+ env:
23
+ PROBELY_API_KEY: ${{ secrets.PROBELY_API_KEY }}
24
+ TARGET_ID: 3by8xa6kzArN
25
+ API_BASE: https://api.probely.com/v2 # Always include /v2
26
+ MAX_WAIT_MINUTES: 60 # configurable
27
+
28
+ steps:
29
+ - name: Start Probely Scan
30
+ id: start-scan
31
+ run: |
32
+ echo "🧪 Triggering Probely scan for target $TARGET_ID ..."
33
+ response=$(curl -s -X POST "$API_BASE/targets/$TARGET_ID/scans/" \
34
+ -H "Authorization: JWT $PROBELY_API_KEY" \
35
+ -H "Content-Type: application/json" \
36
+ -d '{}')
37
+
38
+ echo "Raw API response:"
39
+ echo "$response" | jq .
40
+
41
+ scan_id=$(echo "$response" | jq -r '.id // empty')
42
+
43
+ if [ -z "$scan_id" ]; then
44
+ echo "::error ::Failed to start scan — check API key, target ID, or base URL."
45
+ exit 1
46
+ fi
47
+
48
+ echo "scan_id=$scan_id" >> $GITHUB_ENV
49
+ echo "✅ Scan started with ID: $scan_id"
50
+
51
+ - name: Wait for Scan Completion
52
+ run: |
53
+ echo "⏳ Waiting for scan $scan_id to complete..."
54
+ elapsed=0
55
+ while [ $elapsed -lt $((MAX_WAIT_MINUTES * 60)) ]; do
56
+ status=$(curl -s "$API_BASE/scans/$scan_id/" \
57
+ -H "Authorization: JWT $PROBELY_API_KEY" | jq -r '.status // empty')
58
+
59
+ echo "⏱️ Status: $status (elapsed $elapsed sec)"
60
+
61
+ if [ "$status" = "completed" ]; then
62
+ echo "✅ Scan completed successfully."
63
+ break
64
+ elif [ "$status" = "failed" ]; then
65
+ echo "::error ::Scan failed."
66
+ exit 1
67
+ fi
68
+
69
+ sleep 60
70
+ elapsed=$((elapsed + 60))
71
+ done
72
+
73
+ if [ "$status" != "completed" ]; then
74
+ echo "::error ::Scan did not complete in time ($MAX_WAIT_MINUTES min timeout)."
75
+ exit 1
76
+ fi
77
+
78
+ - name: Download Probely HTML Report
79
+ run: |
80
+ echo "📥 Downloading report for scan $scan_id ..."
81
+ curl -s "$API_BASE/scans/$scan_id/report/" \
82
+ -H "Authorization: JWT $PROBELY_API_KEY" \
83
+ -o probely-report.html
84
+
85
+ if [ ! -s probely-report.html ]; then
86
+ echo "::error ::Report file is empty or missing."
87
+ exit 1
88
+ fi
89
+ echo "✅ Report saved as probely-report.html"
90
+
91
+ - name: Upload report artifact
92
+ uses: actions/upload-artifact@v5
93
+ with:
94
+ name: probely-report
95
+ path: probely-report.html
@@ -19,6 +19,8 @@ jobs:
19
19
  contents: read
20
20
  security-events: write
21
21
  issues: write
22
+ env:
23
+ CODEQL_ACTION_ANALYSIS_KEY: gitleaks
22
24
  steps:
23
25
  # ---------------------------------------------------------------------
24
26
  # Checkout the full repo history (needed for Gitleaks to scan all commits)
package/CHANGELOG.md CHANGED
@@ -22,6 +22,51 @@ This project attempts to follow [Keep a Changelog](https://keepachangelog.com/en
22
22
 
23
23
  ---
24
24
 
25
+ ## [1.24.4]
26
+
27
+ ### Documentation
28
+
29
+ - Added a **Continuous Security & Dependency Checks** section to `README.md`, outlining the automated vulnerability and dependency analysis integrated into CI/CD workflows.
30
+
31
+ ### Added
32
+
33
+ - Introduced **non-blocking** `npm audit` **step** in the `build-and-publish.yml` workflow to automatically detect known vulnerabilities during dependency installation.
34
+ - Introduced **[Probely](https://probely.com/) Dynamic Application Security Testing (DAST)** integration via a new GitHub Actions workflow at `.github/workflows/probely-scan.yml`.
35
+ - Executes **weekly automated scans** of the `audit.netwk.pro` environment every Tuesday at 09:00 UTC.
36
+ - Authenticates securely using a scoped **API key** stored in GitHub Secrets (`PROBELY_API_KEY`).
37
+ - Polls the Probely API for scan completion and retrieves the full **HTML vulnerability report**.
38
+ - Uploads reports as workflow **artifacts** for maintainers to review.
39
+ - Includes a 60-minute timeout and supports manual triggering via `workflow_dispatch`.
40
+ - Configured for **read-only testing** against non-production environments to safely identify potential web and API vulnerabilities.
41
+ - Future updates will introduce automated issue creation and alerting for high-severity findings.
42
+
43
+ ### Changed
44
+
45
+ - Updated `static/robots.txt` to exclude redirect routes and sensitive/internal endpoints (e.g., `/api`, `/relay-*`, `/consultation`, `/contact`, `/status`, etc.) from automated crawlers and vulnerability scanners.
46
+ - Bumped project version to `v1.24.4`.
47
+
48
+ ### Security
49
+
50
+ - Enhanced continuous security coverage through the addition of **Probely DAST** for dynamic web and API vulnerability testing.
51
+ - Maintained and improved **GitLeaks** secret scanning across pull requests and scheduled full-history scans.
52
+ - Together, these workflows now provide full-spectrum coverage across **SAST** (static analysis) and **DAST** (dynamic analysis) layers within the CI/CD pipeline.
53
+
54
+ ---
55
+
56
+ ## [1.24.3]
57
+
58
+ ### Changed
59
+
60
+ - Bumped project version to `v1.24.3`.
61
+ - Updated `.github/workflows/secret-scan.yml` to utilize a unique `CODEQL_ACTION_ANALYSIS_KEY` to avoid conflicts with CodeQL.
62
+ - Updated `static/robots.txt` to disallow crawling of the `/api` route.
63
+
64
+ ### Fixed
65
+
66
+ - Corrected naming of `static/7cbb39ce-750b-43da-83b8-8980e5554d4d.txt`.
67
+
68
+ ---
69
+
25
70
  ## [1.24.2]
26
71
 
27
72
  ### Added
@@ -88,6 +133,12 @@ This project attempts to follow [Keep a Changelog](https://keepachangelog.com/en
88
133
  - `globals` `^16.4.0` → `^16.5.0`
89
134
  - `posthog-js` `^1.282.0` → `^1.284.0`
90
135
 
136
+ ### Security
137
+
138
+ - Added **automated SAST scanning** via GitLeaks to prevent secrets and credentials from being committed.
139
+ - Implemented **security event reporting** via GitHub’s Code Scanning interface (SARIF upload supported).
140
+ - Configured **automated notifications** for detected leaks via GitHub Issues and optional ntfy alerts.
141
+
91
142
  ---
92
143
 
93
144
  ## [1.23.0] - 2025-10-30
@@ -1430,7 +1481,9 @@ This project attempts to follow [Keep a Changelog](https://keepachangelog.com/en
1430
1481
 
1431
1482
  <!-- Link references -->
1432
1483
 
1433
- [Unreleased]: https://github.com/netwk-pro/netwk-pro.github.io/compare/v1.24.2...HEAD
1484
+ [Unreleased]: https://github.com/netwk-pro/netwk-pro.github.io/compare/v1.24.4...HEAD
1485
+ [1.24.4]: https://github.com/netwk-pro/netwk-pro.github.io/releases/tag/v1.24.4
1486
+ [1.24.3]: https://github.com/netwk-pro/netwk-pro.github.io/releases/tag/v1.24.3
1434
1487
  [1.24.2]: https://github.com/netwk-pro/netwk-pro.github.io/releases/tag/v1.24.2
1435
1488
  [1.24.1]: https://github.com/netwk-pro/netwk-pro.github.io/releases/tag/v1.24.1
1436
1489
  [1.24.0]: https://github.com/netwk-pro/netwk-pro.github.io/releases/tag/v1.24.0
package/README.md CHANGED
@@ -36,6 +36,7 @@ All infrastructure and data flows are designed with **maximum transparency, self
36
36
  - [Repository Structure](#structure)
37
37
  - [Getting Started](#getting-started)
38
38
  - [Configuration](#configuration)
39
+ - [Security & Dependency Checks](#security)
39
40
  - [Service Worker Utilities](#sw-utilities)
40
41
  - [Debug Mode](#debug)
41
42
  - [CSP Report Handler](#cspreport)
@@ -190,8 +191,6 @@ To implement a strict nonce-based CSP in the future:
190
191
 
191
192
  Note: Strict CSP adoption may require restructuring third-party integrations and deeper framework coordination.
192
193
 
193
- > 💡 The `[headers]` block in `netlify.toml` has been deprecated — all headers are now set dynamically from within SvelteKit.
194
-
195
194
  &nbsp;
196
195
 
197
196
  ### 🧭 `hooks.client.ts`
@@ -208,6 +207,27 @@ Client-side PWA logic (such as handling the `beforeinstallprompt` event, checkin
208
207
 
209
208
  ---
210
209
 
210
+ <section id="security">
211
+
212
+ ## 🧩 Continuous Security & Dependency Checks
213
+
214
+ Network Pro&trade; automatically performs dependency and vulnerability checks as part of its CI/CD pipeline:
215
+
216
+ - **GitLeaks Secret Scanning** — detects potential secrets and credentials in commits, pull requests, and full-history scans.
217
+ - **CodeQL Analysis** — runs static code scanning to detect code-level vulnerabilities.
218
+ - **Probely DAST Scans** — executes weekly external scans on the audit deployment (`audit.netwk.pro`) to identify web application vulnerabilities.
219
+ - **npm Audit** — runs during the build phase to detect known vulnerabilities in installed dependencies (`npm audit --audit-level=moderate`).
220
+ - **Dependabot** — automatically monitors and updates outdated dependencies via pull requests.
221
+ - **ESLint, Prettier, etc. (Local)** — enforces code quality and consistency during local development before commits.
222
+
223
+ Each tool is configured to run in a safe, non-production environment to ensure reliability and protect sensitive data.
224
+
225
+ </section>
226
+
227
+ <sub>[Back to top](#top)</sub>
228
+
229
+ ---
230
+
211
231
  <section id="sw-utilities">
212
232
 
213
233
  ## ⚙️ Service Worker Utilities
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@networkpro/web",
3
3
  "private": false,
4
- "version": "1.24.2",
4
+ "version": "1.24.4",
5
5
  "description": "Locking Down Networks, Unlocking Confidence™ | Security, Networking, Privacy — Network Pro Strategies",
6
6
  "keywords": [
7
7
  "advisory",
package/static/robots.txt CHANGED
@@ -17,12 +17,34 @@ Disallow: /coverage/
17
17
  Disallow: /build/
18
18
  Disallow: /.lighthouseci/
19
19
 
20
- # Disallow stub routes that redirect externally
20
+ # --- Dynamic / redirect handlers
21
+ Disallow: /relay-
22
+ Disallow: /api/
23
+ Disallow: /api/mock-csp
24
+
25
+ # --- Stub and form routes
21
26
  Disallow: /contact
22
27
  Disallow: /privacy-rights
23
28
  Disallow: /consultation
24
29
  Disallow: /links
25
30
  Disallow: /posts
31
+ Disallow: /privacy-rights
32
+
33
+ # --- Error / system routes
34
+ Disallow: /..404
35
+ Disallow: /status
36
+
37
+ # --- Optional: service utilities or PWA
38
+ Disallow: /service-worker
39
+ Disallow: /service-worker.js
40
+ Disallow: /service-worker.d.ts
41
+
42
+ # --- Futureproof catch-alls
43
+ Disallow: /admin
44
+ Disallow: /preview
45
+ Disallow: /redirect
46
+ Disallow: /mock-csp
47
+ Disallow: /csp
26
48
 
27
49
  # Allow everything else
28
50
  Allow: /