This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
The AMRC Connectivity Stack (ACS) is a Kubernetes-deployed implementation of the Factory+ framework for industrial connectivity and data management. It consists of central cluster services (MQTT broker, Directory, Auth, ConfigDB, Historians, Manager UI) and edge agents that collect data from industrial devices.
-
lib/- Shared libraries (must build first)js-service-client- Main client library for Factory+ servicesjs-service-api- Base classes for building service APIsjs-edge-driver- Base driver class for edge translatorsjs-sparkplug-app- Sparkplug B protocol utilitiesjs-pg-client,js-rx-client,js-rx-util- Database and reactive utilitiespy-edge-driver- Python edge driver basejava-service-client- Java client library
-
acs-*- Central cluster services (Auth, ConfigDB, Directory, etc.) -
edge-*- Edge protocol translators (Modbus, BACnet, ADS, etc.) -
historian-*,uns-ingester-*- Data ingestion services -
deploy/- Helm chart for Kubernetes deployment -
mk/- Makefile fragments
Most services are ES modules using @amrc-factoryplus/service-client for Factory+ integration. Services reference local libraries via file:../lib/js-* in package.json.
TypeScript services (like acs-edge) use:
npm run dev # Development with ts-node-dev
npm run build # Compile TypeScript
npm run test # Run Jest tests- Services authenticate via Kerberos to the MQTT broker
- Configuration is stored in ConfigDB and accessed via the service client
- Edge agents publish Sparkplug B messages to the MQTT broker
- The
@amrc-factoryplus/service-clientlibrary providesServiceClientclass for accessing Factory+ services
- Branch naming:
initials/branch-descriptionorfeature/xxxfor long-running branches - Commit messages: imperative mood, explain the "why", reference issues
- Keep PRs focused on a single issue/feature
- Rebase onto
mainrather than merging