Skip to content

Latest commit

 

History

History
162 lines (107 loc) · 4.73 KB

File metadata and controls

162 lines (107 loc) · 4.73 KB

DSX Exchange

DSX Exchange is a monorepo for DSX event bus schemas, authentication, deployment, and local evaluation tooling.

Overview

DSX Exchange provides the repository pieces needed to describe, deploy, and validate DSX MQTT event bus integrations:

  • schemas: AsyncAPI contracts for DSX Exchange MQTT topics and payloads.
  • auth-callout: NATS auth callout service for OAuth2, mTLS, NKey, and no-auth profiles.
  • deploy: Helm chart for the NATS event bus deployment.
  • local: Kind-based local evaluation environment, NATS deployment scripts, MQTT tests, and benchmark tooling.

The event bus itself is schema agnostic. Schemas document externally visible contracts; NATS and the auth callout enforce routing, federation, and authorization behavior.

Getting Started

Clone the repository and run the local validation checks:

git clone https://github.com/NVIDIA/dsx-exchange.git
cd dsx-exchange
make check

If you already have a DSX Exchange broker and need to build or test an MQTT integration application, start with the Integrator Quickstart.

For local end-to-end validation, create the Kind environment and deploy NATS:

make -C local setup-infra
make -C local deploy-nats
make -C local validate-nats
make test-e2e

Publish looping dummy BMS data into the local CSC MQTT broker:

make dummy-bms

Requirements

  • OS: Linux or macOS with Docker support.
  • Tools: go, make, helm, kubectl, kind, docker, jq, yq, cfssl, nsc, addlicense.
  • Kubernetes: local Kind clusters for e2e testing.
  • Runtime: Go modules declare their own supported Go versions.

GPU drivers are not required.

Usage

Use the top-level Makefile for common validation:

make help
make check-license-headers
make test
make test-helm
make check

Run component-specific targets from the directory you are changing:

make -C auth-callout test
make -C deploy check
make -C local test-functional
make -C local test-performance

After the local Kind environment is deployed, run the dummy BMS demo with make dummy-bms.

The local evaluation environment uses the top-level auth-callout and deploy directories directly.

Performance

The local performance target is an e2e smoke profile sized for repeatable Kind validation:

make -C local test-performance

Full benchmark runs are available separately:

make -C local benchmark-performance
make -C local benchmark-basic-full

Releases & Roadmap

Versioning

DSX Exchange follows Semantic Versioning (vX.Y.Z), automated via semantic-release. A new version is published automatically when a semantic-release compliant commit is merged to main.

Commit prefix Version bump When to use
fix: Patch (Z) Bug fixes, CVE remediation
feat: Minor (Y) New features, backward-compatible changes
feat!: or BREAKING CHANGE: Major (X) Breaking API, schema, or chart changes

Roadmap

Upcoming work is tracked in GitHub Issues. See CONTRIBUTING.md for how to get involved.

Contribution Guidelines

Development quickstart:

git clone https://github.com/NVIDIA/dsx-exchange.git
cd dsx-exchange
make check

Governance & Maintainers

  • Governance: GOVERNANCE.md
  • Maintainers: MAINTAINERS.md
  • Triage policy: use GitHub issue labels and pull request review from repository maintainers.

Security

  • Vulnerability disclosure: SECURITY.md
  • Do not file public issues for security reports.

Support

  • Support level: Maintained, with best-effort public issue triage.
  • Help: file a GitHub issue with a focused reproduction or question.
  • Response expectations: no guaranteed service-level agreement.

See SUPPORT.md for details.

Community

Use GitHub issues and pull requests for public project discussion, bug reports, feature requests, and contribution review.

References

License

This project is licensed under the Apache License 2.0. See LICENSE for details.