jekyll-theme-zer0 1.13.0 → 1.13.1

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 300fd839d62b5d716dc62bde6853834fecca0b431871d818511f83b3b118586e
4
- data.tar.gz: 7faf9a32a6709bb8bd4cc5c9681910b9595c81761c2582224f71f6623e5573d7
3
+ metadata.gz: 8ad83858a690a41ecdcffeb9d1666bdb477c74f5dc0e203bc0059a56e7ed68a2
4
+ data.tar.gz: 88b906b270107cc25861394ff63b9772b9b1758c39315a2758bbe45f42ec00cc
5
5
  SHA512:
6
- metadata.gz: 5c41e56c171902d054122a1288a10e2a45998cfabd06231d28e78e027ffaa9fc79b7511a3c34a50d7b81ab4f4911797fed2be78891bb45bd0e977aa28d298634
7
- data.tar.gz: 143441cff23b9bec1bbf3222d4fcf21fb4949d4a9bf6394aff67c4cefb56e8da1bd71871c76ccdb900a78cc8f8623ce28c4bbcb7004357171e4f032bc02c8242
6
+ metadata.gz: a24b1b809afaff0913078bbdbf5ba74799c757d330203ef54f0bccc21e8d4fe82920430ce3d981a540bcea0ac89f8e31b1284eb92db60d0f89c3986b16891126
7
+ data.tar.gz: 01dd7a1a0ae1ab4f82936db64ecd509280c76714e80ae55be46c0f67dbca6c59efd5f7590960d11f46237380b6b680873f816e6bb72845d7726c24137b57e4c6
data/CHANGELOG.md CHANGED
@@ -5,6 +5,17 @@ All notable changes to this project will be documented in this file.
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
 
8
+ ## [1.13.1] - 2026-06-11
9
+
10
+ ### Changed
11
+ - Version bump: patch release
12
+
13
+ ### Commits in this release
14
+ - 583fa997 fix(infra): sanitize sensitive config keys before DOM injection (T-009) (#141)
15
+
16
+ ### Security
17
+ - **Admin config page sanitization (T-009)**: the hidden `<pre id="cfg-full-yaml">` element on the admin config page now has values masked for keys matching `api_key`, `secret`, `password`, `token`, and `phc_` (PostHog) prefixes via a new `sanitize_config_yaml` Liquid filter (`_plugins/sanitize_config_filter.rb`); the corresponding Playwright regression guard (`test/visual/security.spec.js`) is promoted from `test.fixme` to a live test
18
+
8
19
  ## [1.13.0] - 2026-06-11
9
20
 
10
21
  ### Changed
data/README.md CHANGED
@@ -2,7 +2,7 @@
2
2
  title: zer0-mistakes
3
3
  sub-title: AI-Native Jekyll Theme
4
4
  description: AI-native Jekyll theme for GitHub Pages — Docker-first development, AI-powered installation, multi-agent integration (Copilot, Codex, Cursor, Claude), AI preview-image generation, and AIEO content optimization with Bootstrap 5.3.
5
- version: 1.13.0
5
+ version: 1.13.1
6
6
  layout: landing
7
7
  tags:
8
8
  - jekyll
@@ -20,7 +20,7 @@ categories:
20
20
  - bootstrap
21
21
  - ai-tooling
22
22
  created: 2024-02-10T23:51:11.480Z
23
- lastmod: 2026-06-11T04:16:44.000Z
23
+ lastmod: 2026-06-11T21:37:24.000Z
24
24
  draft: false
25
25
  permalink: /
26
26
  slug: zer0
@@ -909,7 +909,7 @@ git push origin feature/awesome-feature
909
909
 
910
910
  | Metric | Value |
911
911
  |--------|-------|
912
- | **Current Version** | 1.13.0 ([RubyGems](https://rubygems.org/gems/jekyll-theme-zer0), [CHANGELOG](/CHANGELOG)) |
912
+ | **Current Version** | 1.13.1 ([RubyGems](https://rubygems.org/gems/jekyll-theme-zer0), [CHANGELOG](/CHANGELOG)) |
913
913
  | **Documented Features** | 43 ([Feature Registry](https://github.com/bamr87/zer0-mistakes/blob/main/_data/features.yml)) |
914
914
  | **Setup Time** | 2-5 minutes ([install.sh benchmarks](https://github.com/bamr87/zer0-mistakes/blob/main/install.sh)) |
915
915
  | **Documentation Pages** | 70+ ([browse docs](https://zer0-mistakes.com/pages/)) |
@@ -964,6 +964,6 @@ And these AI partners that make zer0-mistakes truly AI-native:
964
964
 
965
965
  **Built with ❤️ — and a little help from our AI partners — for the Jekyll community**
966
966
 
967
- **v1.13.0** • [Changelog](CHANGELOG.md) • [License](LICENSE) • [Contributing](CONTRIBUTING.md) • [AI Agent Guide](AGENTS.md)
967
+ **v1.13.1** • [Changelog](CHANGELOG.md) • [License](LICENSE) • [Contributing](CONTRIBUTING.md) • [AI Agent Guide](AGENTS.md)
968
968
 
969
969
 
data/_data/backlog.yml CHANGED
@@ -55,8 +55,8 @@
55
55
 
56
56
  meta:
57
57
  title: "zer0-mistakes Backlog"
58
- updated: 2026-06-10
59
- next_id: 17
58
+ updated: 2026-06-11
59
+ next_id: 18
60
60
 
61
61
  tasks:
62
62
  # --- Housekeeping (seeded so the loop has work on day one) ------------------
@@ -213,7 +213,7 @@ tasks:
213
213
 
214
214
  - id: T-009
215
215
  title: "Sanitize sensitive config keys from admin config-page DOM injection"
216
- status: open
216
+ status: done
217
217
  priority: P1
218
218
  area: infra
219
219
  risk: standard
@@ -231,7 +231,7 @@ tasks:
231
231
  - "The visible config display in the admin UI is unaffected (only the raw hidden element is sanitised)."
232
232
  links: { issue: null, pr: null, roadmap: null }
233
233
  created: 2026-06-01
234
- updated: 2026-06-01
234
+ updated: 2026-06-11
235
235
 
236
236
  - id: T-010
237
237
  title: "Complete v1.9 quickstart docs rewrite with getting-started guide and screenshots"
@@ -403,3 +403,25 @@ tasks:
403
403
  created: 2026-06-10
404
404
  updated: 2026-06-10
405
405
 
406
+ - id: T-017
407
+ title: "Fix yamllint violations in .github/workflows/version-bump.yml"
408
+ status: open
409
+ priority: P2
410
+ area: lint
411
+ risk: low
412
+ effort: S
413
+ source: audit
414
+ summary: >-
415
+ `.github/workflows/version-bump.yml` has ~30 trailing-space lines, two
416
+ indentation errors, and one brackets error that cause the `auto-version`
417
+ integration test (which runs yamllint) to fail in CI on every PR. Discovered
418
+ while babysitting PR #141 — the file was unchanged by that PR, confirming
419
+ the failures are pre-existing.
420
+ acceptance:
421
+ - "`yamllint -c .github/config/.yamllint.yml .github/workflows/version-bump.yml` exits 0."
422
+ - "`./scripts/test/integration/auto-version` passes the 'version-bump workflow syntax' check."
423
+ - "No functional change to the workflow logic."
424
+ links: { issue: null, pr: null, roadmap: null }
425
+ created: 2026-06-11
426
+ updated: 2026-06-11
427
+
@@ -0,0 +1,37 @@
1
+ # frozen_string_literal: true
2
+
3
+ # File: sanitize_config_filter.rb
4
+ # Path: _plugins/sanitize_config_filter.rb
5
+ # Purpose: Liquid filter that masks sensitive key-value pairs in raw YAML
6
+ # before the content is injected into the DOM. Used by the admin
7
+ # config page to sanitize <pre id="cfg-full-yaml">.
8
+ #
9
+ # Masked patterns:
10
+ # Key names: api_key, apikey, secret, password, token (case-insensitive)
11
+ # Value prefix: phc_ (PostHog project API keys)
12
+
13
+ module Jekyll
14
+ module SanitizeConfigFilter
15
+ # Matches YAML lines whose key name is a common secret identifier.
16
+ SENSITIVE_KEY_RE = /\A(\s*(?:api[_-]?key|secret|password|token)\s*:)/i.freeze
17
+ # Matches PostHog project API key values anywhere on a line.
18
+ PHC_VALUE_RE = /phc_[A-Za-z0-9]+/.freeze
19
+
20
+ def sanitize_config_yaml(input)
21
+ return input unless input.is_a?(String)
22
+
23
+ input.each_line.map do |line|
24
+ if SENSITIVE_KEY_RE.match?(line)
25
+ # Keep the key name and colon; replace everything after with [REDACTED]
26
+ line.sub(/(:\s*).*$/, '\1[REDACTED]')
27
+ elsif PHC_VALUE_RE.match?(line)
28
+ line.gsub(PHC_VALUE_RE, '[REDACTED]')
29
+ else
30
+ line
31
+ end
32
+ end.join
33
+ end
34
+ end
35
+ end
36
+
37
+ Liquid::Template.register_filter(Jekyll::SanitizeConfigFilter)
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: jekyll-theme-zer0
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.13.0
4
+ version: 1.13.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Amr Abdel
@@ -220,6 +220,7 @@ files:
220
220
  - _plugins/content_statistics_generator.rb
221
221
  - _plugins/obsidian_links.rb
222
222
  - _plugins/preview_image_generator.rb
223
+ - _plugins/sanitize_config_filter.rb
223
224
  - _plugins/search_and_sitemap_generator.rb
224
225
  - _plugins/theme_version.rb
225
226
  - _sass/components/_back-to-top.scss