You can integrate GCP Secret Manager into your application using ConfigifyModule in two ways:
1. Using the default factory (Recommended)
Use GoogleCloudSecretsResolverFactory.defaultSecretManagerConfigurationResolver() for a standard setup.
2. Using a custom SecretManagerServiceClient
If you need to provide your own instance of SecretManagerServiceClient (e.g., for custom authentication or client configuration), wrap the GoogleCloudSecretManagerConfigurationResolver inside a RemoteConfigurationResolver.
// Option 1: Default Factory
import { ConfigifyModule } from '@itgorillaz/configify';
import { GoogleCloudSecretsResolverFactory } from '@itgorillaz/configify/configuration/resolvers/gcp';
@Module({
imports: [
ConfigifyModule.forRootAsync({
secretsResolverStrategies: [
GoogleCloudSecretsResolverFactory.defaultSecretManagerConfigurationResolver(),
],
}),
],
})
export class AppModule {}
// Option 2: Custom Client
import { SecretManagerServiceClient } from '@google-cloud/secret-manager';
import { ConfigifyModule, RemoteConfigurationResolver } from '@itgorillaz/configify';
import { GoogleCloudSecretManagerConfigurationResolver } from '@itgorillaz/configify/configuration/resolvers/gcp';
@Module({
imports: [
ConfigifyModule.forRootAsync({
secretsResolverStrategies: [
new RemoteConfigurationResolver(
new GoogleCloudSecretManagerConfigurationResolver(
new SecretManagerServiceClient(),
),
),
],
}),
],
})
export class AppModule {}