Files
mxaccessgw/docs/Contracts.md
T
2026-04-26 16:10:11 -04:00

1.5 KiB

Protobuf Contracts

The contracts project contains the public gRPC API and the gateway-to-worker IPC messages. The .proto files are the source of truth; generated C# files are recreated by the contracts project build.

Files

src/MxGateway.Contracts/Protos/mxaccess_gateway.proto defines the public MxAccessGateway gRPC service, command payloads, command replies, event DTOs, MxValue, MxArray, and MxStatusProxy.

src/MxGateway.Contracts/Protos/mxaccess_worker.proto defines the named-pipe worker IPC envelope and control messages. It imports mxaccess_gateway.proto so the worker and gateway use the same command, reply, event, value, and status shapes.

Generated C# output is written to src/MxGateway.Contracts/Generated/. Do not hand-edit generated files.

Generation

Run the contracts build to regenerate C# protobuf and gRPC code:

dotnet build src/MxGateway.Contracts/MxGateway.Contracts.csproj

Run the focused contract tests after changing either .proto file:

dotnet test src/MxGateway.Tests/MxGateway.Tests.csproj --filter ProtobufContractRoundTripTests

The full solution build also regenerates the C# contracts before compiling gateway and test projects:

dotnet build src/MxGateway.sln