Skip to content

Add SDK health checks, metrics, version management, and fuzzing - #1208

Merged
Kingsman-99 merged 5 commits into
Stellar-split:mainfrom
cyberpunk30:drips/1184-1185-1186-1187
Oct 21, 2026
Merged

Kingsman-99 merged 5 commits into
Stellar-split:mainfrom
cyberpunk30:drips/1184-1185-1186-1187

Conversation

@cyberpunk30

Copy link
Copy Markdown

Summary

Add SDK health checks, metrics, version management, and fuzzing

What was solved

#1184 — Implement SDK health check system

Add a focused SDK health check system: a small framework for registering and running health checks (service and dependency checks), aggregation of results into an overall status, and health endpoint handlers that expose the aggregated report. Scope is limited to the health check framework, service/dependency checks, endpoints, aggregation, and monitoring hooks; no unrelated refactors or dependency installs.

Addressed:

  • Changed: src/healthCheck.ts, src/healthEndpoints.ts, src/index.ts
  • Design a health check framework (check registration, execution, result types)
  • Implement service checks for external services
  • Add dependency checks

#1185 — Add SDK metrics and statistics collection

Add a scoped SDK metrics/statistics subsystem: a metrics registry with counters, gauges, and histograms, plus export and basic analysis helpers, wired into the SDK's existing module structure and covered by tests. Keep the implementation self-contained and non-invasive to existing features.

Addressed:

  • Changed: src/metrics.ts, src/index.ts
  • Design a metrics system (registry/collector abstraction) consistent with existing src module patterns and TypeScript types
  • Implement counters with accurate increment semantics
  • Implement gauges supporting set/inc/dec and current value reads

#1186 — Implement SDK version management

Add SDK version management to the Stellar SDK: a versioning scheme, runtime version checking, a compatibility matrix, deprecation notices, version migrations, and version tracking. This is a new cross-cutting capability that should live in a dedicated module (e.g. src/versionManager.ts) with tests, wired into the package entry point and documented.

Addressed:

  • Changed: src/versionManager.ts, src/versionManager.ts, src/tests/versionManager.test.ts
  • Design a clear versioning scheme (semver-based SDK version plus feature/compat levels)
  • Implement runtime version checking against a required/minimum SDK version
  • Add a compatibility matrix mapping SDK versions to supported features/peers

#1187 — Implement fuzzing for input validation

Add a fuzzing setup for input validation in this TypeScript SDK: introduce a fuzzing framework configuration, fuzz targets covering input-validation surfaces, a seed corpus, crash detection/result analysis, and CI integration via a GitHub Actions workflow. Scope is limited to fuzzing infrastructure and targets for input validation; no changes to unrelated SDK features or existing tests.

Addressed:

  • Changed: package.json, .github/workflows/integration-test.yml, src/tests/sdkFeatures.test.ts
  • Set up a fuzzing framework (e.g., Jazzer.js or equivalent) configured for the project
  • Implement fuzz targets focused on input validation surfaces
  • Add a seed corpus for the fuzz targets

Changes

  • src/healthCheck.ts (create)
  • src/metrics.ts (create)
  • package.json (modify)
  • src/healthEndpoints.ts (create)
  • src/versionManager.ts (create)
  • .github/workflows/integration-test.yml (modify)
  • src/index.ts (modify)
  • src/__tests__/versionManager.test.ts (create)
  • src/__tests__/sdkFeatures.test.ts (modify)

Approach

  1. Implement SDK health check system #1184 — Implement SDK health check system (Changed: src/healthCheck.ts, src/healthEndpoints.ts, src/index.ts)
  2. Add SDK metrics and statistics collection #1185 — Add SDK metrics and statistics collection (Changed: src/metrics.ts, src/index.ts)
  3. Implement SDK version management #1186 — Implement SDK version management (Changed: src/versionManager.ts, src/versionManager.ts, src/tests/versionManager.test.ts)
  4. Implement fuzzing for input validation #1187 — Implement fuzzing for input validation (Changed: package.json, .github/workflows/integration-test.yml, src/tests/sdkFeatures.test.ts)

Issues

Closes #1184
Closes #1185
Closes #1186
Closes #1187

@drips-wave

drips-wave Bot commented Oct 20, 2026

Copy link
Copy Markdown

@cyberpunk30 Great news! 🎉 Based on an automated assessment of this PR, the linked Wave issue(s) no longer count against your application limits.

You can now already apply to more issues while waiting for a review of this PR. Keep up the great work! 🚀

Learn more about application limits

@Kingsman-99
Kingsman-99 merged commit 2985914 into Stellar-split:main Oct 21, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

2 participants