Commit Graph

1918 Commits

Author SHA1 Message Date
GitHub Actions
892b89fc9d feat: break-glass security reset
Implement dual-registry container publishing to both GHCR and Docker Hub
for maximum distribution reach. Add emergency security reset endpoint
("break-glass" mechanism) to recover from ACL lockout situations.

Key changes:

Docker Hub + GHCR dual publishing with Cosign signing and SBOM
Emergency reset endpoint POST /api/v1/emergency/security-reset
Token-based authentication bypasses Cerberus middleware
Rate limited (5/hour) with audit logging
30 new security enforcement E2E tests covering ACL, WAF, CrowdSec,
Rate Limiting, Security Headers, and Combined scenarios
Fixed container startup permission issue (tmpfs directory ownership)
Playwright config updated with testIgnore for browser projects
Security: Token via CHARON_EMERGENCY_TOKEN env var (32+ chars recommended)
Tests: 689 passed, 86% backend coverage, 85% frontend coverage
2026-01-25 20:14:06 +00:00
Jeremy
e8f6812386 Merge branch 'main' into feature/beta-release 2026-01-25 12:15:05 -05:00
GitHub Actions
038561c602 chore(vscode): remove unnecessary YAML validation disable
Re-enable YAML validation to catch mistakes in workflow and compose
files. Remove empty exclude/association overrides that harm editor
performance.

Fixes review feedback on PR #550.
2026-01-25 16:13:10 +00:00
GitHub Actions
f5e618a912 fix(docker): use actual tmpfs for E2E test data
Replace misleading named volume with real tmpfs mount. E2E test data is
now truly ephemeral and fresh on every container start, with no state
leakage between test runs.

Fixes review feedback on PR #550.
2026-01-25 16:09:22 +00:00
GitHub Actions
07d35dcc89 fix(docker): improve world-writable permission check robustness
Replace brittle stat/regex check with find -perm -0002 which correctly
handles directories with sticky/setgid bits (e.g., mode 1777).

Use chmod o-w instead of chmod 755 to preserve special bits when fixing
permissions, only removing the world-writable bit.

Fixes review feedback from Copilot on PR #550.
2026-01-25 16:07:10 +00:00
GitHub Actions
ba900e20c5 chore(ci): add Docker Hub as secondary container registry
Publish Docker images to both Docker Hub (docker.io/wikid82/charon) and
GitHub Container Registry (ghcr.io/wikid82/charon) for maximum reach.

Add Docker Hub login with secret existence check for graceful fallback
Update docker/metadata-action to generate tags for both registries
Add Cosign keyless signing for both GHCR and Docker Hub images
Attach SBOM to Docker Hub via cosign attach sbom
Add Docker Hub signature verification to supply-chain-verify workflow
Update README with Docker Hub badges and dual registry examples
Update getting-started.md with both registry options
Supply chain security maintained: identical tags, signatures, and SBOMs
on both registries. PR images remain GHCR-only.
2026-01-25 16:04:42 +00:00
GitHub Actions
9a26fcaf88 fix: correct formatting in structured autonomy planning prompt 2026-01-25 15:16:45 +00:00
GitHub Actions
b7620a2d1e fix: update tool reference for editing feature documentation 2026-01-25 15:14:01 +00:00
GitHub Actions
3e3539ed6c fix: remove duplicate entries in Supervisor agent tools list 2026-01-25 15:10:16 +00:00
GitHub Actions
9c32108ac7 fix: add resilience for CrowdSec Hub API unavailability
Add 404 status code to fallback conditions in hub_sync.go so the
integration gracefully falls back to GitHub mirror when primary
hub-data.crowdsec.net returns 404.

Add http.StatusNotFound to fetchIndexHTTPFromURL fallback
Add http.StatusNotFound to fetchWithLimitFromURL fallback
Update crowdsec_integration.sh to check hub availability
Skip hub preset tests gracefully when hub is unavailable
Fixes CI failure when CrowdSec Hub API is temporarily unavailable
2026-01-25 14:50:14 +00:00
Jeremy
2db1685b74 Merge pull request #561 from Wikid82/renovate/feature/beta-release-weekly-non-major-updates
fix(deps): update weekly-non-major-updates (feature/beta-release)
2026-01-25 09:43:47 -05:00
renovate[bot]
dfffa66e36 fix(deps): update weekly-non-major-updates 2026-01-25 14:42:45 +00:00
Jeremy
fb31f08979 Merge pull request #560 from Wikid82/renovate/feature/beta-release-pin-dependencies
chore(deps): pin dependencies (feature/beta-release)
2026-01-25 09:40:32 -05:00
Jeremy
2ce4334107 Merge branch 'feature/beta-release' into renovate/feature/beta-release-pin-dependencies 2026-01-25 09:40:20 -05:00
renovate[bot]
91ce338ac7 chore(deps): pin dependencies 2026-01-25 14:40:08 +00:00
GitHub Actions
55fe64b7ae fix(ci): sanitize branch names in Docker image tags
Fix "invalid reference format" error in GitHub Actions workflows when
branch names contain forward slashes (e.g., feature/beta-release).

Add sanitization step to playwright.yml converting / to -
Update supply-chain-verify.yml with dynamic branch sanitization
Add sanitization step to supply-chain-pr.yml for artifact names
Branch feature/beta-release → tag feature-beta-release
Fixes Playwright E2E and supply chain security scan workflow failures
2026-01-25 14:39:40 +00:00
Jeremy
23082c8aae Merge pull request #559 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-25 09:39:05 -05:00
renovate[bot]
dc94499617 chore(deps): update actions/setup-go action to v6 2026-01-25 14:37:29 +00:00
Jeremy
8e354aeb47 Merge pull request #558 from Wikid82/renovate/feature/beta-release-actions-github-script-8.x
chore(deps): update actions/github-script action to v8 (feature/beta-release)
2026-01-25 09:35:41 -05:00
Jeremy
b144670c85 Merge pull request #557 from Wikid82/renovate/feature/beta-release-major-7-github-artifact-actions
chore(deps): update actions/download-artifact action to v7 (feature/beta-release)
2026-01-25 09:35:26 -05:00
Jeremy
92793df7f2 Merge pull request #556 from Wikid82/renovate/feature/beta-release-actions-checkout-6.x
chore(deps): update actions/checkout action to v6 (feature/beta-release)
2026-01-25 09:35:05 -05:00
renovate[bot]
39eab80d48 chore(deps): update actions/download-artifact action to v7 2026-01-25 14:35:01 +00:00
Jeremy
f80932b0d0 Merge pull request #555 from Wikid82/renovate/feature/beta-release-actions-cache-5.x
chore(deps): update actions/cache action to v5 (feature/beta-release)
2026-01-25 09:34:47 -05:00
Jeremy
64e199a290 Merge pull request #554 from Wikid82/renovate/feature/beta-release-paulhatch-semantic-version-6.x
chore(deps): update paulhatch/semantic-version action to v6 (feature/beta-release)
2026-01-25 09:34:22 -05:00
Jeremy
a434f84c3f Merge pull request #553 from Wikid82/renovate/feature/beta-release-major-6-github-artifact-actions
chore(deps): update github artifact actions to v6 (feature/beta-release) (major)
2026-01-25 09:33:57 -05:00
renovate[bot]
7391784a92 chore(deps): update actions/github-script action to v8 2026-01-25 14:33:34 +00:00
Jeremy
96d8cd710e Merge pull request #552 from Wikid82/renovate/feature/beta-release-actions-setup-node-6.x
chore(deps): update actions/setup-node action to v6 (feature/beta-release)
2026-01-25 09:33:29 -05:00
renovate[bot]
ae69f654a5 chore(deps): update actions/checkout action to v6 2026-01-25 14:33:25 +00:00
renovate[bot]
bec62cfd28 chore(deps): update actions/cache action to v5 2026-01-25 14:33:21 +00:00
renovate[bot]
13d39811fc chore(deps): update paulhatch/semantic-version action to v6 2026-01-25 14:32:06 +00:00
renovate[bot]
ae969dd568 chore(deps): update github artifact actions to v6 2026-01-25 14:32:02 +00:00
renovate[bot]
94c3583917 chore(deps): update actions/setup-node action to v6 2026-01-25 14:31:56 +00:00
github-actions[bot]
82296c2509 chore: move processed issue files to created/ 2026-01-25 14:10:00 +00:00
GitHub Actions
103f0e0ae9 fix: resolve WAF integration failure and E2E ACL deadlock
Fix integration scripts using wget-style curl options after Alpine→Debian
migration (PR #550). Add Playwright security test helpers to prevent ACL
from blocking subsequent tests.

Fix curl syntax in 5 scripts: -q -O- → -sf
Create security-helpers.ts with state capture/restore
Add emergency ACL reset to global-setup.ts
Fix fixture reuse bug in security-dashboard.spec.ts
Add security-helpers.md usage guide
Resolves WAF workflow "httpbin backend failed to start" error
2026-01-25 14:09:38 +00:00
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
aa74d37a3a fix(workflow): update QA Security workflow to include mandatory e2e image rebuild step 2026-01-25 07:58:16 +00:00
GitHub Actions
ac0746db31 fix(waf): correct invalid curl flags in coraza integration test
- Replace 'curl -q -O-' with 'curl -s' (valid silent mode flag)
- Remove redundant fallback since only one curl call is needed
- Fixes httpbin connectivity check failure in WAF tests
2026-01-25 06:39:52 +00:00
GitHub Actions
88ea0d567a fix: resolve merge conflicts and simplify branch strategy
Abort broken rebase (193 commits), use merge instead
Remove feature/beta-release from Renovate baseBranches
Simplify propagate workflow: main → development → feature/*
Fix duplicate lines in codeql.yml from corrupted merge
Fix duplicate entries in package.json
Resolve Dockerfile conflict (keep node:24.13.0-slim for Trixie)
Add .hadolint.yaml to ignore DL3008/DL3059 for Debian images
Refs: #550
2026-01-25 06:29:01 +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
GitHub Actions
69da357613 fix(docker): switch frontend builder from node:24.13.0-alpine to node:24.13.0-slim for improved compatibility 2026-01-25 05:44:14 +00:00
renovate[bot]
cf52054393 chore(deps): update weekly-non-major-updates 2026-01-25 05:42:39 +00:00
renovate[bot]
07d3f8bab4 chore(deps): update weekly-non-major-updates 2026-01-25 05:41:32 +00:00
renovate[bot]
55e88a861c fix(deps): update weekly-non-major-updates 2026-01-25 05:41:12 +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
6f670dd097 fix(dependencies): update @emnapi/core and @emnapi/runtime to version 1.8.1; update @napi-rs/wasm-runtime to version 1.1.1; add funding information 2026-01-25 04:22:21 +00:00
GitHub Actions
89ca4f258a fix(agents): update model version to 'claude-opus-4-5-20250514' across multiple agent files 2026-01-25 04:07:19 +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