Skip to content
edgesync Artifact [84b739e2a2]
Login

Artifact [84b739e2a2]

Artifact 84b739e2a2b064e153fa035ade55c6e39d7f89b3d64af157ded12cf8e175228b:


bridge

NATS-to-HTTP translator for talking to an unmodified Fossil server. One project per bridge instance.

Module path: github.com/danmestas/EdgeSync/bridge

What it does

Subscribes to <prefix>.<project-code>.sync, decodes incoming xfer messages, proxies them to a Fossil HTTP server via libfossil.NewHTTPTransport, and replies on the NATS request/reply channel.

The bridge is the legacy path: leaf agents only need it to interoperate with a stock Fossil binary. Pure leaf-to-leaf deployments don't run a bridge at all.

Decode failures and HTTP errors produce an empty response — never leave the leaf hanging, never crash.

Public API surface

Config Field Default CLI Flag Env Var
FossilURL (required) --fossil BRIDGE_FOSSIL_URL
ProjectCode (required) --project BRIDGE_PROJECT_CODE
NATSUrl nats://localhost:4222 --nats BRIDGE_NATS_URL
SubjectPrefix "fossil" --prefix BRIDGE_PREFIX

CLI: cmd/bridge/main.go.

Build & test

cd bridge && go build -buildvcs=false -o ../bin/bridge ./cmd/bridge  # or `make bridge`
cd bridge && go test ./... -short -count=1

Where it fits

Optional middle tier. The leaf agent and the bridge must agree on SubjectPrefix for a given project. JetStream is a drop-in upgrade — replace Request with publish/consume, the Exchange signature is unchanged.

See docs/architecture/agent-deployment.md (Bridge Architecture section) for full details.