* Remove the possibility to turn on legacy error codes
CHANGELOG_BEGIN
- Switching to the legacy error codes is not possible.
CHANGELOG_END
* Revert breaking experimental features proto definitions
* Deprecate legacy error codes in proto definitions
* Proper todo naming
* Adjust compatibility tests
* Fix unintentional paste
changelog_begin
Ledger API Specification: CreateUser and GetUser endpoints of UserManagementService now return the CreateUserResponse or GetUserResponse messages, whereas previously they were returning the User message).
changelog_end
CHANGELOG_BEGIN
Ledger API Specification: Maximum number of user rights per user is now limited to 1000 and is added to UserManagementFeature in VersionService. getLedgerApiVersion endpoint.
CHANGELOG_END
Since Scala 2.13.2, Scala introduced built-in support to
manage warnings in a more granular fashion, thus making
the silencer plugin we are currently using no longer
strictly useful. Removing compiler plugins also removes
friction from migrating to Scala 3 in the future. As a
cherry on top, the built-in warning configuration also
allows to check whether a `@nowarn` actually does
anything, allowing us to proactively remove unused
warnings should the need arise.
[Here][1] is s a blog post by the Scala team about it.
Warnings have been either solved or preserved if useful,
trying to minimize the scope (keeping it at the single
expression scope if possible). In particular, all
remaining usages of the Scala Collection API compatibility
module have been removed.
Using the silencer plugin also apparently hid a few
remaining usages of compatibility libraries that were used
as part of the transition from Scala 2.12 to Scala 2.13
that are no longer needed. Removing those warnings
highlighted those.
changelog_begin
changelog_end
[1]: https://www.scala-lang.org/2021/01/12/configuring-and-suppressing-warnings.html
* With mock metering service
* Reformat
changelog_begin
changelog_end
* Include nanos in generation time
* Update with review comments
* Update service count
I’ve kept it on the same test infrastructure that we used before that
can test both ways since it seems nicer to keep this consistent with v1.
changelog_begin
changelog_end
Breaks-protobuf: true
* ledger-api-test-tool: Rename "ParticipantFeature" to "Features".
* ledger-api-test-tool: Govern ContractIdIT test runs through a feature.
Rather than making it optional, we can expose a feature that instructs
whether we support certain kinds of contract IDs.
This accidentally works for Canton too as it defaults to "false" for
both options, which holds for Canton.
CHANGELOG_BEGIN
- [Ledger API Test Tool] The "ContractIdIT" test is now run by default,
using ledger feature flags to determine which test cases are run. You
will need to configure the ``StandaloneApiService`` accordingly.
CHANGELOG_END
* ledger-api: Add some documentation to `ContractIdFeatures`.
* compatibility: Update for ContractIdIT.
run-full-compat: true
* ledger-api: Clarify the contract ID features and remove v0 support.
We also remove the tests for v0 contract IDs from ContractIdIT.
* ledger-api-test-tool: Re-introduce tests for v0 contract IDs.
* ledger-api-test-tool: Case class with named parameters in ContractIdIT.
* ledger-api: All ledgers must support suffixed contract IDs.
* compatibilty: Add a start for ContractIdIT.
We can't exclude a test until it exists.
run-full-compat: true
* Remove reset service from grpc and documentation [DPP-804]
CHANGELOG_BEGIN
Remove reset service from the ledger api protocol and the documentation
CHANGELOG_END
* remove reset service from two left-over places
* remove reset service from the protobuf structure test
* Add report metering protobuf definition
changelog_begin
Added experimental GRPC endpoint for the reporting of metering
changelog_end
* Update with review comments
* add changes from joint review by Simon and Simon :D
* Update with review comments
* Update with review comments
Co-authored-by: Simon Meier <simon@digitalasset.com>
* ledger api: support Auth0 user names in user management
See the `IdString.UserId` and `IdString.ApplicationId` comments wrt the
character classes being introduced.
Many thanks to @cocreature for helping with deciding on the exact
restrictions of user-ids.
CHANGELOG_BEGIN
CHANGELOG_END
New year, new copyright, new expected unknown issues with various files
that won't be covered by the script and/or will be but shouldn't change.
I'll do the details on Jan 1, but would appreciate this being
preapproved so I can actually get it merged by then.
CHANGELOG_BEGIN
CHANGELOG_END
* Get rid of deprecated components
Removes:
- mentions of the Node.js bindings
- mentions of the Scala bindings
- usage of the Scala codegen as an SDK tool
- Java bindings "reactive components"
changelog_begin
The Node.js bindings are no longer supported as part of the Daml SDK
The Scala bindings are no longer supported as part of the Daml SDK
The Java bindings reactive components are no longer supported as part of the Daml SDK
The `daml codegen` command has dropped support for Scala
changelog_end
* Fix typo noticed by @cocreature
Co-authored-by: Moritz Kiefer <moritz.kiefer@purelyfunctional.org>
* Address https://github.com/digital-asset/daml/pull/12167#issuecomment-995714093
* Remove quickstart-scala from the SDK tarballs
* Fix failing codegen test
* Address https://github.com/digital-asset/daml/pull/12167#pullrequestreview-833991243
Co-authored-by: Moritz Kiefer <moritz.kiefer@purelyfunctional.org>
user management: add defaulting for the application_id field of requests
CHANGELOG_BEGIN
- [Ledger API]: as a convenience when using JWT authentication, a
request's application_id field can be left empty to ask the server to
set the field to the id of the authenticated user or the application-id
in the custom token. There are three services that currently specify
application_id's in the request: CommandService,
CommandSubmissionService, and CommandCompletionService.
CHANGELOG_END
* Add Ledger API feature descriptor for user management.
Includes:
- enabling the UserManagementServiceIT tests by default; and skipping them for ledgers that do not support user management. The correct working of this is tested by the cross-version compatibility checks between the ledger-api-test-tool
- some refactoring wrt the parsing and representation of features the the ledger-api-test tool.
CHANGELOG_BEGIN
- [Ledger API]: introduce a feature descriptor for whether the ledger supports user management
CHANGELOG_END
CHANGELOG_BEGIN
- [User Management]: add support for managing participant node users and authenticating
requests as these users using standard JWT tokens.
CHANGELOG_END
Co-authored-by: Marton Nagy <marton.nagy@digitalasset.com>
Co-authored-by: Adriaan Moors <90182053+adriaanm-da@users.noreply.github.com>
* concurrent: Replace `DirectExecutionContextInternal` with `parasitic`.
* concurrent: Rename `DirectExecutionContext` `parasitic`.
* Use `ExecutionContext.parasitic` instead of `DirectExecutionContext`.
We no longer need the latter.
CHANGELOG_BEGIN
CHANGELOG_END
* Fix formatting.
Builds upon #1180 to render the oneof fields a bit nicer.
Note that we also need to kill newlines in the descriptions. That’s
not an issue in the plugin but in how rst renders tables.
fixes#11761
changelog_begin
changelog_end
* Try to upgrade protobuf docs plugin
changelog_begin
changelog_end
* Fix extension number 65020 is already registered
Building `//ledger-api/grpc-definitions:ledger-api-docs` [failed
with](https://github.com/digital-asset/daml/issues/11761#issuecomment-978947565)
```
panic: proto: extension number 65020 is already registered on message google.protobuf.FieldOptions
```
Go dependencies are now pulled in via Gazelle. By default Gazelle will
generate new proto rules for any `.proto` files encountered in third
party Go dependencies. However, many of these already have pregenerated
`.pb.go` files generate with the appropriate configuration.
The problem can be avoided by configuring Gazelle to not generate new
proto rules, but instead use pre-existing `.pb.go` files.
For reference the field number is set in
[go-proto-validators](32a686adf8/validator.proto (L19))
which is an indirect dependency through protoc-gen-doc.
In this case we need to update protoc-gen-validate to v0.6.2 to include
4f41f10dde
which fixes unknown label errors.
* ./fmt
* Expose gRPC status.proto for Haskell bindings
* Update Gazelle to support embedsrcs on Windows
`protoc-gen-doc` relies on `go:embed` file embedding
2dde01902b/resources.go (L8).
Gazelle supports `embedsrcs`, however, it did not generate the attribute
correctly on Windows due to the different directory separator. This is
fixed in https://github.com/bazelbuild/bazel-gazelle/pull/1101.
* Add gazelle to compatibility workspace
It's loaded into `@daml`'s top-level `BUILD` file and ends up being a
dependency of the compatibility workspace as well.
* shift go_googleapis import
* Delete dead code
protobuf is imported transitively.
* Document how to add Go dependencies
Co-authored-by: Moritz Kiefer <moritz.kiefer@purelyfunctional.org>
Co-authored-by: Andreas Herrmann <andreas.herrmann@tweag.io>
* Introduce definitions for experimental user management service.
Only gRPC definitions are added. No new service is exposed by the Ledger
API server.
CHANGELOG_BEGIN
- [Ledger API] Introduce gRPC definitions for experimental user
managament service to manage users and their rights for interacting
with the Ledger API served by a participant node.
CHANGELOG_END