infracloud/invista/nexus/MFE-URLS.md

6.2 KiB

MFE Shell — Configuração de Endereços

Referência dos três arquivos onde ficam os endereços no mfe-shell (branch devops).

Documentação completa: tf_oci_clusters/docs/mfe-architecture.md


Como funciona (main.ts)

O main.ts decide qual manifesto usar conforme o ambiente:

import { environment } from './environments/environment';

if (!environment.production) {
  // DEV: lê environment.federationManifest, cria blob URL dinâmico
  const blob = new Blob([JSON.stringify(environment.federationManifest)], { type: 'application/json' });
  initFederation(URL.createObjectURL(blob))...
} else {
  // PROD: usa o arquivo estático
  initFederation('federation.manifest.json')...
}
Build Manifesto usado Arquivo
npm run build:dev (produção = false) environment.federationManifest src/environments/environment.dev.ts
npm run build:prod (produção = true) arquivo estático public/federation.manifest.json

1. src/environments/environment.dev.ts — Arquivo principal (build DEV)

É aqui que ficam as URLs reais usadas no deploy OCI (build npm run build:dev).

export const environment = {
  production: false,
  development: true,

  // URLs dos MFEs remotos (federation)
  federationManifest: {
    'mfe-auth':   'https://nexus-auth-dev.invista.com.br/remoteEntry.json',
    'mfe-user':   'https://nexus-user-dev.invista.com.br/remoteEntry.json',
    'mfe-person': 'https://nexus-person-dev.invista.com.br/remoteEntry.json',
    'mfe-poc':    'https://nexus-poc-dev.invista.com.br/remoteEntry.json'
  },

  // URLs das APIs backend
  apiUrls: {
    baseUrl:         'https://llbywpgzxj.execute-api.us-east-2.amazonaws.com/dev/api',
    authUrl:         'https://llbywpgzxj.execute-api.us-east-2.amazonaws.com/dev/api/auth',
    userUrl:         'https://04fy406qme.execute-api.us-east-2.amazonaws.com/dev/api/user',
    personUrl:       'https://qfmruzhrlj.execute-api.us-east-2.amazonaws.com/dev/api/person',
    userExternalUrl: 'https://04fy406qme.execute-api.us-east-2.amazonaws.com/dev/api/user-external',
    ssoUrl:          'https://n7u24ds9cg.execute-api.us-east-2.amazonaws.com/dev/api/sso/Auth',
    pocUrl:          'https://pd98177mna.execute-api.us-east-2.amazonaws.com/dev/api/poc',
    beltUrl:         'https://yxnupsrqx5.execute-api.us-east-2.amazonaws.com/dev/api/belt',
    notificationUrl: 'https://z2yz9ykvtd.execute-api.us-east-2.amazonaws.com/dev/api/notification'
  }
};

Observações:

  • federationManifest: aponta para nexus-{name}-dev.invista.com.br — domínios Cloudflare
  • apiUrls: ainda apontam para AWS API Gateway (us-east-2) — pendente migração OCI
  • mfe-formalization não está no federationManifest (não tem rota no shell ainda)

2. public/federation.manifest.json — Manifesto estático (build PROD)

Usado apenas em builds de produção (environment.production = true). Atualmente aponta para localhost (desenvolvimento local).

{
  "mfe-auth":   "https://localhost:4201/remoteEntry.json",
  "mfe-user":   "https://localhost:4202/remoteEntry.json",
  "mfe-person": "https://localhost:4203/remoteEntry.json"
}

Atenção: Este arquivo não é usado no deploy OCI atual (build:dev). Precisa ser atualizado antes de ter um build de produção funcional.


3. src/app/core/config/environment.service.ts — Serviço exposto via federation

Exposto para todos os MFEs remotos via ./EnvironmentService. Os remotes consomem as URLs de API daqui.

private config: AppConfig = {
  production:      false,
  baseUrl:         'https://llbywpgzxj.execute-api.us-east-2.amazonaws.com/dev/api',
  authUrl:         'https://llbywpgzxj.execute-api.us-east-2.amazonaws.com/dev/api/auth',
  userUrl:         'https://04fy406qme.execute-api.us-east-2.amazonaws.com/dev/api/user',
  personUrl:       'https://qfmruzhrlj.execute-api.us-east-2.amazonaws.com/dev/api/person',
  userExternalUrl: 'https://04fy406qme.execute-api.us-east-2.amazonaws.com/dev/api/user-external',
  ssoUrl:          'https://n7u24ds9cg.execute-api.us-east-2.amazonaws.com/dev/api/sso/Auth',
  version:         '1.0.0',
  appName:         'Invista App'
};

Valores idênticos ao environment.dev.ts > apiUrls (AWS). Provavelmente deve ser refatorado para ler de environment.


Resumo: o que mudar para OCI

federationManifest (environment.dev.ts)

As URLs nexus-{name}-dev.invista.com.br precisam resolver para os buckets OCI. Opção A — DNS Cloudflare apontando para API Gateway MFE:

federationManifest: {
  'mfe-auth':          'https://mfe-auth-dev.invista.com.br/remoteEntry.json',
  'mfe-user':          'https://mfe-user-dev.invista.com.br/remoteEntry.json',
  'mfe-person':        'https://mfe-person-dev.invista.com.br/remoteEntry.json',
  'mfe-formalization': 'https://mfe-formalization-dev.invista.com.br/remoteEntry.json',
  'mfe-poc':           'https://mfe-poc-dev.invista.com.br/remoteEntry.json'
}

Opção B — URL direta Object Storage (sem DNS):

'mfe-auth': 'https://objectstorage.sa-saopaulo-1.oraclecloud.com/n/grbb7qzeuoag/b/mfe-auth-dev/o/remoteEntry.json'

apiUrls (environment.dev.ts + EnvironmentService)

Substituir todos os domínios *.execute-api.us-east-2.amazonaws.com por:

https://api-dev.invista.com.br/api/*

(Cloudflare → LB Test_Crivo_Dev → api-gateway-nexus-dev, já funcional)


Checklist de pendências

  • Adicionar mfe-formalization ao federationManifest em environment.dev.ts
  • Atualizar domínios do federationManifest: nexus-{name}-devmfe-{name}-dev (ou URL OCI direta)
  • Migrar apiUrls de AWS para OCI (api-dev.invista.com.br)
  • Migrar EnvironmentService para ler de environment.apiUrls (evitar duplicação)
  • Atualizar public/federation.manifest.json para build de produção
  • DNS Cloudflare: mfe-{name}-dev.invista.com.br + api-dev.invista.com.br
  • VCN peering vcn-oke ↔ DRG-Invista-Shared

Atualizado em: 2026-03-01 | Leitura direta do repo mfe-shell (branch devops)