azure.js•1.41 kB
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();