Skip to content

Base options

Base Request Options.

as_metadata(credentials=None, requires_leader=None)

Returns a valid grpc "metadata" object.

Source code in src/eventstore_grpc/options/base_options.py
def as_metadata(
    credentials: Optional[Dict[str, str]] = None, requires_leader: Optional[bool] = None
) -> Optional[List[Tuple[str, str]]]:
    """Returns a valid grpc "metadata" object."""
    metadata = []
    if credentials is not None:
        if all(elm in ["username", "password"] for elm in credentials):
            token = f"{credentials['username']}:{credentials['password']}"
            token = base64.b64encode(token.encode("ascii")).decode("ascii")
            auth = ("authorization", f"Bearer {token}")
            metadata.append(auth)
    if requires_leader is not None:
        req_leader = ("requires-leader", str(requires_leader).lower())
        metadata.append(req_leader)
    return metadata if metadata else None