Cómo crear su propia pantalla de Configuración de Procesamiento Personalizado

El servicio de Configuración de Procesamiento Personalizado de IPF (denominado CPS en adelante en la documentación) proporciona una manera para que las implementaciones de clientes de IPF creen y mantengan custom configuraciones dinámicas. Este documento le ayudará a gestionar esos ajustes dentro de un IPF implementado por el cliente. Operational Dashboard.

Cuándo utilizar esto

Debe utilizar este documento cuando tenga una configuración de procesamiento personalizada establecida y tenga usuarios que deseen poder editarlas o verlas en el cliente implementado IPF. Operational Dashboard.

Dependencias

Configure sus Ajustes de Procesamiento Personalizados del Servicio

En su archivo de configuración, configure el host y el puerto de su servicio de la siguiente manera:

ipf.dps-api {
  client-type = "connector"
  cps {
    http {
      client {
        host = "your-custom-processing-settings-app"
        port = 8080
      }
    }
  }
}

Cree su propia Vista de Configuración de Procesamiento Personalizado

Cree su Componente Angular

nx g @nx/angular:component apps/my-app/src/lib/custom-processing-settings

Cree una ruta para su vista CPS

The ProcessingEntityGuard debe ser incluido en la configuración de la ruta o el servicio no pasará correctamente la Entidad de Procesamiento activa.
export const appRoutes: Route[] = [
    {
        path: 'app/:processingEntityId/custom-processing-settings',
        canActivate: [ProcessingEntityGuard],
        loadComponent: () => CustomProcessingSettingsHomeComponent
    }
];

Cargue su Configuración de Procesamiento Personalizado desde el Servicio de Procesamiento Personalizado

Una vez que haya creado su componente y lo haya añadido a su aplicación a través de una ruta, puede solicitar el CPS desde el CustomProcessingSettingsService servicio.

El CustomProcessingSettingsService aplicará automáticamente la Entidad de Procesamiento seleccionada a la solicitud frente a su settingName para llamar al CustomProcessingSettingsService con el uniqueAgentId.
constructor(
  private readonly customProcessingSettingsService: CustomProcessingSettingsService
) {}

ngOnInit(): void {
  this.customProcessingSettingsService.getSetting('FEATURE_NAME').subscribe({
    next: (res: CustomProcessingSettings) => {
      this.settingValue = res?.payload?.settingValue?.value;
    },
    error: (err) => {
      if (err.status === 404) {
        this.settingValue = false; // Default value
      }
    }
  });
}

Envíe una solicitud de cambio de usuario al Servicio de Procesamiento Personalizado

Una vez que el usuario haya realizado algunos cambios en la configuración, puede enviar la configuración de vuelta a la CustomProcessingSettingsService para crear una solicitud de cambio.

The CustomProcessingSettingsService se asegurará de que la información correcta de la Entidad de Procesamiento y del usuario se añada a la solicitud.
createChangeRequest(): void {
  const changeRequest = {
    payload: {
      settingCategory: 'boolean',
      settingName: 'FEATURE_FLAG',
      settingFormat: 'BOOLEAN',
      settingValue: { value: true }
    }
  };

  this.customProcessingSettingsService.saveSetting(changeRequest).subscribe({
    next: (res) => {
      // Navigate to approval page
      this.router.navigate(['/processing-settings/approve']);
    }
  });
}

Agregue un enlace a su vista

Por defecto, un elemento de menú "Configuraciones de Procesamiento Personalizadas" aparece en el menú desplegable "Configuraciones de Procesamiento" en la navegación superior si el usuario tiene los permisos correctos configurados; por defecto, enlazará a "app/\" {active_processing_entity}/custom-configuración-de-procesamiento". Usted puede customize esta ruta actualizando el token de inyección a continuación.

Esto se añadirá al final de la ruta predeterminada de la aplicación, por lo que la cadena de ruta debe estar precedida por "/".
export const appConfig: ApplicationConfig = {
    providers: [
        ...
        {
            provide: CUSTOM_PROCESSING_SETTINGS_ROUTE,
            useValue: '/path-to-your-view'
        }
        ...

El ejemplo anterior significará que la ruta de su pantalla de Configuración de Procesamiento Personalizado es "app/{active_processing_entity}/path-to-your-view".