Commit Graph

1763 Commits

Author SHA1 Message Date
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
4d65f90716 Merge pull request #535 from Wikid82/renovate/feature/beta-release-anchore-scan-action-6.x
chore(deps): update anchore/scan-action action to v6 (feature/beta-release)
2026-01-15 11:47:21 -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
ab4277335a Merge pull request #533 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-15 11:46:21 -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
9d76c33992 Merge pull request #532 from Wikid82/renovate/feature/beta-release-actions-setup-node-5.x
chore(deps): update actions/setup-node action to v5 (feature/beta-release)
2026-01-15 11:45:29 -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
Jeremy
2a744fc482 Merge pull request #530 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-15 11:44:12 -05:00
Jeremy
df1239a9c6 Merge branch 'feature/beta-release' into renovate/feature/beta-release-major-7-github-artifact-actions 2026-01-15 11:43:46 -05:00
renovate[bot]
b27134dacc chore(deps): update actions/download-artifact action to v7 2026-01-15 16:43:26 +00:00
Jeremy
9923719049 Merge pull request #529 from Wikid82/renovate/feature/beta-release-major-6-github-artifact-actions
chore(deps): update actions/download-artifact action to v6 (feature/beta-release)
2026-01-15 11:42:47 -05:00
Jeremy
7808648aa3 Merge branch 'feature/beta-release' into renovate/feature/beta-release-major-6-github-artifact-actions 2026-01-15 11:42:38 -05: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
Jeremy
0b5b6ce256 Merge pull request #527 from Wikid82/renovate/feature/beta-release-actions-checkout-6.x
chore(deps): update actions/checkout action to v6 (feature/beta-release)
2026-01-15 11:41:24 -05:00
Jeremy
6093d8fc21 Merge branch 'feature/beta-release' into renovate/feature/beta-release-actions-checkout-6.x 2026-01-15 11:40:54 -05: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
renovate[bot]
baf971b54f chore(deps): update actions/download-artifact action to v6 2026-01-15 16:40:17 +00:00
renovate[bot]
79a5f27272 chore(deps): update actions/download-artifact action to v5 2026-01-15 16:40:10 +00:00
Jeremy
04948d902f Merge pull request #526 from Wikid82/renovate/feature/beta-release-actions-checkout-5.x
chore(deps): update actions/checkout action to v5 (feature/beta-release)
2026-01-15 11:40:05 -05:00
renovate[bot]
d31a5fd3b8 chore(deps): update actions/checkout action to v6 2026-01-15 16:40:03 +00:00
renovate[bot]
84c2b22e49 chore(deps): update actions/checkout action to v5 2026-01-15 16:39:57 +00:00
Jeremy
5e89275254 Merge pull request #525 from Wikid82/renovate/feature/beta-release-weekly-non-major-updates
fix(deps): update weekly-non-major-updates (feature/beta-release)
2026-01-15 11:38:33 -05:00
renovate[bot]
e1c6c6dcf9 chore(deps): update anchore/scan-action action to v7 2026-01-15 16:35:55 +00:00
renovate[bot]
028233f378 chore(deps): update anchore/scan-action action to v6 2026-01-15 16:35:48 +00:00
renovate[bot]
e9648ca058 chore(deps): update anchore/scan-action action to v5 2026-01-15 16:35:41 +00:00
renovate[bot]
7a55cb0be9 fix(deps): update weekly-non-major-updates 2026-01-15 16:34:35 +00:00
Jeremy
b0d531b4de Merge branch 'main' into feature/beta-release 2026-01-15 11:23:49 -05:00
Jeremy
021eacf4ea Update baseBranches in renovate.json configuration 2026-01-15 11:23:28 -05:00
Jeremy
0346ae2558 Merge branch 'main' into feature/beta-release 2026-01-15 11:20:58 -05:00
Jeremy
2c779c8ef1 Rename baseBranchPatterns to baseBranches 2026-01-15 11:20:40 -05:00
Jeremy
3579f816c5 Merge branch 'main' into feature/beta-release 2026-01-15 11:16:32 -05:00
Jeremy
2e09dbb4f4 Add feature branch pattern to Renovate config 2026-01-15 11:15:47 -05:00
GitHub Actions
07796bf610 fix(ci): enable workflow_run triggers for all push branches
Update branch triggers and downstream workflow logic to support all
branches defined in docker-build.yml (main, development, feature/**).

Changes:

docker-build.yml: Expand branch glob to feature/**, use branch-based tags
playwright.yml: Replace is_beta_push with generic is_push detection
security-pr.yml: Same branch-agnostic pattern
supply-chain-pr.yml: Same pattern, skip PR comments for push events
The workflows now support any push that triggers docker-build:

main branch → tag: latest
development branch → tag: dev
feature/* branches → tag: {branch-name}
Pull requests → tag: pr-{number}
Dynamic artifact naming:

Push events: push-image (shared across all branches)
Pull requests: pr-image-{number}
This ensures CI/CD pipelines work for stable releases, bug fixes,
and new feature development without hardcoded branch names.
2026-01-15 16:07:40 +00:00
GitHub Actions
3590553519 chore(ci): comprehensive CI/CD audit fixes per best practices
Implements all 13 fixes identified in the CI/CD audit against
github-actions-ci-cd-best-practices.instructions.md

Critical fixes:

Remove hardcoded encryption key from playwright.yml (security)
Fix artifact filename mismatch in supply-chain-pr.yml (bug)
Pin GoReleaser to ~> v2.5 instead of latest (supply chain)
High priority fixes:

Upgrade CodeQL action from v3 to v4 in supply-chain-pr.yml
Add environment protection for release workflow
Fix shell variable escaping ($$ → $) in release-goreleaser.yml
Medium priority fixes:

Add timeout-minutes to playwright.yml (20 min)
Add explicit permissions to quality-checks.yml
Add timeout-minutes to codecov-upload.yml jobs (15 min)
Fix benchmark.yml permissions (workflow-level read, job-level write)
Low priority fixes:

Add timeout-minutes to docs.yml jobs (10/5 min)
Add permissions block to docker-lint.yml
Add timeout-minutes to renovate.yml (30 min)
2026-01-15 15:25:58 +00:00
GitHub Actions
0892637164 chore(ci): modularize post-build testing into independent workflows
Separate PR-specific tests from docker-build.yml into dedicated workflows
that trigger via workflow_run. This creates a cleaner CI architecture where:

playwright.yml: E2E tests triggered after docker-build completes
security-pr.yml: Trivy binary scanning for PRs
supply-chain-pr.yml: SBOM generation + Grype vulnerability scanning
2026-01-15 15:00:55 +00:00
GitHub Actions
9b3c7eaeae fix(ci): detect beta-release branch correctly for PR events
The skip condition used github.ref to detect the beta-release branch,
but for PRs github.ref is "refs/pull/N/merge", not the branch name.

Added github.head_ref to env variables for PR branch detection
Updated condition to check both REF and HEAD_REF
This ensures E2E tests run for PRs from feature/beta-release branch
2026-01-15 06:18:35 +00:00
GitHub Actions
19a34201bf fix(ci): use valid 32-byte base64 encryption key for E2E tests
The DNS provider API endpoints were returning 404 in CI because the
encryption service failed to initialize with an invalid key.

Changed CHARON_ENCRYPTION_KEY from plain text to valid base64 string
Key "dGVzdC1lbmNyeXB0aW9uLWtleS1mb3ItY2ktMzJieXQ=" decodes to 32 bytes
Without valid encryption key, DNS provider routes don't register
This was causing all dns-provider-types.spec.ts tests to fail
Root cause: AES-256-GCM requires exactly 32 bytes for the key
2026-01-15 06:02:42 +00:00
GitHub Actions
269d31c252 fix(tests): correct Playwright locator for Script DNS provider field
The E2E test "should show script path field when Script type is selected"
was failing because the locator didn't match the actual UI field.

Update locator from /create/i to /script path/i
Update placeholder matcher from /create-dns/i to /dns-challenge.sh/i
Matches actual ScriptProvider field: label="Script Path",
placeholder="/scripts/dns-challenge.sh"
Also includes skill infrastructure for Playwright (separate feature):

Add test-e2e-playwright.SKILL.md for non-interactive test execution
Add run.sh script with argument parsing and report URL output
Add VS Code tasks for skill execution and report viewing
2026-01-15 05:24:54 +00:00
GitHub Actions
a0314066cd fix: update Renovate token configuration to fallback on GITHUB_TOKEN 2026-01-15 03:24:51 +00:00
GitHub Actions
bb14a5a1e3 fix(tests): change console.error to console.log for login failure messages
feat(tests): update Playwright configuration to include GitHub reporter and adjust base URL handling
2026-01-15 03:19:59 +00:00
GitHub Actions
1426c6f885 docs: complete feature documentation rewrite
Comprehensive documentation overhaul for Charon features:

Rewrite features.md as marketing overview (87% reduction)
Create comprehensive dns-challenge.md for new DNS feature
Expand 18 feature stub pages into complete documentation:
SSL certificates, CrowdSec, WAF, ACLs, rate limiting
Security headers, proxy headers, web UI, Docker integration
Caddyfile import, logs, WebSocket, backup/restore
Live reload, localization, API, UI themes, supply chain security
Update README.md with DNS Challenge in Top Features
Total: ~2,000+ lines of new user-facing documentation

Refs: #21, #461
2026-01-15 02:50:06 +00:00
GitHub Actions
8ef033d5a9 docs: rewrite features.md and add DNS challenge documentation
Complete documentation overhaul for DNS Challenge Support feature (PR #461):

Rewrite features.md as marketing overview (87% reduction: 1,952 → 249 lines)
Organize features into 8 logical categories with "Learn More" links
Add comprehensive dns-challenge.md with:
15+ supported DNS providers (Cloudflare, Route53, DigitalOcean, etc.)
Step-by-step setup guides
Provider-specific configuration
Manual DNS challenge workflow
Troubleshooting section
Create 18 feature documentation stub pages
Update README.md with DNS Challenge in Top Features section
Refs: #21, #461
2026-01-15 02:19:37 +00:00
GitHub Actions
bc9c6e2abd feat: Add end-to-end tests for DNS Provider Types and UI interactions
- Implement API tests for DNS Provider Types, validating built-in and custom providers.
- Create UI tests for provider selection, ensuring all types are displayed and descriptions are shown.
- Introduce fixtures for consistent test data across DNS Provider tests.
- Update manual DNS provider tests to improve structure and accessibility checks.
2026-01-15 01:37:21 +00:00
GitHub Actions
2f44da2c34 feat(security): add plugin signature allowlisting and security hardening
Implement Phase 3 of Custom DNS Provider Plugin Support with comprehensive
security controls for external plugin loading.

Add CHARON_PLUGIN_SIGNATURES env var for SHA-256 signature allowlisting
Support permissive (unset), strict ({}), and allowlist modes
Add directory permission verification (reject world-writable)
Configure container with non-root user and read-only plugin mount option
Add 22+ security tests for permissions, signatures, and allowlist logic
Create plugin-security.md operator documentation
Security controls:

Signature verification with sha256: prefix requirement
World-writable directory rejection
Non-root container execution (charon user UID 1000)
Read-only mount support for production deployments
Documented TOCTOU mitigation with atomic deployment workflow
2026-01-14 19:59:41 +00:00
GitHub Actions
f83e613613 feat: Add DNS provider documentation and enhance provider form with new fields
- Created a comprehensive documentation file for DNS provider types, including RFC 2136, Webhook, and Script providers, detailing their use cases, configurations, and security notes.
- Updated the DNSProviderForm component to handle new field types including select and textarea for better user input management.
- Enhanced the DNS provider schemas to include new fields for script execution, webhook authentication, and RFC 2136 configurations, improving flexibility and usability.
2026-01-14 19:16:41 +00:00
GitHub Actions
77a020b4db feat: registry-driven DNS provider type discovery
Phase 1 of Custom DNS Provider Plugin Support: the /api/v1/dns-providers/types
endpoint now returns types dynamically from the dnsprovider.Global() registry
instead of a hardcoded list.

Backend handler queries registry for all provider types, metadata, and fields
Response includes is_built_in flag to distinguish plugins from built-ins
Frontend types updated with DNSProviderField interface and new response shape
Fixed flaky WAF exclusion test (isolated file-based SQLite DB)
Updated operator docs for registry-driven discovery and plugin installation
Refs: #461
2026-01-14 18:05:46 +00:00