Skip to content

feat(m13): webhook HMAC, secrets/config injection, reliability, promote#11

Merged
cursor[bot] merged 5 commits into
mainfrom
cursor/m13-production-hardening-features-b923
Jul 16, 2026
Merged

feat(m13): webhook HMAC, secrets/config injection, reliability, promote#11
cursor[bot] merged 5 commits into
mainfrom
cursor/m13-production-hardening-features-b923

Conversation

@jmjava

@jmjava jmjava commented Jul 15, 2026

Copy link
Copy Markdown
Owner

Summary

Milestone 13 production-hardening foundations with three polish iterations: features, bugfixes, then more tests + rough-edge cleanup.

Latest polish

  • Webhook fail-closed when a named Secret is configured but missing (503); kubeconfig-unavailable still allows local unit tests
  • Promote apps-csv result so changed-app-only PipelineRuns promote correctly
  • Helm teams volume projects tekton-dag-teams-<name>/teams/<name>/team.yaml
  • Docker images require staged tekton-dag-common (orchestrator + new GUI publish script)
  • Volume name collisions disambiguated after DNS-1123 truncation
  • More tests: registries promote resolution, real StackResolver injection-status, webhook missing secret, GUI allow-list, sanitize/collision, apps-csv wiring

Test counts (local regression exit 0)

Suite Tests
Orchestrator 98
tekton-dag-common 47
Management GUI backend 61

Local cluster follow-up

See DO-THIS-LOCAL.md.

Open in Web Open in Cursor 

cursoragent and others added 5 commits July 15, 2026 23:29
Add four production-hardening foundations aligned with Milestone 13:

1. GitHub webhook HMAC verification (X-Hub-Signature-256) with env or
   K8s Secret resolution; unsigned allowed only when no secret is set.
2. Stack secrets/config schema + deploy-full-stack injection and
   pre-deploy Secret validation; GET /api/apps/<app>/injection-status.
3. Pipeline reliability: timeouts and max-retries on PipelineRuns,
   retries on compile/containerize, transient failure classifier and
   per-tool resource profiles in tekton-dag-common.
4. stack-promote pipeline/task, registries.yaml, and POST /api/run
   mode=promote with optional approval gate.

Includes unit tests for new helpers, builders, and routes.

Co-authored-by: John Menke <jmjava@gmail.com>
Add DO-THIS-LOCAL.md for cluster/E2E follow-up when agents only ran
--local-only. Expand offline coverage: JSON Schema fixture validation,
Tekton YAML structure asserts (retries/promote/validate-secrets),
Newman promote + injection-status requests, and extra route tests for
approval/reliability forwarding.

Co-authored-by: John Menke <jmjava@gmail.com>
Iteration fixes from review:
- injection-status uses find_app so secrets/config are not dropped
- promote splits comma-separated apps; mounts dockerconfig for creds
- registries.yaml resolves target_registry/credentials by environment
- k8s list Secret/ConfigMap errors propagate (503) instead of false missings
- deploy-full-stack validates ConfigMaps; sanitizes volume names
- Helm + raw Deployment get PIPELINE_TIMEOUT/MAX_RETRIES/webhook/registries
- Management GUI BFF exposes /api/teams/<team>/apps/<app>/injection-status
- Clarify max-retries is audit-only (Tekton retries stay fixed at 2)

Co-authored-by: John Menke <jmjava@gmail.com>
Polish pass:
- Webhook: named Secret missing → 503; unavailable kubeconfig still allows
  local tests; status API for secret resolution
- Promote: resolve-stack-inline emits apps-csv so changed-app-only runs work
- Helm: project per-team ConfigMaps into /teams/<name>/team.yaml
- Docker: require staged tekton-dag-common; GUI publish script + Dockerfile
- Volume names: disambiguate collisions after truncation
- Tests: registries promote resolution, real StackResolver injection-status,
  webhook missing secret, GUI allow-list, sanitize/collision, apps-csv wiring

Co-authored-by: John Menke <jmjava@gmail.com>
Add What's new table, mark M13 Partial, document promote pipeline,
and list remaining production-hardening work.

Co-authored-by: John Menke <jmjava@gmail.com>
@cursor
cursor Bot marked this pull request as ready for review July 16, 2026 02:19
@cursor
cursor Bot merged commit 8de5cd0 into main Jul 16, 2026
2 checks passed
@cursor
cursor Bot deleted the cursor/m13-production-hardening-features-b923 branch July 16, 2026 02:19
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