Skip to content

Contributing

ToolVersion
Go1.25+
Node.js18+
npm(bundled)
Terminal window
git clone https://github.com/intuware/intu-dev.git
cd intu-dev
go build -o intu .
TaskCommand
Build binarygo build -o intu .
Run testsgo test ./... -v
Lintgo vet ./...
Run from sourcego run . <command>
Tidy depsgo mod tidy

Walk through the full workflow from scaffolding a project to running a channel:

Terminal window
# Build the CLI
go build -o intu .
# Scaffold a new project
./intu init my-project
cd my-project
# Create a channel
./intu channel create adt-feed
# Validate configuration
./intu validate
# Start the engine
./intu serve
PackageDescription
cmd/Cobra CLI commands
internal/runtime/Engine, channel lifecycle, pipeline, Node.js runner, hot-reload
internal/dashboard/Web dashboard server and embedded SPA
internal/storage/Message stores: memory, postgres, s3, composite
internal/connector/Source connectors and destinations
internal/bootstrap/Project and channel scaffolding templates
internal/auth/OIDC, LDAP, basic auth, RBAC, audit
internal/cluster/Redis coordinator, deduplication, health checks
internal/retry/Retry queues, dead-letter queue
internal/observability/Prometheus, OpenTelemetry metrics
internal/datatype/HL7v2, FHIR, X12, CCDA, JSON, XML, CSV, binary parsers
pkg/config/YAML config loading, validation
pkg/logging/Structured logging, transports
npm/npm package (ships prebuilt binary)
docs/HTML documentation, JSON schemas

All tests are pure Go — no Docker, no running databases, no network calls.

PackageTest File(s)Focus
internal/runtimeengine_test.go, pipeline_test.goChannel lifecycle, pipeline execution
internal/storagememory_test.go, composite_test.goIn-memory store, composite routing
internal/connectorsource_test.go, dest_test.goConnector start/stop, message delivery
internal/authrbac_test.go, oidc_test.goRole checks, token validation
internal/retryretry_test.go, dlq_test.goRetry scheduling, dead-letter routing
internal/datatypehl7_test.go, fhir_test.goParse/serialize healthcare data formats
internal/clustercoordinator_test.goLeader election, deduplication
internal/bootstrapscaffold_test.goTemplate rendering, directory structure
pkg/configconfig_test.go, validate_test.goYAML loading, schema validation
pkg/logginglogging_test.goStructured output, transport switching
Terminal window
# Run the full suite
go test ./... -v
# Run a specific package
go test ./internal/runtime/... -v
# Run with race detector
go test -race ./...
  • Node.js worker pool — Transformer scripts run in a managed pool of Node.js child processes. The pool size is configurable and workers are recycled after a set number of invocations.
  • fsnotify hot-reload — The engine watches project files and restarts affected channels on change, without dropping in-flight messages.
  • Shared HTTP listeners — Multiple channels can bind to the same port. The engine multiplexes requests by path to the correct channel pipeline.
  • Scaffolding templatesintu init and intu channel create use Go text/template files embedded in the binary to generate project and channel boilerplate.
  1. Report bugs or request features — Open an issue on GitHub Issues.
  2. Submit a pull request — Fork the repo, create a branch, and open a PR against main. Include tests for new functionality.
  3. Join the discussion — Ask questions or share ideas in GitHub Discussions.

Maintainer contact: ramnish@intuware.com