Commit Graph

505 Commits

Author SHA1 Message Date
GitHub Actions
a41cfaae10 fix(integration): migrate wget-style curl syntax for Debian compatibility
After migrating base image from Alpine to Debian Trixie (PR #550),
integration test scripts were using wget-style options with curl
that don't work correctly on Debian.

Changed curl -q -O- (wget syntax) to curl -sf (proper curl):

waf_integration.sh
cerberus_integration.sh
rate_limit_integration.sh
crowdsec_startup_test.sh
install-go-1.25.5.sh
Also added future phase to plan for Playwright security test helpers
to prevent ACL deadlock issues during E2E testing.

Refs: #550
2026-01-25 09:17:50 +00:00
GitHub Actions
47bb0a995a fix(workflow): enhance branch propagation by adding support for feature branches from development 2026-01-25 06:14:19 +00:00
GitHub Actions
80e37b4920 Merge branch 'development' into feature/beta-release 2026-01-25 06:11:29 +00:00
GitHub Actions
b606e5c1ff fix(lint): update Hadolint configuration to enforce stricter error thresholds and add ignored rules 2026-01-25 05:46:14 +00:00
renovate[bot]
cf52054393 chore(deps): update weekly-non-major-updates 2026-01-25 05:42:39 +00:00
renovate[bot]
e1e840bac1 fix(deps): update weekly-non-major-updates 2026-01-25 05:39:59 +00:00
GitHub Actions
4fcca5ed7d fix(workflow): update base image in docker-build.yml from debian:bookworm-slim to debian:trixie-slim to resolve build inconsistency 2026-01-25 05:08:14 +00:00
GitHub Actions
978f698570 fix(security): remove hardcoded encryption keys from docker compose files
Replace hardcoded CHARON_ENCRYPTION_KEY with environment variable
substitution using Docker Compose required variable syntax.

docker-compose.playwright.yml: use ${CHARON_ENCRYPTION_KEY:?...}
docker-compose.e2e.yml: use ${CHARON_ENCRYPTION_KEY:?...}
e2e-tests.yml: add ephemeral key generation per CI run
.env.test.example: document the requirement prominently
Security: The old key exists in git history and must never be used
in production. Each CI run now generates a unique ephemeral key.

Refs: OWASP A02:2021 - Cryptographic Failures
2026-01-25 03:50:12 +00:00
GitHub Actions
56e3e70fa2 fix(ci): tighten minor_pattern regex in auto-versioning
The previous pattern '/(feat|feat\\()/)' was too broad and could
match any commit containing 'feat' substring (like 'defeat', 'feature').

Changed to '/^feat(\\(.+\\))?:/' which properly matches only
Conventional Commits format: 'feat:' or 'feat(scope):'
2026-01-24 23:19:59 +00:00
GitHub Actions
bef78c93d3 chore: remove backup workflow file from .github/workflows
Backup files in workflows/ add noise and confusion. The file can be
recovered from git history if needed.
2026-01-24 23:18:29 +00:00
GitHub Actions
e8fe98b184 fix(ci): add fallback for grep in security-weekly-rebuild
grep returns exit code 1 when no matches are found, which can fail
the workflow unexpectedly. Added fallback echo message.
2026-01-24 23:17:57 +00:00
GitHub Actions
21112d406a fix(ci): update security-weekly-rebuild to use Debian Trixie
- Change base image from debian:bookworm-slim to debian:trixie-slim
- Rename step id from 'caddy' to 'base-image' (more accurate)
- Update output reference from steps.caddy to steps.base-image
- Remove stale Alpine reference
2026-01-24 23:16:43 +00:00
GitHub Actions
2edd3de9a0 fix(ci): use --pull=never for PR image verification
On PRs, images are loaded locally but not pushed to registry.
Add --pull=never to prevent Docker from trying to fetch the
image from ghcr.io, which fails with 'manifest unknown'.

Modified 4 docker commands:
- Caddy version check (docker run)
- Caddy binary extraction (docker create)
- CrowdSec version check (docker run)
- CrowdSec binary extraction (docker create)
2026-01-24 23:04:11 +00:00
GitHub Actions
3ef09d44b7 fix(ci): increase container health timeout for Debian image
Debian-based image takes longer to start than Alpine due to:
- Larger base image
- gosu and CrowdSec built from source
- Additional package dependencies

Increase timeout from 120s to 180s to accommodate slower startup.
2026-01-24 22:58:59 +00:00
GitHub Actions
807112de71 chore(ci): auto-sync development to nightly before build
Update nightly-build.yml to automatically merge changes from development
branch to nightly before running the build. This enables a workflow where
PRs only need to target development, and nightly builds propagate
automatically.

Add sync-development-to-nightly job that runs first
Remove push trigger on nightly branch (sync handles updates)
All jobs now explicitly checkout nightly branch after sync
Uses fast-forward merge or hard reset if diverged
2026-01-24 22:22:40 +00:00
GitHub Actions
b77c9b53b5 fix(ci): use lowercase image name for GHCR in nightly build
GHCR stores images with lowercase names only. The SBOM action was using
the mixed-case github.repository value which caused Syft to fail when
trying to pull the image.

Add IMAGE_NAME_LC environment variable with lowercase image name
Update SBOM action, Trivy scan, and docker commands to use lowercase
Applied to all jobs: build-and-push-nightly, test-nightly-image,
verify-nightly-supply-chain
Fixes nightly-build.yml workflow failure in "Generate SBOM" step
2026-01-24 22:22:40 +00:00
GitHub Actions
4d816f1e47 chore(workflow): add inputs for manual trigger reason and skip tests in nightly build 2026-01-24 22:22:40 +00:00
GitHub Actions
710d729022 chore: replace wget with curl in various scripts for consistency and reliability
- Updated WafConfig.tsx to correct regex for common bad bots.
- Modified cerberus_integration.sh to use curl instead of wget for backend readiness check.
- Changed coraza_integration.sh to utilize curl for checking httpbin backend status.
- Updated crowdsec_startup_test.sh to use curl for LAPI health check.
- Replaced wget with curl in install-go-1.25.5.sh for downloading Go.
- Modified rate_limit_integration.sh to use curl for backend readiness check.
- Updated waf_integration.sh to replace wget with curl for checking httpbin backend status.
2026-01-24 22:22:39 +00:00
GitHub Actions
154c43145d chore: add Playwright E2E coverage with Codecov integration
Integrate @bgotink/playwright-coverage for E2E test coverage tracking:

Install @bgotink/playwright-coverage package
Update playwright.config.js with coverage reporter
Update test file imports to use coverage-enabled test function
Add e2e-tests.yml coverage artifact upload and merge job
Create codecov.yml with e2e flag configuration
Add E2E coverage skill and VS Code task
Coverage outputs: HTML, LCOV, JSON to coverage/e2e/
CI uploads merged coverage to Codecov with 'e2e' flag

Enables unified coverage view across unit and E2E tests
2026-01-20 06:11:59 +00:00
GitHub Actions
e0a39518ba chore: migrate Docker base images from Alpine to Debian Trixie
Migrated all Docker stages from Alpine 3.23 to Debian Trixie (13) to
address critical CVE in Alpine's gosu package and improve security
update frequency.

Key changes:

Updated CADDY_IMAGE to debian:trixie-slim
Added gosu-builder stage to compile gosu 1.17 from source with Go 1.25.6
Migrated all builder stages to golang:1.25-trixie
Updated package manager from apk to apt-get
Updated user/group creation to use groupadd/useradd
Changed nologin path from /sbin/nologin to /usr/sbin/nologin
Security impact:

Resolved gosu Critical CVE (built from source eliminates vulnerable Go stdlib)
Reduced overall CVE count from 6 (bookworm) to 2 (trixie)
Remaining 2 CVEs are glibc-related with no upstream fix available
All Go binaries verified vulnerability-free by Trivy and govulncheck
Verification:

E2E tests: 243 passed (5 pre-existing failures unrelated to migration)
Backend coverage: 87.2%
Frontend coverage: 85.89%
Pre-commit hooks: 13/13 passed
TypeScript: 0 errors
Refs: CVE-2026-0861 (glibc, no upstream fix - accepted risk)
2026-01-20 06:11:59 +00:00
GitHub Actions
00ff546495 chore(e2e): implement Phase 0 E2E testing infrastructure
Add comprehensive E2E testing infrastructure including:

docker-compose.playwright.yml for test environment orchestration
TestDataManager utility for per-test namespace isolation
Wait helpers for flaky test prevention
Role-based auth fixtures for admin/user/guest testing
GitHub Actions e2e-tests.yml with 4-shard parallelization
Health check utility for service readiness validation
Phase 0 of 10-week E2E testing plan (Supervisor approved 9.2/10)
All 52 existing E2E tests pass with new infrastructure
2026-01-20 06:11:59 +00:00
renovate[bot]
82e02482ce chore(deps): update weekly-non-major-updates 2026-01-19 21:16:19 +00:00
renovate[bot]
1665309743 chore(deps): update weekly-non-major-updates 2026-01-19 21:16:08 +00:00
renovate[bot]
962d933601 fix(deps): update weekly-non-major-updates 2026-01-16 21:39:53 +00:00
GitHub Actions
d9c56d2e6b fix: update semantic versioning rules to prevent automated major bumps 2026-01-16 04:28:50 +00:00
GitHub Actions
b395610158 feat: enhance auto-versioning and docker build workflows with improved semantic versioning patterns 2026-01-16 04:13:07 +00:00
GitHub Actions
0ddb3aabb6 fix: update Go version from 1.25.5 to 1.25.6 in workflow files 2026-01-16 03:43:13 +00:00
GitHub Actions
8d954c3b29 fix: update Go version to 1.25.6 and modify build step in CodeQL workflow 2026-01-16 03:41:10 +00:00
GitHub Actions
cbd9bb48f5 chore: remove unused pull-requests permission from auto-versioning workflow
Remove unused pull-requests: write permission from auto-versioning workflow.
The workflow uses GitHub Release API which only requires contents: write
permission. This follows the principle of least privilege.

Changes:
- Removed unused pull-requests: write permission
- Added documentation for cancel-in-progress: false setting
- Created backup of original workflow file
- QA verification complete with all security checks passing

Security Impact:
- Reduces attack surface by removing unnecessary permission
- Maintains functionality (no breaking changes)
- Follows OWASP and CIS security best practices

Related Issues:
- Fixes GH013 repository rule violation on tag creation
- CVE-2024-45337 in build cache (fix available, not in production)
- CVE-2025-68156 in CrowdSec awaiting upstream fix

QA Report: docs/reports/qa_report.md
2026-01-16 02:34:44 +00:00
GitHub Actions
add4e8e8a5 chore: fix CI/CD workflow linter config and documentation
Linter Configuration Updates:

Add version: 2 to .golangci.yml for golangci-lint v2 compatibility
Scope errcheck exclusions to test files only via path-based rules
Maintain production code error checking while allowing test flexibility
CI/CD Documentation:

Fix CodeQL action version comment in security-pr.yml (v3.28.10 → v4)
Create workflow modularization specification (docs/plans/workflow_modularization_spec.md)
Document GitHub environment protection setup for releases
Verification:

Validated linter runs successfully with properly scoped rules
Confirmed all three workflows (playwright, security-pr, supply-chain-pr) are properly modularized
2026-01-15 20:35:43 +00:00
GitHub Actions
21d6b71d8f fix(ci): remove environment configuration from goreleaser job 2026-01-15 19:49:20 +00:00
GitHub Actions
753b694dbd fix(ci): skip SBOM/Trivy in docker-build for feature branch pushes 2026-01-15 19:44:52 +00:00
GitHub Actions
cd0385d770 fix(ci): load docker image locally for feature branch pushes
Feature branch pushes were failing to save artifacts because the image
was pushed to GHCR but not loaded locally. Multi-platform builds
cannot use load:true, so feature branch pushes now build single-platform.
2026-01-15 16:50:46 +00:00
Jeremy
3b9502ebc5 Merge pull request #539 from Wikid82/renovate/feature/beta-release-github-codeql-action-4.x
chore(deps): update github/codeql-action action to v4 (feature/beta-release)
2026-01-15 11:49:32 -05:00
Jeremy
14f8d0f91b Merge branch 'feature/beta-release' into renovate/feature/beta-release-node-24.x 2026-01-15 11:48:49 -05:00
Jeremy
6cf7aecec3 Merge pull request #537 from Wikid82/renovate/feature/beta-release-node-22.x
chore(deps): update dependency node to v22 (feature/beta-release)
2026-01-15 11:48:18 -05:00
Jeremy
1f51bd718f Merge branch 'feature/beta-release' into renovate/feature/beta-release-anchore-scan-action-7.x 2026-01-15 11:47:46 -05:00
Jeremy
30e5cc8e98 Merge branch 'feature/beta-release' into renovate/feature/beta-release-anchore-scan-action-6.x 2026-01-15 11:47:07 -05:00
Jeremy
2b94cd99fd Merge pull request #534 from Wikid82/renovate/feature/beta-release-anchore-scan-action-5.x
chore(deps): update anchore/scan-action action to v5 (feature/beta-release)
2026-01-15 11:46:43 -05:00
Jeremy
ae33cffb1a Merge branch 'feature/beta-release' into renovate/feature/beta-release-actions-setup-node-6.x 2026-01-15 11:46:08 -05:00
Jeremy
6f8d345e5b Merge branch 'feature/beta-release' into renovate/feature/beta-release-actions-setup-node-5.x 2026-01-15 11:45:11 -05:00
Jeremy
6447901820 Merge pull request #531 from Wikid82/renovate/feature/beta-release-actions-setup-go-6.x
chore(deps): update actions/setup-go action to v6 (feature/beta-release)
2026-01-15 11:44:38 -05:00
renovate[bot]
b27134dacc chore(deps): update actions/download-artifact action to v7 2026-01-15 16:43:26 +00:00
Jeremy
ef1f10b082 Merge pull request #528 from Wikid82/renovate/feature/beta-release-major-5-github-artifact-actions
chore(deps): update actions/download-artifact action to v5 (feature/beta-release)
2026-01-15 11:41:57 -05:00
renovate[bot]
29e577b976 chore(deps): update github/codeql-action action to v4 2026-01-15 16:40:59 +00:00
renovate[bot]
c6064f9bc0 chore(deps): update dependency node to v24 2026-01-15 16:40:53 +00:00
renovate[bot]
04b76329c4 chore(deps): update dependency node to v22 2026-01-15 16:40:48 +00:00
renovate[bot]
08bebd5f6f chore(deps): update actions/setup-node action to v6 2026-01-15 16:40:41 +00:00
renovate[bot]
3e50b26a1f chore(deps): update actions/setup-node action to v5 2026-01-15 16:40:35 +00:00
renovate[bot]
1497336d11 chore(deps): update actions/setup-go action to v6 2026-01-15 16:40:29 +00:00