Skip to content

Vendor PromClick as a Digitalis.io distribution (attribution, CI, hardening)#1

Merged
digiserg merged 2 commits into
mainfrom
feat/vendor-digitalis-attribution-ci
Jul 8, 2026
Merged

Vendor PromClick as a Digitalis.io distribution (attribution, CI, hardening)#1
digiserg merged 2 commits into
mainfrom
feat/vendor-digitalis-attribution-ci

Conversation

@digiserg

@digiserg digiserg commented Jul 8, 2026

Copy link
Copy Markdown
Collaborator

Summary

Packages the upstream Apache-2.0 PromClick project as a Digitalis.io distribution, preserving the original owner's licence attribution, and adds container + Helm CI.

Licensing & attribution (Apache-2.0)

  • New NOTICE crediting the upstream PromClick Authors (Mateusz Darmetko/hinskii, Maciej Bekas, Pavel Kravtsov) and recording Digitalis modifications per §4.
  • LICENSE.md keeps the original copyright and adds a Digitalis modifications line.
  • README gains a Digitalis logo header, an Attribution section linking upstream, and a Contact/License block. Original credit stays prominent.

Vendoring

  • Image refs repointed quay.io/hinski/promclickghcr.io/digitalis-io/promclick (Helm values, docker-compose.yaml, README).
  • Clone URLs and Helm oci:// pull path → digitalis-io org.
  • Helm chart bumped to 1.1.0 with home/sources/maintainers metadata (upstream retained in sources).
  • New CHANGELOG.md (Keep a Changelog).

CI — build containers & charts

  • New .github/workflows/build.yml: multi-arch (amd64/arm64) image build, publishes to ghcr.io/digitalis-io/promclick on main + v* tags, manual dispatch; PRs build without pushing. Actions SHA-pinned, timeout-minutes, concurrency, least-privilege perms.
  • Dockerfile cross-compiles on the native platform (GOARCH=$TARGETARCH, CGO off) instead of QEMU — much faster arm64 builds. Added .dockerignore.
  • Existing chart validate.yml / release.yml workflows unchanged.

Security fix (carried Go WIP)

  • Fixed an SQL-injection vector in the OTel metadata/series handlers: chEscape now doubles backslashes before escaping quotes, so a trailing backslash in an unauthenticated request parameter can no longer break out of a ClickHouse string literal.

Review gates run

secrets-auditor (PASS — no new secrets), docs-quality-reviewer (logo URL fixed), devops (hardening applied), go-specialist (injection fix applied).

Follow-ups (out of scope, not blocking)

  • Pre-existing plaintext demo password in charts/promclick-chart/values.yaml (secretRefs.clickhouse.password) should move to an existingSecret.
  • OTel WIP polish: validate mode: otel requires non-empty tables; drop unused labelOp params in translator/plan.go; de-duplicate OTel sanitisation between handlers and translator.
  • SHA-pin the older release.yml/validate.yml actions (still @v3).
  • Go module path is still github.com/PromClick/PromClick (builds fine; rename to digitalis-io is a separate large refactor).

Testing

go test passes for all pure-Go packages (eval, translator, config, proxy/config, proxy/clickhouse, proxy/server/handlers); helm lint passes; workflow YAML validated.

Assisted-by: Claude Code

digiserg added 2 commits July 8, 2026 17:53
Add a schema Mode/Tables config so the proxy can serve metadata, series and
queries over OpenTelemetry-style ClickHouse tables via UNION ALL, and fold
scalar-only binary expressions to fix a nil-plan panic on expressions like 1+1.

Security: chEscape now doubles backslashes before escaping single quotes so a
trailing backslash in an unauthenticated request parameter (match[], label
name) can no longer break out of a ClickHouse string literal and inject SQL.

Signed-off-by: Sergio Rua <sergio.rua@digitalis.io>
Package the upstream Apache-2.0 PromClick project (github.com/PromClick/PromClick)
as a Digitalis.io distribution while preserving original attribution:

- Add NOTICE crediting the upstream authors and recording Digitalis modifications
  per Apache-2.0 section 4; add the Digitalis copyright line to LICENSE.md.
- Brand the README (logo, attribution, contact) and repoint image/clone/helm refs
  to ghcr.io/digitalis-io and github.com/digitalis-io.
- Add a container build workflow publishing multi-arch images to
  ghcr.io/digitalis-io/promclick (SHA-pinned actions, timeout, concurrency,
  manual dispatch); cross-compile in the Dockerfile instead of QEMU; add
  .dockerignore.
- Add CHANGELOG.md (Keep a Changelog) and bump the Helm chart to 1.1.0 with
  Digitalis maintainer metadata.

Signed-off-by: Sergio Rua <sergio.rua@digitalis.io>
@digiserg digiserg merged commit 3ce015c into main Jul 8, 2026
2 checks passed
@digiserg digiserg deleted the feat/vendor-digitalis-attribution-ci branch July 8, 2026 17:03
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.

1 participant