Skip to content

OpenZMS Internal APIs

OpenZMS services communicate internally over a collection of gRPC services. Services are defined in .proto files in the zms-api repository. Auto-generated documentation for these service definitions is available here. We auto-generate bindings for golang and python; instructions for these bindings are available here.

Here is an list of the services with pointers to their definition and documentation.

  • zms/identity/v1/identity.proto:

    • Description: the identity service provides authentication and authorization services, tokens, role-based access control, and service directory capabilities
    • Documentation: service, overview
  • zms/zmc/v1/zmc.proto:

    • Description: the zmc service provides spectrum and radio support: it acts as an information base and provides scheduling support for spectrum and monitors.
    • Documentation: service, overview
  • zms/dst/v1/dst.proto:

    • Description: the Digital Spectrum Twin service for a ZMS: stores observations, indexes data, propagation simulation maps, and provides a query interface over observations and predicted maps.
    • Documentation: service, overview
  • zms/alarm/v1/alarm.proto:

    • Description: the alarm service for a ZMS: processes Observations, Violations, and Interference events, and recommends corrective actions to the zmc service's Grants.
    • Documentation: service, overview
  • zms/propsim/v1/propsim.proto:

    • Description: the propsim JobService provides a general, parameterizable job run interface, and supports a variety of output formats (e.g. geotiff maps, raw data series). In OpenZMS, this API is typically consumed by the DST (Digital Spectrum Twin) service to run propagation simulations for specific radio ports in the Zone.
    • Documentation: service, overview

Events

Similarly, each service provides a Subscribe method that allows a consumer to register to receive events matching a filter expression as a response stream. Each service defines its own Event type as a protobuf message containing service-specific information, but must include the generic EventHeader message defined in the generic zms/event/v1 service descriptor:

OpenZMS is supported by the National Science Foundation under Award 2232463.