daml/ledger-api
Samir Talwar 0ff716df2a Ledger API: Add healthcheck endpoints. (#3573)
* grpc-definitions: Delete health_service.proto

We can use the version in io.grpc:grpc-services instead.

* ledger: Delete ledger/API.md.

* sandbox: Fix warnings in ApiServices flagged by IntelliJ.

* sandbox: Implement a dummy grpc.health.v1.Health.Check endpoint.

* sandbox: Implement a dummy grpc.health.v1.Health.Watch endpoint.

* sandbox: Drop repeated elements from grpc.health.v1.Health.Watch.

* sandbox: Wrap the HealthService in basic tests.

* sandbox: Stop streaming the server health too.

* ledger-api-test-tool: Health check tests.

* Add a changelog entry for the health check endpoints.

CHANGELOG_BEGIN

- [Ledger API] Add healthcheck endpoints, conforming to the
  `GRPC Health Checking Protocol <https://github.com/grpc/grpc/blob/master/doc/health-checking.md>`_.
  It is always ``SERVING`` for now.

- [DAML Ledger Integration Kit] Add conformance test coverage for the
  ``grpc.health.v1.Health`` service.

CHANGELOG_END

* ledger-api-integration-tests: Increment the number of services.

* Apply suggestions from code review

Co-Authored-By: Stefano Baghino <43749967+stefanobaghino-da@users.noreply.github.com>

* sandbox: Use `AkkaBeforeAndAfterAll` in the HealthServiceSpec.

In an attempt to get it working on CI.

* sandbox: Change `dropRepeated` to `DropRepeated()`.

Keep it in one file.

* test-common: Use `Delayed.by` in `TimeBoundObserver`.

* test-common: Close the source when `TimeBoundObserver` completes.

* ./fmt.sh

That'll teach me not to `--no-verify` just because it's a merge commit.

* sandbox: Inline `HealthService.suppress`.

At some point it was being used twice.

* sandbox: Increase the timeout for HealthServiceSpec.

* sandbox: Reimplement HealthService using the Scala protobuf types.

* sandbox: Generate an Akka-compatible trait for the health service.

And refactor a lot of test code to make it easy to test.

* ledger-api-common: Move the HealthService here.

* rs-grpc-testing-utils: Publish to Maven.

* rs-grpc-testing-utils: Add Maven coordinates.
2019-11-22 14:02:05 +00:00
..
grpc-definitions Ledger API: Add healthcheck endpoints. (#3573) 2019-11-22 14:02:05 +00:00
perf-testing Replace bazel-deps by rules_jvm_external (#3253) 2019-10-28 13:53:14 +01:00
rs-grpc-akka Replace bazel-deps by rules_jvm_external (#3253) 2019-10-28 13:53:14 +01:00
rs-grpc-bridge Ledger API: Add healthcheck endpoints. (#3573) 2019-11-22 14:02:05 +00:00
rs-grpc-testing-utils Ledger API: Add healthcheck endpoints. (#3573) 2019-11-22 14:02:05 +00:00
sample-service Replace bazel-deps by rules_jvm_external (#3253) 2019-10-28 13:53:14 +01:00
scripts open-sourcing daml 2019-04-04 09:33:38 +01:00
testing-utils Ledger API: Add healthcheck endpoints. (#3573) 2019-11-22 14:02:05 +00:00
.gitignore open-sourcing daml 2019-04-04 09:33:38 +01:00
.sbtopts open-sourcing daml 2019-04-04 09:33:38 +01:00
BUILD.bazel update copyright notices (#2499) 2019-08-13 17:23:03 +01:00
README.md correct broken ledger-api-introduction links (#1565) 2019-06-07 15:18:21 -04:00

Ledger-API

This is the API code for the ledger, which contains:

  • gRPC API definitions
  • Generated Scala bindings
  • gRPC-RS bridge
  • gRPC-Akka bridge
  • Server API classes with validation
  • Prototype Server
  • Prototype Clients
    • Scala
    • Python
    • Node.js
  • Integration tests for all of the above

Documentation

The Ledger API Introduction contains introductory material as well as links to the protodocs reference documentation.

See the docs README for more about how to preview and publish documentation.