@authzed/authzed-js-node
Version:
authzed js client for nodejs
39 lines • 2.55 kB
JavaScript
// @generated by protobuf-ts 2.9.1 with parameter generate_dependencies,long_type_string,client_grpc1
// @generated from protobuf file "authzed/api/materialize/v0/watchpermissions.proto" (package "authzed.api.materialize.v0", syntax proto3)
// tslint:disable
import { WatchPermissionsService } from "./watchpermissions.js";
import * as grpc from "@grpc/grpc-js";
/**
* @generated from protobuf service authzed.api.materialize.v0.WatchPermissionsService
*/
export class WatchPermissionsServiceClient extends grpc.Client {
_binaryOptions;
constructor(address, credentials, options = {}, binaryOptions = {}) {
super(address, credentials, options);
this._binaryOptions = binaryOptions;
}
/**
* WatchPermissions returns a stream of PermissionChange events for the given permissions.
*
* WatchPermissions is a long-running RPC, and will stream events until the client
* closes the connection or the server terminates the stream. The consumer is responsible of
* keeping track of the last seen revision and resuming the stream from that point in the event
* of disconnection or client-side restarts.
*
* The API does not offer a sharding mechanism and thus there should only be one consumer per target system.
* Implementing an active-active HA consumer setup over the same target system will require coordinating which
* revisions have been consumed in order to prevent transitioning to an inconsistent state.
*
* Usage of WatchPermissions requires to be explicitly enabled on the service, including the permissions to be
* watched. It requires more resources and is less performant than WatchPermissionsSets. It's usage
* is only recommended when performing the set intersections of WatchPermissionSets in the client side is not viable
* or there is a strict application requirement to use consume the computed permissions.
*
* @generated from protobuf rpc: WatchPermissions(authzed.api.materialize.v0.WatchPermissionsRequest) returns (stream authzed.api.materialize.v0.WatchPermissionsResponse);
*/
watchPermissions(input, metadata, options) {
const method = WatchPermissionsService.methods[0];
return this.makeServerStreamRequest(`/${WatchPermissionsService.typeName}/${method.name}`, (value) => Buffer.from(method.I.toBinary(value, this._binaryOptions)), (value) => method.O.fromBinary(value, this._binaryOptions), input, metadata, options);
}
}
//# sourceMappingURL=watchpermissions.grpc-client.js.map