een-api-toolkit 0.3.78 → 0.3.79

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.
package/CHANGELOG.md CHANGED
@@ -2,68 +2,10 @@
2
2
 
3
3
  All notable changes to this project will be documented in this file.
4
4
 
5
- ## [0.3.78] - 2026-02-12
5
+ ## [0.3.79] - 2026-02-14
6
6
 
7
7
  ### Release Summary
8
8
 
9
- #### PR #102: Release v0.3.69: CI improvements and dependency management
10
- ## Summary
11
- - Dynamic E2E test matrix discovery (auto-detects example apps with `playwright.config.ts`)
12
- - Added missing `vue-jobs` to CI E2E testing
13
- - Dependabot configuration for automated dependency updates
14
- - Pinned GitHub Actions to immutable commit SHAs for supply chain security
15
-
16
- ## Commits
17
- - `474e9bb` ci: Dynamically discover example apps for E2E matrix
18
- - `ad3f318` fix: pin GitHub Actions to immutable commit SHAs
19
- - `cc706d8` chore: add Dependabot configuration for automated dependency updates
20
- - `24a385b` Merge PR #95 (workflow SHA pinning security fix)
21
-
22
- ## Test Results
23
- - **Lint**: Passed (0 errors, 1 warning)
24
- - **Unit tests**: 619/619 passed
25
- - **Build**: Successful
26
- - **E2E tests**: 11/11 example apps passed (1 transient OAuth timeout on vue-users, passed on rerun)
27
-
28
- ## Security Review
29
- Changes are CI/infrastructure only (workflow files, dependabot config). No source code changes. No security vulnerabilities.
30
-
31
- ## Version
32
- `v0.3.69`
33
-
34
- #### PR #106: Release v0.3.70: Fix Dependabot TypeScript minor version ignore
35
- ## Summary
36
-
37
- - Re-add `semver-minor` ignore for TypeScript in Dependabot config to prevent unwanted 5.8→5.9 bump PRs
38
- - Dependabot modifies `package.json` directly, bypassing the `~5.8.x` constraint — must be blocked at the Dependabot level
39
- - Addresses review feedback from PR #102 and closes Dependabot PR #104
40
- - Documentation updates: fix inaccuracies in CLAUDE.md and README.md, regenerate API docs
41
- - Remove misleading auto-merge comment, add CodeQL and SHA pinning guidance to CLAUDE.md
42
-
43
- ## Changes
44
-
45
- - `.github/dependabot.yml` - Re-add semver-minor to TypeScript ignore, clarify comments
46
- - `.github/workflows/validate-pr.yml` - Add validation to discover-examples job
47
- - `.github/workflows/claude-code-review.yml` - Update SHA version comment to v1.0.48
48
- - `CLAUDE.md` - Fix 7 documentation inaccuracies, add SHA pinning guidance
49
- - `README.md` - Add vue-automations and vue-jobs to examples table
50
- - `docs/` - Regenerated API docs and AI reference docs
51
-
52
- ## Test Results
53
-
54
- - **Lint**: Passed (0 errors, 1 warning)
55
- - **Unit tests**: 619/619 passed
56
- - **Build**: Successful
57
- - **E2E tests**: 11/11 example apps passed
58
-
59
- ## Security Review
60
-
61
- No source code changes — infrastructure and documentation only. No security concerns.
62
-
63
- ## Version
64
-
65
- v0.3.70
66
-
67
9
  #### PR #108: Release v0.3.76: Hostname validation security hardening
68
10
  ## Summary
69
11
  - **Security Fix**: Validate hostname against EEN domain allowlist to prevent token exfiltration via malicious base URL injection
@@ -91,48 +33,54 @@ v0.3.70
91
33
 
92
34
  🤖 Generated with [Claude Code](https://claude.com/claude-code)
93
35
 
94
- #### PR #94: Release v0.3.69: SSRF protection fix with test coverage
36
+ #### PR #110: fix: Security hardening - hostname validation and CI/CD pipeline
95
37
  ## Summary
96
- - Merges security fix from PR #93 (SSRF domain validation in `initMediaSession`)
97
- - Fixes broken unit tests caused by the domain validation (updated test domains from `example.com` to `eagleeyenetworks.com`)
98
- - Adds 2 new unit tests for domain validation coverage (untrusted domain rejection, `een.cloud` acceptance)
38
+
39
+ Release v0.3.79 - Security hardening fixes for three vulnerabilities identified in code review:
40
+
41
+ - **Hostname validation bypass**: Added DNS hostname character regex (`/^[a-z0-9]([a-z0-9.-]*[a-z0-9])?$/`) before `endsWith()` check in `isAllowedEenHostname()` to prevent bypass attacks like `evil.com/.eagleeyenetworks.com`
42
+ - **CI/CD branch restriction**: Added `head_branch == 'production'` check to npm-publish workflow to prevent publishing from non-production branches
43
+ - **Script injection prevention**: Moved `${{ }}` interpolation from shell `run:` blocks to `env:` blocks in test-release workflow at 3 locations
99
44
 
100
45
  ## Commits
101
- - `22aed68` Fix AUTH_BYPASS vulnerability in initMediaSession()
102
- - `b6d21d1` fix: Update media tests for SSRF domain validation and add coverage
46
+
47
+ - `d4e8a06` fix: harden hostname validation and CI/CD security
48
+ - `c870348` Update src/utils/hostname.ts
49
+ - `5a76991` Merge pull request #109
103
50
 
104
51
  ## Test Results
105
- - **Lint**: Passed (1 warning, 0 errors)
106
- - **Unit tests**: 619/619 passed
107
- - **Build**: Successful (v0.3.69)
108
- - **E2E tests**: 11/11 example apps passed
109
52
 
110
- ## Security Review
111
- The only source code change is the SSRF protection in `src/media/service.ts` which validates session URLs against allowed domains (`.eagleeyenetworks.com`, `.een.cloud`). This is a security improvement with no new vulnerabilities.
53
+ - **Lint**: 0 errors (1 pre-existing warning)
54
+ - **Unit tests**: 644 passed
55
+ - **Build**: Success
56
+ - **E2E tests**: 225 passed across all 11 example apps
57
+ - **Security review**: No HIGH-confidence vulnerabilities found
58
+
59
+ ## Files Changed
60
+
61
+ - `src/utils/hostname.ts` - Added hostname character validation regex
62
+ - `src/__tests__/auth.store.test.ts` - Added 5 test cases for malicious hostname bypass
63
+ - `.github/workflows/npm-publish.yml` - Added production branch restriction
64
+ - `.github/workflows/test-release.yml` - Fixed script injection at 3 locations
112
65
 
113
66
  ## Version
114
- `v0.3.69`
67
+
68
+ `0.3.79`
69
+
70
+ 🤖 Generated with [Claude Code](https://claude.com/claude-code)
115
71
 
116
72
 
117
73
  ### Detailed Changes
118
74
 
119
75
  #### Bug Fixes
120
- - fix: Repair broken JSDoc comment in hostname.ts
121
- - fix: Address code review concerns for PR #108
122
- - fix: harden hostname/port validation and fail-secure on tampered storage
123
- - fix: Add falsy guard to isAllowedEenHostname for robustness
124
- - fix: Use console.warn for rejected hostname validation messages
125
- - fix: Validate hostname against EEN domain allowlist to prevent token exfiltration
126
- - fix: Re-add semver-minor ignore for TypeScript in Dependabot
76
+ - fix: harden hostname validation and CI/CD security
127
77
 
128
78
  #### Other Changes
129
79
  - Update src/utils/hostname.ts
130
- - docs: Add @internal JSDoc tag to ALLOWED_DOMAINS constant
131
- - test: Add hostname validation tests for auth store security fix
132
80
 
133
81
  ### Links
134
82
  - [npm package](https://www.npmjs.com/package/een-api-toolkit)
135
- - [Full Changelog](https://github.com/klaushofrichter/een-api-toolkit/compare/v0.3.70...v0.3.78)
83
+ - [Full Changelog](https://github.com/klaushofrichter/een-api-toolkit/compare/v0.3.78...v0.3.79)
136
84
 
137
85
  ---
138
- *Released: 2026-02-12 20:28:23 CST*
86
+ *Released: 2026-02-14 07:56:49 CST*