Skip to content

Fix tooling - #104

Merged
atsk-joshua merged 5 commits into
masterfrom
fix-tooling
Aug 30, 2026
Merged

atsk-joshua merged 5 commits into
masterfrom
fix-tooling

Conversation

@atsk-joshua

Copy link
Copy Markdown
Member

Summary

This completes the support-tooling migration from Jekyll to Astro, removes remaining migration residue, restores Docker development, resolves dependency vulnerabilities, and strengthens CI and content validation.

It also adds stable deep links for every person on the About page, such as /about/#joshua-hansen.

What changed

Development and CI

  • Restored Docker development with Node 24, pnpm, live source mounting, and localhost:4000.
  • Hardened the container to run as a non-root user.
  • Updated and validated the Nix development environment.
  • Added consolidated pnpm test and pnpm validate commands.
  • Added dependency auditing and Docker builds to CI.
  • Added Astro-aware Prettier support and made formatting enforceable.
  • Made ESLint warnings fail validation.
  • Updated the README and blog-post issue template for Astro workflows.

Security and dependencies

  • Updated pnpm from 11.1.2 to 11.24.0.
  • Updated Astro, RSS, Mermaid, Sharp, js-yaml, ESLint, and affected transitive dependencies.
  • Migrated away from Astro’s deprecated Markdown plugin configuration.
  • Escaped JSON-LD serialization against script-termination injection.
  • Removed unused vulnerable npm/Yarn tooling from the Docker image.
  • Retired the expired DEF CON volunteer JSONP client.

The registry audit previously reported 27 advisories, including 14 high-severity findings. The updated dependency graph reports no known vulnerabilities.

Validation and migration cleanup

  • Added strict content schemas so unknown, obsolete, or misspelled front-matter fields fail the build.
  • Removed Jekyll metadata including layout, legacyUrls, legacySlug, old permalinks, and TOC fields.
  • Added duplicate volunteer and sponsor identity checks.
  • Expanded internal-link validation to check emitted routes, assets, fragments, and duplicate IDs.
  • Extended heading validation to schedule content.
  • Removed GitHub Pages files, raw Jekyll SCSS, dead components, duplicate content, and unreferenced assets.
  • Renamed the schedule catch-all route from legacyPage to schedulePage.

Stable person links

  • Added a required URL-safe slug to every volunteer profile.
  • Added durable URLs in the form /about/#<volunteer-slug>.
  • Made each displayed name a self-link with hover and keyboard-focus affordances.
  • Added target highlighting and header-safe scroll positioning.
  • Added regression coverage for invalid and duplicate volunteer slugs.
  • Documented that existing slugs must remain stable when names are edited.

Site fixes

  • Removed the duplicate Emily Soward profile.
  • Retired /defcon-volunteer/ and redirected it to the general volunteer application.
  • Removed the expired DEF CON 34 homepage promotion.
  • Fixed homepage handling of ongoing multi-day events.
  • Fixed schedule heading hierarchy and duplicated event/schedule content.
  • Centralized poster thumbnail behavior so it is emitted once instead of once per card.
  • Added the existing RSAC 2026 artwork to its event page.

A substantial portion of the diff is deterministic formatting after enabling the official Astro Prettier plugin.

Behavior changes

  • Docker development is available through docker compose up --build.
  • /defcon-volunteer/ redirects to the general volunteer form.
  • Person links use /about/#<slug>.
  • Content front matter is now strict.
  • GitHub Pages CNAME and .nojekyll files are no longer emitted.
  • The Nix flake supports x86-64 Linux, ARM64 Linux, and Apple Silicon macOS. Current nixos-unstable no longer supports Intel macOS.

Verification

  • pnpm validate
  • pnpm run audit:dependencies
  • nix flake check --no-build --all-systems
  • Docker image build
  • Docker Compose HTTP smoke test
  • Trivy repository and image scans
  • Desktop and mobile browser checks for About-page person links

Final results:

  • Astro: 0 errors, 0 warnings, 0 hints
  • 95 pages built
  • 50 redirects verified
  • More than 3,300 emitted internal references verified
  • 190 social-image references verified
  • No known package vulnerabilities
  • No high/critical container findings
  • No detected secrets or high/critical repository misconfigurations
  • No duplicate tracked file hashes

Comment thread scripts/check-content-identities.ts Fixed
@cloudflare-workers-and-pages

Copy link
Copy Markdown

Deploying aiv-website with  Cloudflare Pages  Cloudflare Pages

Latest commit: 0d3e85a
Status: ✅  Deploy successful!
Preview URL: https://3f75e183.aiv-website.pages.dev
Branch Preview URL: https://fix-tooling.aiv-website.pages.dev

View logs

@atsk-joshua
atsk-joshua merged commit e865778 into master Aug 30, 2026
6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants