blitz2145
09/08/2023, 8:39 PMconst metadata = new grpc.Metadata();
metadata.add('X-Serverless-Authorization', 'stuff');
then pass it here: https://github.com/authzed/authzed-node/blob/main/src/v1.ts#L61
But I think I'm missing some intermediate steps to make an interceptor? Haven't seen any worked out examplesblitz2145
09/08/2023, 9:46 PMjs
const client = v1.NewClient(
process.env.AUTHZED_TOKEN,
// isDevelopment ? 'localhost:50051' : process.env.AUTHZED_URL,
isDevelopment ? process.env.AUTHZED_URL : process.env.AUTHZED_URL,
// isDevelopment
// ? v1.ClientSecurity.INSECURE_PLAINTEXT_CREDENTIALS
// : undefined,
undefined,
undefined,
{
interceptors: [
(options, nextCall) => {
return new grpc.InterceptingCall(nextCall(options), {
start: (metadata, listener, next) => {
metadata.add(
'Your_HEADER',
`Bearer ${process.env.YOUR_TOKEN}`
);
next(metadata, listener);
},
});
},
],
}
).promises;
grpc in JS really needs way better DX.Joey
09/08/2023, 9:47 PMJoey
09/08/2023, 9:47 PMblitz2145
09/08/2023, 10:16 PMblitz2145
09/08/2023, 10:17 PMvroldanbet
09/09/2023, 10:22 AMvroldanbet
09/09/2023, 10:23 AMblitz2145
09/09/2023, 11:41 PMblitz2145
09/12/2023, 6:30 PMAuthorization and X-Serverless-Authorization headers.
ts
const sslCreds = credentials.createSsl();
const auth = new GoogleAuth();
const idTokenClient = await auth.getIdTokenClient(
`https://${authzedEndpoint}`
);
const callCreds = createFromGoogleCredential(idTokenClient);
const creds = credentials.combineChannelCredentials(sslCreds, callCreds);
client = v1.NewClientWithChannelCredentials(
authzedEndpoint,
creds
).promises;