const { ClientSecretCredential } = require('@azure/identity');
require('dotenv').config();
/**
* Configuração de autenticação com Azure
*/
class AzureConfig {
constructor() {
this.subscriptionId = process.env.AZURE_SUBSCRIPTION_ID;
this.tenantId = process.env.AZURE_TENANT_ID;
this.clientId = process.env.AZURE_CLIENT_ID;
this.clientSecret = process.env.AZURE_CLIENT_SECRET;
this.validateConfig();
}
validateConfig() {
const required = ['subscriptionId', 'tenantId', 'clientId', 'clientSecret'];
const missing = required.filter(field => !this[field]);
if (missing.length > 0) {
console.warn('⚠️ AVISO: Configuração Azure incompleta.');
console.warn(` Faltam: ${missing.join(', ')}`);
console.warn(' Configure o arquivo .env com suas credenciais Azure.');
console.warn(' O servidor iniciará, mas as chamadas à API falharão.\n');
this.isConfigured = false;
} else {
this.isConfigured = true;
}
}
getCredential() {
if (!this.isConfigured) {
throw new Error('Credenciais Azure não configuradas. Configure o arquivo .env');
}
return new ClientSecretCredential(
this.tenantId,
this.clientId,
this.clientSecret
);
}
isReady() {
return this.isConfigured;
}
getSubscriptionId() {
return this.subscriptionId;
}
}
module.exports = new AzureConfig();