InstantX uses Semantic Versioning. The notes below summarize the major changes per version; see CHANGELOG.md for the detailed log.
A release is cut by pushing a v* tag (e.g. git tag v2.1.0 && git push origin v2.1.0). The release workflow then builds a source archive and signs it with cosign — keyless, via GitHub OIDC (no long-lived keys), with the signature recorded in the Sigstore Rekor transparency log. It attaches the archive, its SHA-256 checksum, the signature (.sig), and the signing certificate (.pem) to the GitHub Release.
To verify a downloaded release archive:
cosign verify-blob \
--certificate "instantx-<version>.tar.gz.pem" \
--signature "instantx-<version>.tar.gz.sig" \
--certificate-oidc-issuer "https://token.actions.githubusercontent.com" \
--certificate-identity-regexp "https://github.com/lf-edge/instantx/.github/workflows/release.yml@.*" \
"instantx-<version>.tar.gz"The release-manager role is described in GOVERNANCE.md.
Versions follow SemVer: upgrades within the same MAJOR are backward compatible. To upgrade, check out the new tag and rebuild the stack:
git fetch --tags && git checkout <new-tag>
cd deployment && docker-compose up --build -dBreaking changes (MAJOR bumps) and any required migration steps are called out in the release notes below and in CHANGELOG.md.
Backward-compatible release (no migration steps).
Added
- Contributor testing guides: Manual MQTT Testing (broker pub/sub with the
mosquittoclients) and HTTP Integration Testing (POST to the Event Publisher API and read the message back from MQTT, end-to-end). - README status badges and an
AGENTS.mdsection documenting theCLAUDE.md ↔ AGENTS.mdsymlink setup.
Fixed
- Kafka Connect now starts healthy and exposes its REST API on port 8083 (corrected
CONNECT_REST_ADVERTISED_HOST_NAME) — resolves #11 and #12. - The Event Publisher image builds behind restrictive firewalls (base image moved to
python:3.9-slim-bookworm, dropping the system build toolchain) — resolves #30.
Changed
- Slimmer container bases for the Event Publisher and
nifi-initimages; removed thelinux/amd64platform pin on thenifi-setupservice.
Added
- Community health files (
CONTRIBUTING.md,SECURITY.md,CODE_OF_CONDUCT.md,SUPPORT.md,MAINTAINERS.md),GOVERNANCE.md, andROADMAP.md. - Continuous integration (
ci.yml): pytest with a ≥80% coverage gate,ruff,bandit, and a DCO sign-off check; first-party unit tests for the Event Publisher and Kafka speed exporter. - Keyless release-signing workflow (
release.yml): everyv*tag builds a source archive and signs it with cosign (Sigstore). - Security hardening: allowlist input validation and a request-size limit on the Event Publisher API;
docs/Threat-Model.mdanddocs/Security-Architecture.md.
Changed
EventPublisher.pyrefactored into an application factory; encoder/exporter refactored into testable functions (runtime behavior preserved).
Fixed
- NiFi script tests use a path relative to the test file instead of a hardcoded absolute
DATA_FOLDER.
Security
- Updated Werkzeug (
safe_joinadvisories) and pytest (dev) to remediate known CVEs; added Dependabot monitoring.
Added
- API for publishing DENM messages
- Synchronization/bridge between MQTT and Kafka for MQTT distribution messages published through API
- Transformation and ASN1 encoding/decoding layer based on NiFi
- AMQP integration through NiFi
Included documentation related with:
Security: No publicly known run-time vulnerabilities were fixed in this release.
Included additional repositories:
- instantx-metrics
- HiveMQ Metrics Extension
- instantx-connectors
- Kafka Connectors (MQTT Source and Sink connectors) to be used for Kafka to HiveMQ (and vice-versa) synchronization
Initial release of with basic MQTT Broker + Observability layer.
Included documentation related with: