diff --git a/.changeset/clickstack-repo-links.md b/.changeset/clickstack-repo-links.md new file mode 100644 index 0000000000..0bea2b4824 --- /dev/null +++ b/.changeset/clickstack-repo-links.md @@ -0,0 +1,6 @@ +--- +'@hyperdx/app': patch +'@hyperdx/cli': patch +--- + +chore: GitHub links (changelog, support, package metadata) now point at `ClickHouse/ClickStack`, and `docker-compose.yml` pulls the app image as `clickhouse/clickstack` diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index e4d4641499..087ed57b44 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -1,2 +1,2 @@ # One reviewer is picked round robin by the team's code review settings. -* @hyperdxio/clickstack-app-devs +* @ClickHouse/clickstack-app-devs diff --git a/.github/ISSUE_TEMPLATE/bug-report.md b/.github/ISSUE_TEMPLATE/bug-report.md index 93dc43ee49..49cf5f8d80 100644 --- a/.github/ISSUE_TEMPLATE/bug-report.md +++ b/.github/ISSUE_TEMPLATE/bug-report.md @@ -17,7 +17,7 @@ paste the URL if it does. If you're working from the repo, `yarn app:dev:local` plus onboarding → "Connect to Demo Server" gives you the same data locally. If it only happens with your own data, include the table schema (`SHOW CREATE TABLE ...`) and source settings. -See https://github.com/hyperdxio/hyperdx/blob/main/CONTRIBUTING.md#reproducing-issues-and-prs +See https://github.com/ClickHouse/ClickStack/blob/main/CONTRIBUTING.md#reproducing-issues-and-prs --> **Reproduces on play.hyperdx.io?** diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml index cfa0fd29cf..042c90c39c 100644 --- a/.github/ISSUE_TEMPLATE/config.yml +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -7,7 +7,7 @@ contact_links: about: For usage questions, setup help, and general discussion, ask on Discord. - name: First-time contributor? - url: https://github.com/hyperdxio/hyperdx/blob/main/CONTRIBUTING.md#getting-vouched + url: https://github.com/ClickHouse/ClickStack/blob/main/CONTRIBUTING.md#getting-vouched about: No need to open an issue to get vouched. Open your pull request and a maintainer vouches from there. diff --git a/.github/ISSUE_TEMPLATE/feature-request.md b/.github/ISSUE_TEMPLATE/feature-request.md index 98b7b29907..8d80c02892 100644 --- a/.github/ISSUE_TEMPLATE/feature-request.md +++ b/.github/ISSUE_TEMPLATE/feature-request.md @@ -26,4 +26,4 @@ labels: enhancement, Needs Feedback New issues start as `Needs Feedback` so we can discuss scope before anyone writes code. Once a maintainer swaps that for `Accepting PR`, the issue is ready to be picked up — see -[CONTRIBUTING.md](https://github.com/hyperdxio/hyperdx/blob/main/CONTRIBUTING.md#from-issue-to-pull-request). +[CONTRIBUTING.md](https://github.com/ClickHouse/ClickStack/blob/main/CONTRIBUTING.md#from-issue-to-pull-request). diff --git a/.github/VOUCHED.td b/.github/VOUCHED.td index fd9c4cbfaa..57a66d74a0 100644 --- a/.github/VOUCHED.td +++ b/.github/VOUCHED.td @@ -1,4 +1,4 @@ -# Vouched contributors for hyperdxio/hyperdx. +# Vouched contributors for ClickHouse/ClickStack. # # Pull requests from GitHub users who are not in this list are closed # automatically by .github/workflows/vouch.yml. See CONTRIBUTING.md for how to diff --git a/.github/prompts/code-review.md b/.github/prompts/code-review.md index 62605a048c..a7f9adf733 100644 --- a/.github/prompts/code-review.md +++ b/.github/prompts/code-review.md @@ -1,4 +1,4 @@ -REPO: hyperdxio/hyperdx +REPO: ClickHouse/ClickStack PR: #{{PR_NUMBER}} Review this pull request. diff --git a/.github/scripts/code-review/review-comments.cjs b/.github/scripts/code-review/review-comments.cjs index 8818e6c2f9..f0cdc1b4f7 100644 --- a/.github/scripts/code-review/review-comments.cjs +++ b/.github/scripts/code-review/review-comments.cjs @@ -25,7 +25,7 @@ const MAX_BODY = 65536; * FOOTER repeats the rule and this anchor; the anchor test pins both to the AGENTS.md heading. */ const GUIDE_URL = - 'https://github.com/hyperdxio/hyperdx/blob/main/AGENTS.md#responding-to-review-feedback'; + 'https://github.com/ClickHouse/ClickStack/blob/main/AGENTS.md#responding-to-review-feedback'; const GUIDE_LINK = `[How to respond](${GUIDE_URL})`; /** diff --git a/.github/workflows/deep-resolve.yml b/.github/workflows/deep-resolve.yml index 1ea5e94a35..f3cd50a37f 100644 --- a/.github/workflows/deep-resolve.yml +++ b/.github/workflows/deep-resolve.yml @@ -8,8 +8,9 @@ name: Deep Review Resolver # Limitations: # - Same-repo PRs only. Fork PRs cannot be pushed to from CI with the # default GITHUB_TOKEN; the workflow exits early on forks. -# - Collaborator-gated. The job `if` requires OWNER/MEMBER/COLLABORATOR -# association on the triggering comment to prevent random drive-by use. +# - Write-gated. The job `if` requires OWNER/MEMBER/COLLABORATOR association +# on the triggering comment, and the first step checks the commenter has +# write access, since MEMBER covers every org member. # - Single-shot. Re-trigger by commenting `/just-fix-it` again after the # follow-up deep-review run posts an updated finding list. @@ -38,6 +39,28 @@ jobs: actions: read steps: + # author_association MEMBER covers every org member, not just people with + # write access to this repo. Check the real permission before touching the PR. + - name: Require write access + uses: actions/github-script@v9 + with: + script: | + const username = context.payload.comment.user.login; + let p = {}; + try { + const { data } = await github.rest.repos.getCollaboratorPermissionLevel({ + owner: context.repo.owner, + repo: context.repo.repo, + username, + }); + p = data.user?.permissions ?? {}; + } catch (e) { + if (e.status !== 404) throw e; + } + if (!(p.admin || p.maintain || p.push)) { + core.setFailed(`${username} has no write access to this repo; ignoring /just-fix-it.`); + } + - name: Acknowledge trigger uses: actions/github-script@v9 with: diff --git a/.github/workflows/deep-review.yml b/.github/workflows/deep-review.yml index ff91550915..a6635fcb45 100644 --- a/.github/workflows/deep-review.yml +++ b/.github/workflows/deep-review.yml @@ -850,7 +850,7 @@ jobs: # collapsed P3 block. Twin of INLINE_FOOTER_BY_SEVERITY / AGENT_NOTICE # in .github/scripts/code-review/review-comments.cjs; the anchor test # there pins both to the AGENTS.md heading. - FOOTER='No finding blocks merge automatically. A maintainer will expect P0/P1 findings in code this PR changes to be fixed; P2/P3 are your call -- fix or reply. Never fix findings about surrounding code here; reply instead. Do not widen the PR. [How to respond](https://github.com/hyperdxio/hyperdx/blob/main/AGENTS.md#responding-to-review-feedback)' + FOOTER='No finding blocks merge automatically. A maintainer will expect P0/P1 findings in code this PR changes to be fixed; P2/P3 are your call -- fix or reply. Never fix findings about surrounding code here; reply instead. Do not widen the PR. [How to respond](https://github.com/ClickHouse/ClickStack/blob/main/AGENTS.md#responding-to-review-feedback)' # Only when there is something to triage, as renderSummary does for its # notice: a clean review or a zero-coverage (unhealthy-sandbox) one gets # no footer. Findings sit under a `### ` severity heading or, for P3 diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 525c519dc1..bab7f885a3 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -1270,11 +1270,11 @@ jobs: ```bash # macOS Apple Silicon INSTALL - echo "curl -L https://github.com/hyperdxio/hyperdx/releases/download/cli-v${VERSION}/hdx-darwin-arm64 -o hdx" + echo "curl -L ${GITHUB_SERVER_URL}/${GITHUB_REPOSITORY}/releases/download/cli-v${VERSION}/hdx-darwin-arm64 -o hdx" echo "# macOS Intel" - echo "curl -L https://github.com/hyperdxio/hyperdx/releases/download/cli-v${VERSION}/hdx-darwin-x64 -o hdx" + echo "curl -L ${GITHUB_SERVER_URL}/${GITHUB_REPOSITORY}/releases/download/cli-v${VERSION}/hdx-darwin-x64 -o hdx" echo "# Linux x64" - echo "curl -L https://github.com/hyperdxio/hyperdx/releases/download/cli-v${VERSION}/hdx-linux-x64 -o hdx" + echo "curl -L ${GITHUB_SERVER_URL}/${GITHUB_REPOSITORY}/releases/download/cli-v${VERSION}/hdx-linux-x64 -o hdx" cat <<'USAGE' chmod +x hdx && sudo mv hdx /usr/local/bin/ diff --git a/.github/workflows/security-audit.yml b/.github/workflows/security-audit.yml index 838096230b..523b7a00d2 100644 --- a/.github/workflows/security-audit.yml +++ b/.github/workflows/security-audit.yml @@ -11,7 +11,6 @@ jobs: steps: - uses: kunalnagarco/action-cve@v1.14.23 with: - org: hyperdxio token: ${{ secrets.DEPENDABOT_NOTIF_PAT }} slack_webhook: ${{ secrets.SLACK_WEBHOOK_VULNERABILITIES }} severity: medium,high,critical diff --git a/.vex/openssl-mongodb.vex.json b/.vex/openssl-mongodb.vex.json index 20e3a67fd3..4a8aecdd8f 100644 --- a/.vex/openssl-mongodb.vex.json +++ b/.vex/openssl-mongodb.vex.json @@ -1,6 +1,6 @@ { "@context": "https://openvex.dev/ns/v0.2.0", - "@id": "https://github.com/hyperdxio/hyperdx/blob/main/.vex/openssl-mongodb.vex.json", + "@id": "https://github.com/ClickHouse/ClickStack/blob/main/.vex/openssl-mongodb.vex.json", "author": "HyperDX Team", "role": "Supplier", "timestamp": "2026-02-17T00:00:00Z", diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 5c22126a88..2d79cbd207 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -30,7 +30,7 @@ steps](#reproducing-issues-and-prs), and has [before/after screenshots](#ui-changes-need-beforeafter-screenshots) if it touches the UI. Good places to start: the [good first -issue](https://github.com/hyperdxio/hyperdx/labels/good%20first%20issue) label, +issue](https://github.com/ClickHouse/ClickStack/labels/good%20first%20issue) label, and [Discord](https://discord.gg/FErRRKU78j) if the dev setup gives you trouble. Why we do this: AI tools make it cheap to open a plausible-looking PR with no diff --git a/DEPLOY.md b/DEPLOY.md index 9c31726b8f..34a40bcbc1 100644 --- a/DEPLOY.md +++ b/DEPLOY.md @@ -38,7 +38,7 @@ separate MongoDB instance to persist your users, dashboards, searches and more. To get started, you can run the following image: ```bash -docker run -e MONGO_URI=mongodb://YOUR_MONGODB_URI -p 8080:8080 docker.hyperdx.io/hyperdx/hyperdx:2-beta +docker run -e MONGO_URI=mongodb://YOUR_MONGODB_URI -p 8080:8080 docker.clickhouse.com/clickhouse/clickstack:2 ``` You'll need to set the `MONGO_URI` environment variable to the URI of your diff --git a/LOCAL.md b/LOCAL.md index b6e98fc25a..359ffe4e1d 100644 --- a/LOCAL.md +++ b/LOCAL.md @@ -61,7 +61,7 @@ docker.clickhouse.com/clickhouse/clickstack-local ## Open Source & Cloud Versions (Beyond Local) -If you're looking to deploy HyperDX to monitor a production environment (or anything outside your local environment), you can check out the [regular open source version](https://github.com/hyperdxio/hyperdx) or the [cloud hosted version](https://hyperdx.io/). +If you're looking to deploy HyperDX to monitor a production environment (or anything outside your local environment), you can check out the [regular open source version](https://github.com/ClickHouse/ClickStack) or the [cloud hosted version](https://hyperdx.io/). ### Local vs Non-Local Versions diff --git a/README.md b/README.md index a4d3f93c2f..f4a2281441 100644 --- a/README.md +++ b/README.md @@ -7,9 +7,9 @@

HyperDX

- GitHub stars - License - Release + GitHub stars + License + Release Join the HyperDX Discord

@@ -24,7 +24,7 @@ visualize logs and traces on top of any ClickHouse cluster (imagine Kibana, for ClickHouse).

- Documentation • Chat on Discord • Live Demo • Bug Reports • Contributing • Website + Documentation • Chat on Discord • Live Demo • Bug Reports • Contributing • Website

- 🕵️ Correlate/search logs, metrics, session replays and traces all in one place @@ -136,9 +136,9 @@ We welcome all contributions! There's many ways to contribute to the project, including but not limited to: - Opening a PR ([Contribution Guide](./CONTRIBUTING.md)) -- [Submitting feature requests or bugs](https://github.com/hyperdxio/hyperdx/issues/new) +- [Submitting feature requests or bugs](https://github.com/ClickHouse/ClickStack/issues/new) - Improving our product or contribution documentation -- Voting on [open issues](https://github.com/hyperdxio/hyperdx/issues) or +- Voting on [open issues](https://github.com/ClickHouse/ClickStack/issues) or contributing use cases to a feature request **Pull requests.** Issues, bug reports and discussion stay open to everyone. For @@ -170,7 +170,7 @@ We hope you give HyperDX in ClickStack a try and let us know how we're doing! ## Contact -- [Open an Issue](https://github.com/hyperdxio/hyperdx/issues/new) +- [Open an Issue](https://github.com/ClickHouse/ClickStack/issues/new) - [Discord](https://discord.gg/FErRRKU78j) - [Email](mailto:support@hyperdx.io) diff --git a/SECURITY.md b/SECURITY.md new file mode 100644 index 0000000000..00905b5218 --- /dev/null +++ b/SECURITY.md @@ -0,0 +1,8 @@ +# Security policy + +Please do not report security vulnerabilities through public GitHub issues, +discussions, or pull requests. + +HyperDX is part of ClickStack and follows the +[ClickHouse security policy](https://github.com/ClickHouse/ClickHouse/security/policy). +Report vulnerabilities through the process described there. diff --git a/docker-compose.yml b/docker-compose.yml index 8de2decf04..2f8fdf7f7f 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -56,7 +56,7 @@ services: depends_on: - ch-server app: - image: ${HDX_IMAGE_REPO}/${IMAGE_NAME_DOCKERHUB}:${IMAGE_VERSION} + image: ${CH_IMAGE_REPO}/${NEXT_IMAGE_NAME_DOCKERHUB}:${IMAGE_VERSION} ports: - ${HYPERDX_API_PORT}:${HYPERDX_API_PORT} - ${HYPERDX_APP_PORT}:${HYPERDX_APP_PORT} diff --git a/docker/hostmetrics/Dockerfile b/docker/hostmetrics/Dockerfile index c8d8182b5f..744bbfa565 100644 --- a/docker/hostmetrics/Dockerfile +++ b/docker/hostmetrics/Dockerfile @@ -8,7 +8,7 @@ FROM base as dev LABEL org.opencontainers.image.vendor="HyperDX" \ org.opencontainers.image.title="HyperDX Host Metrics (Dev)" \ org.opencontainers.image.description="Host metrics collector for HyperDX development" \ - org.opencontainers.image.source="https://github.com/hyperdxio/hyperdx" \ + org.opencontainers.image.source="https://github.com/ClickHouse/ClickStack" \ org.opencontainers.image.licenses="MIT" COPY ./config.dev.yaml /etc/otelcol-contrib/config.yaml @@ -20,7 +20,7 @@ FROM base as prod LABEL org.opencontainers.image.vendor="HyperDX" \ org.opencontainers.image.title="HyperDX Host Metrics" \ org.opencontainers.image.description="Host metrics collector for HyperDX observability platform" \ - org.opencontainers.image.source="https://github.com/hyperdxio/hyperdx" \ + org.opencontainers.image.source="https://github.com/ClickHouse/ClickStack" \ org.opencontainers.image.licenses="MIT" COPY ./config.dev.yaml /etc/otelcol-contrib/config.yaml diff --git a/docker/hyperdx/Dockerfile b/docker/hyperdx/Dockerfile index a1cb3c5924..5c0bbeb53f 100644 --- a/docker/hyperdx/Dockerfile +++ b/docker/hyperdx/Dockerfile @@ -109,7 +109,7 @@ FROM node:${NODE_VERSION}-alpine AS prod LABEL org.opencontainers.image.vendor="HyperDX" \ org.opencontainers.image.title="HyperDX Production" \ org.opencontainers.image.description="HyperDX production image with API and App services" \ - org.opencontainers.image.source="https://github.com/hyperdxio/hyperdx" \ + org.opencontainers.image.source="https://github.com/ClickHouse/ClickStack" \ org.opencontainers.image.licenses="MIT" ARG CODE_VERSION @@ -232,7 +232,7 @@ FROM all-in-one-base AS all-in-one-noauth LABEL org.opencontainers.image.vendor="HyperDX" \ org.opencontainers.image.title="HyperDX All-in-One (No Auth)" \ org.opencontainers.image.description="HyperDX all-in-one image with ClickHouse, MongoDB, and OTel Collector (no authentication)" \ - org.opencontainers.image.source="https://github.com/hyperdxio/hyperdx" \ + org.opencontainers.image.source="https://github.com/ClickHouse/ClickStack" \ org.opencontainers.image.licenses="MIT" COPY --from=hyperdx ./entry.local.noauth.sh /etc/local/entry.sh @@ -248,7 +248,7 @@ FROM all-in-one-base AS all-in-one-auth LABEL org.opencontainers.image.vendor="HyperDX" \ org.opencontainers.image.title="HyperDX All-in-One (With Auth)" \ org.opencontainers.image.description="HyperDX all-in-one image with ClickHouse, MongoDB, and OTel Collector (with authentication)" \ - org.opencontainers.image.source="https://github.com/hyperdxio/hyperdx" \ + org.opencontainers.image.source="https://github.com/ClickHouse/ClickStack" \ org.opencontainers.image.licenses="MIT" COPY --from=hyperdx ./entry.local.auth.sh /etc/local/entry.sh diff --git a/docker/otel-collector/Dockerfile b/docker/otel-collector/Dockerfile index 18355cd66e..c91a7c1cad 100644 --- a/docker/otel-collector/Dockerfile +++ b/docker/otel-collector/Dockerfile @@ -68,7 +68,7 @@ FROM base AS dev LABEL org.opencontainers.image.vendor="HyperDX" \ org.opencontainers.image.title="HyperDX OTel Collector (Dev)" \ org.opencontainers.image.description="OpenTelemetry Collector for HyperDX development" \ - org.opencontainers.image.source="https://github.com/hyperdxio/hyperdx" \ + org.opencontainers.image.source="https://github.com/ClickHouse/ClickStack" \ org.opencontainers.image.licenses="MIT" COPY --chown=10001:10001 docker/otel-collector/config.yaml /etc/otelcol-contrib/config.yaml @@ -92,7 +92,7 @@ FROM base AS prod LABEL org.opencontainers.image.vendor="HyperDX" \ org.opencontainers.image.title="HyperDX OTel Collector" \ org.opencontainers.image.description="OpenTelemetry Collector for HyperDX observability platform" \ - org.opencontainers.image.source="https://github.com/hyperdxio/hyperdx" \ + org.opencontainers.image.source="https://github.com/ClickHouse/ClickStack" \ org.opencontainers.image.licenses="MIT" COPY --chown=10001:10001 docker/otel-collector/config.yaml /etc/otelcol-contrib/config.yaml diff --git a/docker/otel-collector/config.standalone.yaml b/docker/otel-collector/config.standalone.yaml index 81eb44173e..fef3097db6 100644 --- a/docker/otel-collector/config.standalone.yaml +++ b/docker/otel-collector/config.standalone.yaml @@ -57,7 +57,7 @@ exporters: service: # Pipeline `processors:` lists live in the base config.yaml so users can # swap them via CUSTOM_OTELCOL_CONFIG_FILE. See - # https://github.com/hyperdxio/hyperdx/pull/2351. + # https://github.com/ClickHouse/ClickStack/pull/2351. pipelines: traces: receivers: [otlp/hyperdx] diff --git a/docker/otel-collector/config.yaml b/docker/otel-collector/config.yaml index 48ac20fd8a..bc137a945f 100644 --- a/docker/otel-collector/config.yaml +++ b/docker/otel-collector/config.yaml @@ -219,7 +219,7 @@ service: # CUSTOM_OTELCOL_CONFIG_FILE (e.g. to swap memory_limiter for a custom # version with limit_percentage). The OpAMP remote config intentionally # does NOT set `processors:` on these pipelines so the bootstrap+custom - # merge wins. See https://github.com/hyperdxio/hyperdx/pull/2351. + # merge wins. See https://github.com/ClickHouse/ClickStack/pull/2351. pipelines: traces: processors: [memory_limiter, transform/session_id, batch] diff --git a/packages/api/Dockerfile b/packages/api/Dockerfile index 625c636f8c..d692d04079 100644 --- a/packages/api/Dockerfile +++ b/packages/api/Dockerfile @@ -56,7 +56,7 @@ FROM node:22.23.4-alpine AS prod LABEL org.opencontainers.image.vendor="HyperDX" \ org.opencontainers.image.title="HyperDX API" \ org.opencontainers.image.description="HyperDX API service for observability platform" \ - org.opencontainers.image.source="https://github.com/hyperdxio/hyperdx" \ + org.opencontainers.image.source="https://github.com/ClickHouse/ClickStack" \ org.opencontainers.image.licenses="MIT" ARG CODE_VERSION diff --git a/packages/api/docs/auto_provision/AUTO_PROVISION.md b/packages/api/docs/auto_provision/AUTO_PROVISION.md index deab07ab19..e234c19470 100644 --- a/packages/api/docs/auto_provision/AUTO_PROVISION.md +++ b/packages/api/docs/auto_provision/AUTO_PROVISION.md @@ -148,7 +148,7 @@ Here's an example of how to set these variables in a Docker Compose file: version: '3' services: hyperdx-api: - image: docker.hyperdx.io/hyperdx/api:latest + image: docker.clickhouse.com/clickhouse/clickstack:2 environment: - DEFAULT_CONNECTIONS=[{"name":"Local ClickHouse","host":"clickhouse:8123","username":"default","password":""}] diff --git a/packages/api/src/controllers/promql.ts b/packages/api/src/controllers/promql.ts index 3f0c8eefff..79e8a943d5 100644 --- a/packages/api/src/controllers/promql.ts +++ b/packages/api/src/controllers/promql.ts @@ -23,7 +23,7 @@ const PROMETHEUS_FETCH_TIMEOUT_MS = 30_000; * `path` must be an absolute path (every call site passes a literal starting * with `/`) -- this is not a general-purpose URL joiner. * - * @see https://github.com/hyperdxio/hyperdx/issues/3046 + * @see https://github.com/ClickHouse/ClickStack/issues/3046 */ export function joinPrometheusUpstreamUrl( upstreamHost: string, diff --git a/packages/api/src/index.ts b/packages/api/src/index.ts index a46d7853fb..f8bfbbf38a 100644 --- a/packages/api/src/index.ts +++ b/packages/api/src/index.ts @@ -39,7 +39,7 @@ server.start().catch(e => { // start() only rejects on non-retryable failures (e.g. MONGO_URI unset) — // transient MongoDB connection errors are retried internally. Exit so the // orchestrator restarts us instead of lingering as a zombie that listens - // but can never serve (https://github.com/hyperdxio/hyperdx/issues/2966). + // but can never serve (https://github.com/ClickHouse/ClickStack/issues/2966). logger.error({ err: serializeError(e) }, 'Server start failed, exiting'); process.exit(1); }); diff --git a/packages/api/src/mcp/tools/query/schemas.ts b/packages/api/src/mcp/tools/query/schemas.ts index b48dbe4603..9b2850266a 100644 --- a/packages/api/src/mcp/tools/query/schemas.ts +++ b/packages/api/src/mcp/tools/query/schemas.ts @@ -110,7 +110,7 @@ const mcpMetricTypeSchema = z * Clients that forward MCP tool schemas straight to the provider therefore * get the ENTIRE tool list rejected because of this one field, and the user * sees a generic connectivity error that names neither the tool nor the - * property. See https://github.com/hyperdxio/hyperdx/issues/2967. + * property. See https://github.com/ClickHouse/ClickStack/issues/2967. * * The wire type is the only thing that changes. Numeric input is still * accepted for callers working from a cached schema, the value is coerced diff --git a/packages/api/src/models/index.ts b/packages/api/src/models/index.ts index 04605ff4e4..385a2fa8f7 100644 --- a/packages/api/src/models/index.ts +++ b/packages/api/src/models/index.ts @@ -83,7 +83,7 @@ export type ConnectRetryOptions = { * first `mongoose.connect()` is terminal. Long-lived servers must keep * retrying, otherwise a Mongo that comes up moments after the API leaves the * process permanently unable to serve while still listening (see - * https://github.com/hyperdxio/hyperdx/issues/2966). + * https://github.com/ClickHouse/ClickStack/issues/2966). * * Configuration errors (missing or malformed MONGO_URI) are not retryable * and are rethrown immediately so startup fails fast. diff --git a/packages/api/src/opamp/app.ts b/packages/api/src/opamp/app.ts index bcb97ad0fc..1a993df612 100644 --- a/packages/api/src/opamp/app.ts +++ b/packages/api/src/opamp/app.ts @@ -29,7 +29,7 @@ app.get('/health', (req, res) => { // Readiness: the OpAMP handler is entirely Mongo-backed — without a Mongo // connection every /v1/opamp request 500s, which crash-loops collectors that // need a remote config at startup (see utils/readiness.ts and -// https://github.com/hyperdxio/hyperdx/issues/2966). +// https://github.com/ClickHouse/ClickStack/issues/2966). app.get('/ready', (req, res) => { if (isMongoConnected()) { return res.status(200).json({ status: 'OK' }); diff --git a/packages/api/src/opamp/controllers/opampController.ts b/packages/api/src/opamp/controllers/opampController.ts index 22325ad2bc..ed777c8348 100644 --- a/packages/api/src/opamp/controllers/opampController.ts +++ b/packages/api/src/opamp/controllers/opampController.ts @@ -302,7 +302,7 @@ export const buildOtelCollectorConfig = ( // The pipeline `processors:` lists are intentionally declared in the // bootstrap config (docker/otel-collector/config.yaml) instead of here, // so that users can swap them via CUSTOM_OTELCOL_CONFIG_FILE. See - // https://github.com/hyperdxio/hyperdx/pull/2351: when the OpAMP + // https://github.com/ClickHouse/ClickStack/pull/2351: when the OpAMP // remote config sets `processors:` on a pipeline, it overwrites the // bootstrap+custom merge, which prevents users from substituting // their own processor (e.g. a memory_limiter with limit_percentage diff --git a/packages/api/src/routers/api/__tests__/health.int.test.ts b/packages/api/src/routers/api/__tests__/health.int.test.ts index 028b729252..c7f4ea1d32 100644 --- a/packages/api/src/routers/api/__tests__/health.int.test.ts +++ b/packages/api/src/routers/api/__tests__/health.int.test.ts @@ -4,7 +4,7 @@ import request from 'supertest'; import { connectDB, getAgent, getServer } from '@/fixtures'; import opampApp from '@/opamp/app'; -// Covers https://github.com/hyperdxio/hyperdx/issues/2966: `/health` is pure +// Covers https://github.com/ClickHouse/ClickStack/issues/2966: `/health` is pure // liveness and must stay 200 while the process serves HTTP, whereas `/ready` // must reflect MongoDB connectivity so Kubernetes readiness probes can pull a // pod that cannot serve Mongo-backed requests out of rotation. diff --git a/packages/api/src/utils/readiness.ts b/packages/api/src/utils/readiness.ts index a3c1bb0cc0..428fb144c6 100644 --- a/packages/api/src/utils/readiness.ts +++ b/packages/api/src/utils/readiness.ts @@ -12,7 +12,7 @@ import { mongooseConnection } from '@/models'; * - `/ready`: readiness — 503 unless MongoDB is connected, since almost * every request (including OpAMP config handling) is Mongo-backed. * Kubernetes readiness failures take the pod out of Service endpoints - * without restarting it (https://github.com/hyperdxio/hyperdx/issues/2966). + * without restarting it (https://github.com/ClickHouse/ClickStack/issues/2966). */ export const isMongoConnected = () => mongooseConnection.readyState === mongoose.ConnectionStates.connected; diff --git a/packages/app/Dockerfile b/packages/app/Dockerfile index 93409ba945..22f98b0c61 100644 --- a/packages/app/Dockerfile +++ b/packages/app/Dockerfile @@ -77,7 +77,7 @@ FROM node:22.23.4-alpine AS prod LABEL org.opencontainers.image.vendor="HyperDX" \ org.opencontainers.image.title="HyperDX App" \ org.opencontainers.image.description="HyperDX frontend application for observability platform" \ - org.opencontainers.image.source="https://github.com/hyperdxio/hyperdx" \ + org.opencontainers.image.source="https://github.com/ClickHouse/ClickStack" \ org.opencontainers.image.licenses="MIT" WORKDIR /app diff --git a/packages/app/src/CareersPage.tsx b/packages/app/src/CareersPage.tsx index 1686f56e6f..ed39b2a49e 100644 --- a/packages/app/src/CareersPage.tsx +++ b/packages/app/src/CareersPage.tsx @@ -46,7 +46,7 @@ interface GitHubCommit { } const GITHUB_COMMITS_URL = - 'https://api.github.com/repos/hyperdxio/hyperdx/commits?sha=main&per_page=50'; + 'https://api.github.com/repos/ClickHouse/ClickStack/commits?sha=main&per_page=50'; const GREENHOUSE_API_URL = 'https://boards-api.greenhouse.io/v1/boards/clickhouse/jobs'; diff --git a/packages/app/src/DOMPlayer.tsx b/packages/app/src/DOMPlayer.tsx index a711b5e300..993dd52488 100644 --- a/packages/app/src/DOMPlayer.tsx +++ b/packages/app/src/DOMPlayer.tsx @@ -157,7 +157,7 @@ export default function DOMPlayer({ handleDroppedEventRef.current = (error, context) => { // Surfaced unconditionally: dropped events (e.g. a dropped full snapshot) // can render the replay empty/unstyled with no other signal. - // https://github.com/hyperdxio/hyperdx/issues/2569 + // https://github.com/ClickHouse/ClickStack/issues/2569 console.error('Failed to load session replay event', context, error); setDroppedEventCount(count => count + 1); }; diff --git a/packages/app/src/__tests__/sessions.test.ts b/packages/app/src/__tests__/sessions.test.ts index 6a0c98a81e..78546f2de8 100644 --- a/packages/app/src/__tests__/sessions.test.ts +++ b/packages/app/src/__tests__/sessions.test.ts @@ -44,7 +44,7 @@ describe('buildRRWebStreamChartConfig', () => { it('orders by timestamp with numeric offset and chunk tiebreaks', () => { // Chunks of one rrweb event share a single timestamp, so without the // tiebreaks ClickHouse can return them in arbitrary order and the replay - // reassembly gets scrambled (hyperdxio/hyperdx#2569). The casts matter + // reassembly gets scrambled (ClickHouse/ClickStack#2569). The casts matter // too: the attributes are strings, and lexicographically '10' < '2'. expect(config.orderBy).toBe( "TimestampTime ASC, toUInt64OrZero(LogAttributes['rr-web.offset']) ASC, toUInt64OrZero(LogAttributes['rr-web.chunk']) ASC", diff --git a/packages/app/src/components/AppNav/__tests__/WhatsNewDrawer.test.ts b/packages/app/src/components/AppNav/__tests__/WhatsNewDrawer.test.ts index 13db09c422..8cafaed4f7 100644 --- a/packages/app/src/components/AppNav/__tests__/WhatsNewDrawer.test.ts +++ b/packages/app/src/components/AppNav/__tests__/WhatsNewDrawer.test.ts @@ -7,8 +7,8 @@ import { allowChangelogUrl } from '@/components/AppNav/WhatsNewDrawer'; describe('allowChangelogUrl', () => { it('passes through the hosts release notes are allowed to link', () => { expect( - allowChangelogUrl('https://github.com/hyperdxio/hyperdx/pull/1'), - ).toBe('https://github.com/hyperdxio/hyperdx/pull/1'); + allowChangelogUrl('https://github.com/ClickHouse/ClickStack/pull/1'), + ).toBe('https://github.com/ClickHouse/ClickStack/pull/1'); expect(allowChangelogUrl('https://docs.hyperdx.io/formulas')).toBe( 'https://docs.hyperdx.io/formulas', ); diff --git a/packages/app/src/components/AppNav/__tests__/useWhatsNew.test.ts b/packages/app/src/components/AppNav/__tests__/useWhatsNew.test.ts index 010f578161..fd4ead1ab1 100644 --- a/packages/app/src/components/AppNav/__tests__/useWhatsNew.test.ts +++ b/packages/app/src/components/AppNav/__tests__/useWhatsNew.test.ts @@ -5,13 +5,13 @@ describe('changelogUrl', () => { // Merging to main does not deploy, so main's changelog describes releases // this deployment may not be running. expect(changelogUrl('2.36.0')).toBe( - 'https://github.com/hyperdxio/hyperdx/blob/%40hyperdx%2Fapp%402.36.0/CHANGELOG.md', + 'https://github.com/ClickHouse/ClickStack/blob/%40hyperdx%2Fapp%402.36.0/CHANGELOG.md', ); }); it('falls back to main when there is no release to key on', () => { expect(changelogUrl()).toBe( - 'https://github.com/hyperdxio/hyperdx/blob/main/CHANGELOG.md', + 'https://github.com/ClickHouse/ClickStack/blob/main/CHANGELOG.md', ); }); }); diff --git a/packages/app/src/components/AppNav/useWhatsNew.ts b/packages/app/src/components/AppNav/useWhatsNew.ts index c0b08e90af..e98d6ac137 100644 --- a/packages/app/src/components/AppNav/useWhatsNew.ts +++ b/packages/app/src/components/AppNav/useWhatsNew.ts @@ -2,7 +2,7 @@ import { useRouter } from 'next/router'; import { z } from 'zod'; import { useQuery } from '@tanstack/react-query'; -const REPO_URL = 'https://github.com/hyperdxio/hyperdx'; +const REPO_URL = 'https://github.com/ClickHouse/ClickStack'; /** * Link to the root changelog — the release-level summary written during each diff --git a/packages/app/src/components/ContactSupportText.tsx b/packages/app/src/components/ContactSupportText.tsx index 190bf47e98..65e7367cfe 100644 --- a/packages/app/src/components/ContactSupportText.tsx +++ b/packages/app/src/components/ContactSupportText.tsx @@ -4,7 +4,7 @@ import { IS_OSS } from '@/config'; import styles from './ContactSupportText.module.scss'; -const GH_LINK = 'https://github.com/hyperdxio/hyperdx/issues'; +const GH_LINK = 'https://github.com/ClickHouse/ClickStack/issues'; export const ContactSupportText = () => { if (IS_OSS) { diff --git a/packages/app/src/components/__tests__/DBSearchPageFilters.test.tsx b/packages/app/src/components/__tests__/DBSearchPageFilters.test.tsx index 064f6a3b6d..524c94eca0 100644 --- a/packages/app/src/components/__tests__/DBSearchPageFilters.test.tsx +++ b/packages/app/src/components/__tests__/DBSearchPageFilters.test.tsx @@ -845,7 +845,7 @@ describe('FilterGroup', () => { expect(screen.getAllByTestId(/filter-checkbox-.+-input/)).toHaveLength(3); }); - // https://github.com/hyperdxio/hyperdx/issues/2576 — an empty map attribute + // https://github.com/ClickHouse/ClickStack/issues/2576 — an empty map attribute // key (e.g. LogAttributes['']) yields an empty name, which Mantine rejects // as an Accordion.Item value and crashes the filter panel. it('should render a placeholder instead of crashing when name is empty', () => { diff --git a/packages/app/src/sessions.ts b/packages/app/src/sessions.ts index edc5525869..64ba9df2d3 100644 --- a/packages/app/src/sessions.ts +++ b/packages/app/src/sessions.ts @@ -501,7 +501,7 @@ function isAbortError(e: unknown): boolean { * counter stamped on every record, and `rr-web.chunk` is the 1-based chunk * index within an event — ordering by both (numerically — the attributes are * stored as strings) makes the stream order deterministic. - * https://github.com/hyperdxio/hyperdx/issues/2569 + * https://github.com/ClickHouse/ClickStack/issues/2569 */ export function buildRRWebStreamChartConfig({ source, diff --git a/packages/app/src/utils/__tests__/rrwebChunkAssembler.test.ts b/packages/app/src/utils/__tests__/rrwebChunkAssembler.test.ts index a5ee50605d..a83811b2b3 100644 --- a/packages/app/src/utils/__tests__/rrwebChunkAssembler.test.ts +++ b/packages/app/src/utils/__tests__/rrwebChunkAssembler.test.ts @@ -63,7 +63,7 @@ describe('createRrwebChunkAssembler', () => { }); it('reassembles multi-chunk events arriving out of order', () => { - // The regression from hyperdxio/hyperdx#2569: all chunks of an event + // The regression from ClickHouse/ClickStack#2569: all chunks of an event // share one timestamp, so ClickHouse may return them in any order. const { assembler, events, errors } = makeAssembler(); const event = { type: 2, timestamp: 4, data: { text: 'y'.repeat(500) } }; diff --git a/packages/app/src/utils/rrwebChunkAssembler.ts b/packages/app/src/utils/rrwebChunkAssembler.ts index 31a59fc88a..0374526950 100644 --- a/packages/app/src/utils/rrwebChunkAssembler.ts +++ b/packages/app/src/utils/rrwebChunkAssembler.ts @@ -14,7 +14,7 @@ * buffers chunks per event id and joins them sorted by chunk index, so a * replay can never be corrupted by out-of-order or interleaved chunks — * which previously scrambled the concatenation, made JSON.parse throw, and - * silently dropped the event (https://github.com/hyperdxio/hyperdx/issues/2569). + * silently dropped the event (https://github.com/ClickHouse/ClickStack/issues/2569). * * ClickHouse returns the attributes as strings (or `''` when absent), so all * fields are coerced before use. diff --git a/packages/app/tests/e2e/core/navigation.spec.ts b/packages/app/tests/e2e/core/navigation.spec.ts index 485169926c..58fea7bce3 100644 --- a/packages/app/tests/e2e/core/navigation.spec.ts +++ b/packages/app/tests/e2e/core/navigation.spec.ts @@ -271,7 +271,7 @@ test.describe('Navigation', { tag: ['@core'] }, () => { ); await expect(drawer.getByTestId('drawer-github-link')).toHaveAttribute( 'href', - /github\.com\/hyperdxio\/hyperdx.*CHANGELOG\.md/, + /github\.com\/ClickHouse\/ClickStack.*CHANGELOG\.md/, ); // Opening the drawer closes the menu. @@ -442,7 +442,7 @@ test.describe('Navigation', { tag: ['@core'] }, () => { ).toBeVisible(); await expect(drawer.getByRole('link')).toHaveAttribute( 'href', - /github\.com\/hyperdxio\/hyperdx.*CHANGELOG\.md/, + /github\.com\/ClickHouse\/ClickStack.*CHANGELOG\.md/, ); }); diff --git a/packages/cli/README.md b/packages/cli/README.md index 6269ab31aa..5a26803960 100644 --- a/packages/cli/README.md +++ b/packages/cli/README.md @@ -3,7 +3,7 @@ [![npm version](https://img.shields.io/npm/v/@hyperdx/cli.svg)](https://www.npmjs.com/package/@hyperdx/cli) [![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](https://opensource.org/licenses/MIT) -Terminal UI and CLI for [HyperDX](https://github.com/hyperdxio/hyperdx) — +Terminal UI and CLI for [HyperDX](https://github.com/ClickHouse/ClickStack) — search, tail, chart, and query your logs, traces, and metrics without leaving the terminal. @@ -257,11 +257,11 @@ The CLI is built to be driven by scripts and AI agents: ## Links -- [HyperDX repository](https://github.com/hyperdxio/hyperdx) +- [HyperDX repository](https://github.com/ClickHouse/ClickStack) - [ClickStack documentation](https://clickhouse.com/docs/use-cases/observability/clickstack/overview) -- [Report an issue](https://github.com/hyperdxio/hyperdx/issues) -- [Contributing](https://github.com/hyperdxio/hyperdx/tree/main/packages/cli/CONTRIBUTING.md) +- [Report an issue](https://github.com/ClickHouse/ClickStack/issues) +- [Contributing](https://github.com/ClickHouse/ClickStack/tree/main/packages/cli/CONTRIBUTING.md) ## License -[MIT](https://github.com/hyperdxio/hyperdx/blob/main/LICENSE) +[MIT](https://github.com/ClickHouse/ClickStack/blob/main/LICENSE) diff --git a/packages/cli/package.json b/packages/cli/package.json index 602cf9d62d..24d75c8850 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -5,12 +5,12 @@ "type": "module", "repository": { "type": "git", - "url": "git+https://github.com/hyperdxio/hyperdx.git", + "url": "git+https://github.com/ClickHouse/ClickStack.git", "directory": "packages/cli" }, - "homepage": "https://github.com/hyperdxio/hyperdx/tree/main/packages/cli#readme", + "homepage": "https://github.com/ClickHouse/ClickStack/tree/main/packages/cli#readme", "bugs": { - "url": "https://github.com/hyperdxio/hyperdx/issues" + "url": "https://github.com/ClickHouse/ClickStack/issues" }, "publishConfig": { "access": "public" diff --git a/packages/common-utils/src/core/metadata.ts b/packages/common-utils/src/core/metadata.ts index 9953e01a88..190b63686c 100644 --- a/packages/common-utils/src/core/metadata.ts +++ b/packages/common-utils/src/core/metadata.ts @@ -134,7 +134,7 @@ export const DEFAULT_METRIC_NAMES_LIMIT = 500; const escapeLikePattern = (value: string): string => value.replace(/[\\%_]/g, char => `\\${char}`); -// See https://github.com/hyperdxio/hyperdx/issues/2163. Inlining a validated +// See https://github.com/ClickHouse/ClickStack/issues/2163. Inlining a validated // integer literal avoids the `_CAST` wrapper entirely. const inlineNonNegativeInt = (value: number, label: string): string => { if (!Number.isInteger(value) || value < 0) { diff --git a/packages/otel-collector/README.md b/packages/otel-collector/README.md index 5c8f05dcfb..ff0077ded2 100644 --- a/packages/otel-collector/README.md +++ b/packages/otel-collector/README.md @@ -606,7 +606,7 @@ codebase without needing to publish a Go module tag on every change. ```yaml receivers: - gomod: - github.com/hyperdxio/hyperdx/packages/otel-collector/receiver/myreceiver + github.com/ClickHouse/ClickStack/packages/otel-collector/receiver/myreceiver v0.0.0 path: ./receiver/myreceiver ``` diff --git a/packages/otel-collector/go.mod b/packages/otel-collector/go.mod index a1c3f7632f..1fdd126326 100644 --- a/packages/otel-collector/go.mod +++ b/packages/otel-collector/go.mod @@ -1,4 +1,4 @@ -module github.com/hyperdxio/hyperdx/packages/otel-collector +module github.com/ClickHouse/ClickStack/packages/otel-collector go 1.25