File size: 508 Bytes
9756872
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
import { getGcpMetadata } from '../../deps';
import { type KMSProviders } from '.';

/** @internal */
export async function loadGCPCredentials(kmsProviders: KMSProviders): Promise<KMSProviders> {
  const gcpMetadata = getGcpMetadata();

  if ('kModuleError' in gcpMetadata) {
    return kmsProviders;
  }

  const { access_token: accessToken } = await gcpMetadata.instance<{ access_token: string }>({
    property: 'service-accounts/default/token'
  });
  return { ...kmsProviders, gcp: { accessToken } };
}