Orchestrator
2022.4
False
    • 2022.4
    • 2022.4.2
    • 2022.4.4
    • 2022.4.5
    • 2022.4.6
    • 2022.4.7
    • 2022.4.8
    • 2022.4.9
    • 2022.4.10
    • 2022.4.11
2022.4.5 - Automation Suite 2022.4
Imagen de fondo del banner
Logotipo
Orchestrator Release Notes
Última actualización 19 de dic. de 2023

2022.4.5

Fecha de publicación: 12 de diciembre de 2022

Añadido el 12 de enero de 2023: versión mínima de Elasticsearch y Kibana cambiada

A partir de esta versión, la versión mínima necesaria para Elasticsearch y Kibana es la 7.16.3.

Además, Elasticsearch 7.16.3 debe instalarse mediante un archivo .zip , ya que los paquetes del instalador para Windows MSI de este producto ya no se publicarán después de la versión 7.16.2.

Problemaconocido: versiones de Elasticsearch anteriores a la 7.16.3 evitar el registro y devolver un UnsupportedProductException. Este problema se solucionará en la próxima actualización acumulativa, lo que te permitirá usar también versiones anteriores de Elasticsearch.

Mejoras

La carga útil del webhook jobs.created para el caso de prueba ahora contiene el ID de robot específico y la máquina utilizada para la ejecución del trabajo.

Corrección de errores

Correcciones de vulnerabilidad de seguridad

  • Hemos corregido un problema que causaba que la contraseña utilizada para conectarse a un proveedor de depósito de almacenamiento se almacenara en la base de datos. Esto sucedía al crear o editar un depósito de almacenamiento. La contraseña podía ser recuperada por un administrador SQL con acceso de lectura a la base de datos, o por cualquiera con permiso Ver en Auditoría mediante la API.
  • Hemos corregido una incidencia que ocasionaba que las contraseñas de almacén de credenciales se almacenaran en la base de datos. Las contraseñas podían ser recuperadas por un administrador SQL con acceso de lectura a la base de datos, o por cualquiera con permiso Ver en Auditoría mediante la API.
  • Hemos corregido un problema que causaba que los códigos de licencia fueran visibles en la respuesta devuelta por las llamadas que recuperaban todos los datos de auditoría.
  • Hemos corregido una incidencia que ocasionaba que las contraseñas de fuentes externas se almacenaran en la base de datos. Esto sucedía cuando creabas una fuente externa para mantenimiento de paquetes de automatización.

Utiliza este script para limpiar cualquier contraseña mostrada en los registros existentes. El script puede ejecutarse antes de actualizarse a esta versión.

DECLARE @serverVersion INT
SET @serverVersion = ISNULL(CAST(COALESCE(SERVERPROPERTY('ProductMajorVersion'),PARSENAME(CAST(SERVERPROPERTY('productversion') AS varchar(20)), 4)) as INT),0)IF NOT EXISTS (SELECT 1 from [dbo].[Settings] WHERE [Name] = 'Migration.AuditCleanup.Buckets' AND [TenantId] IS NULL)
BEGIN
    IF @serverVersion >= 13 -- SQL Server 2016
        -- Remove just the password if json functions are supported
        EXECUTE sp_executesql N'
            UPDATE [dbo].[AuditLogs]
            SET [Parameters] = JSON_MODIFY([Parameters], ''$.bucketDto.Password'', NULL)
            WHERE 
                [TenantId] IN (SELECT DISTINCT TenantId FROM [dbo].[Buckets] WHERE [StorageProvider] IN (''Amazon'',''Azure'',''Minio'',''S3Compatible'')) AND
                [ServiceName] = ''UiPath.Orchestrator.Web.Api.OData.Controllers.BucketsController'' AND
                CHARINDEX(''Password'', [Parameters]) > 0 AND
                NULLIF(JSON_VALUE([Parameters], ''$.bucketDto.Password''), '''') IS NOT NULL'
    ELSE
        -- Remove all parameters if json functions are not supported
        EXECUTE sp_executesql N'
            UPDATE [dbo].[AuditLogs]
            SET [Parameters] = ''''
            WHERE 
                [TenantId] IN (SELECT DISTINCT TenantId FROM [dbo].[Buckets] WHERE [StorageProvider] IN (''Amazon'',''Azure'',''Minio'',''S3Compatible'')) AND
                [ServiceName] = ''UiPath.Orchestrator.Web.Api.OData.Controllers.BucketsController'' AND
                CHARINDEX(''Password'', [Parameters]) > 0'
    INSERT INTO [dbo].[Settings] ([TenantId],[UserId],[Name],[Value],[CreationTime])
         VALUES (null,null,'Migration.AuditCleanup.Buckets','true',GETUTCDATE())
ENDIF NOT EXISTS (SELECT 1 from [dbo].[Settings] WHERE [Name] = 'Migration.AuditCleanup.CredentialStores' AND [TenantId] IS NULL)
BEGIN
    IF @serverVersion >= 13 -- SQL Server 2016
        -- Remove just the password if json functions are supported
        EXECUTE sp_executesql N'
            UPDATE [dbo].[AuditLogs]
            SET [Parameters] = JSON_MODIFY([Parameters], ''$.credentialStoreDto.AdditionalConfiguration'', NULL)
            WHERE 
                [TenantId] IN (SELECT DISTINCT TenantId FROM [dbo].[CredentialStores] WHERE [Type] <> ''Database'') AND
                [ServiceName] = ''UiPath.Orchestrator.Web.Api.OData.Controllers.CredentialStoresController'' AND
                CHARINDEX(''AdditionalConfiguration'', [Parameters]) > 0 AND
                ISJSON([Parameters]) = 1 AND
                NULLIF(JSON_VALUE([Parameters], ''$.credentialStoreDto.AdditionalConfiguration''), '''') IS NOT NULL
            -- Some records are truncated, so not valid JSON
            UPDATE [dbo].[AuditLogs]
            SET [Parameters] = ''''
            WHERE 
                [TenantId] IN (SELECT DISTINCT TenantId FROM [dbo].[CredentialStores] WHERE [Type] <> ''Database'') AND
                [ServiceName] = ''UiPath.Orchestrator.Web.Api.OData.Controllers.CredentialStoresController'' AND
                CHARINDEX(''AdditionalConfiguration'', [Parameters]) > 0 AND
                ISJSON([Parameters]) = 0'
    ELSE
        -- Remove all parameters if json functions are not supported
        EXECUTE sp_executesql N'
            UPDATE [dbo].[AuditLogs]
            SET [Parameters] = ''''
            WHERE 
                [TenantId] IN (SELECT DISTINCT TenantId FROM [dbo].[CredentialStores] WHERE [Type] <> ''Database'') AND
                [ServiceName] = ''UiPath.Orchestrator.Web.Api.OData.Controllers.CredentialStoresController'' AND
                CHARINDEX(''AdditionalConfiguration'', [Parameters]) > 0'
    INSERT INTO [dbo].[Settings] ([TenantId],[UserId],[Name],[Value],[CreationTime])
         VALUES (null,null,'Migration.AuditCleanup.CredentialStores','true',GETUTCDATE())
ENDIF NOT EXISTS (SELECT 1 from [dbo].[Settings] WHERE [Name] = 'Migration.AuditCleanup.PackageFeedApiKey' AND [TenantId] IS NULL)
BEGIN
    IF @serverVersion >= 13 -- SQL Server 2016
        -- Remove just the password if json functions are supported
        EXECUTE sp_executesql N'
            UPDATE [dbo].[AuditLogEntities] 
            SET [CustomData] = JSON_MODIFY([CustomData], ''$.ApiKey'', NULL)
            WHERE
                [EntityId] IS NULL AND
                [EntityName] = ''UiPackageFeed'' AND 
                CHARINDEX(''ApiKey'', [CustomData]) > 0 AND 
                JSON_VALUE([CustomData], ''$.ApiKey'') IS NOT NULL'
    ELSE
        -- Remove just the password if json functions are supported
        EXECUTE sp_executesql N'
            UPDATE [dbo].[AuditLogEntities] 
            SET [CustomData] = ''''
            WHERE
                [EntityId] IS NULL AND
                [EntityName] = ''UiPackageFeed'' AND 
                CHARINDEX(''ApiKey'', [CustomData]) > 0'
    INSERT INTO [dbo].[Settings] ([TenantId],[UserId],[Name],[Value],[CreationTime])
        VALUES (null,null,'Migration.AuditCleanup.PackageFeedApiKey','true',GETUTCDATE())
ENDIF NOT EXISTS (SELECT 1 from [dbo].[Settings] WHERE [Name] = 'Migration.AuditCleanup.PackageFeedBasicPassword' AND [TenantId] IS NULL)
BEGIN
    IF @serverVersion >= 13 -- SQL Server 2016
        -- Remove just the password if json functions are supported
        EXECUTE sp_executesql N'
            UPDATE [dbo].[AuditLogEntities] 
            SET [CustomData] = JSON_MODIFY([CustomData], ''$.BasicPassword'', NULL)
            WHERE
                [EntityId] IS NULL AND
                [EntityName] = ''UiPackageFeed'' AND 
                CHARINDEX(''BasicPassword'', [CustomData]) > 0 AND 
                JSON_VALUE([CustomData], ''$.BasicPassword'') IS NOT NULL'
    ELSE
        -- Remove just the password if json functions are supported
        EXECUTE sp_executesql N'
            UPDATE [dbo].[AuditLogEntities] 
            SET [CustomData] = ''''
            WHERE
                [EntityId] IS NULL AND
                [EntityName] = ''UiPackageFeed'' AND 
                CHARINDEX(''BasicPassword'', [CustomData]) > 0'
    INSERT INTO [dbo].[Settings] ([TenantId],[UserId],[Name],[Value],[CreationTime])
        VALUES (null,null,'Migration.AuditCleanup.PackageFeedBasicPassword','true',GETUTCDATE())
ENDIF NOT EXISTS (SELECT 1 from [dbo].[Settings] WHERE [Name] = 'Migration.AuditCleanup.LicenseKey' AND [TenantId] IS NULL)
BEGIN
    IF @serverVersion >= 13 -- SQL Server 2016
        EXECUTE sp_executesql N'
            UPDATE [dbo].[AuditLogs]
            SET [Parameters] = JSON_MODIFY([Parameters], ''$.licenseKey'', NULL)
            WHERE
                [ServiceName] = ''UiPath.Orchestrator.Web.Api.OData.Controllers.SettingsController'' AND 
                CHARINDEX(''licenseKey'', [Parameters]) > 0 AND
                ISJSON([Parameters]) = 1 AND
                JSON_VALUE([Parameters], ''$.licenseKey'') IS NOT NULL
                
            UPDATE [dbo].[AuditLogs]
            SET [Parameters] = ''''
            WHERE
                [ServiceName] = ''UiPath.Orchestrator.Web.Api.OData.Controllers.SettingsController'' AND 
                CHARINDEX(''licenseKey'', [Parameters]) > 0 AND
                ISJSON([Parameters]) = 0'
    ELSE
        EXECUTE sp_executesql N'
            UPDATE [dbo].[AuditLogs]
            SET [Parameters] = ''''
            WHERE
            [ServiceName] = ''UiPath.Orchestrator.Web.Api.OData.Controllers.SettingsController'' AND 
            CHARINDEX(''licenseKey'', [Parameters]) > 0'
    INSERT INTO [dbo].[Settings] ([TenantId],[UserId],[Name],[Value],[CreationTime])
        VALUES (null,null,'Migration.AuditCleanup.LicenseKey','true',GETUTCDATE())
ENDDECLARE @serverVersion INT
SET @serverVersion = ISNULL(CAST(COALESCE(SERVERPROPERTY('ProductMajorVersion'),PARSENAME(CAST(SERVERPROPERTY('productversion') AS varchar(20)), 4)) as INT),0)
​
IF NOT EXISTS (SELECT 1 from [dbo].[Settings] WHERE [Name] = 'Migration.AuditCleanup.Buckets' AND [TenantId] IS NULL)
BEGIN
    IF @serverVersion >= 13 -- SQL Server 2016
        -- Remove just the password if json functions are supported
        EXECUTE sp_executesql N'
            UPDATE [dbo].[AuditLogs]
            SET [Parameters] = JSON_MODIFY([Parameters], ''$.bucketDto.Password'', NULL)
            WHERE 
                [TenantId] IN (SELECT DISTINCT TenantId FROM [dbo].[Buckets] WHERE [StorageProvider] IN (''Amazon'',''Azure'',''Minio'',''S3Compatible'')) AND
                [ServiceName] = ''UiPath.Orchestrator.Web.Api.OData.Controllers.BucketsController'' AND
                CHARINDEX(''Password'', [Parameters]) > 0 AND
                NULLIF(JSON_VALUE([Parameters], ''$.bucketDto.Password''), '''') IS NOT NULL'
    ELSE
        -- Remove all parameters if json functions are not supported
        EXECUTE sp_executesql N'
            UPDATE [dbo].[AuditLogs]
            SET [Parameters] = ''''
            WHERE 
                [TenantId] IN (SELECT DISTINCT TenantId FROM [dbo].[Buckets] WHERE [StorageProvider] IN (''Amazon'',''Azure'',''Minio'',''S3Compatible'')) AND
                [ServiceName] = ''UiPath.Orchestrator.Web.Api.OData.Controllers.BucketsController'' AND
                CHARINDEX(''Password'', [Parameters]) > 0'
    INSERT INTO [dbo].[Settings] ([TenantId],[UserId],[Name],[Value],[CreationTime])
         VALUES (null,null,'Migration.AuditCleanup.Buckets','true',GETUTCDATE())
END
​
IF NOT EXISTS (SELECT 1 from [dbo].[Settings] WHERE [Name] = 'Migration.AuditCleanup.CredentialStores' AND [TenantId] IS NULL)
BEGIN
    IF @serverVersion >= 13 -- SQL Server 2016
        -- Remove just the password if json functions are supported
        EXECUTE sp_executesql N'
            UPDATE [dbo].[AuditLogs]
            SET [Parameters] = JSON_MODIFY([Parameters], ''$.credentialStoreDto.AdditionalConfiguration'', NULL)
            WHERE 
                [TenantId] IN (SELECT DISTINCT TenantId FROM [dbo].[CredentialStores] WHERE [Type] <> ''Database'') AND
                [ServiceName] = ''UiPath.Orchestrator.Web.Api.OData.Controllers.CredentialStoresController'' AND
                CHARINDEX(''AdditionalConfiguration'', [Parameters]) > 0 AND
                ISJSON([Parameters]) = 1 AND
                NULLIF(JSON_VALUE([Parameters], ''$.credentialStoreDto.AdditionalConfiguration''), '''') IS NOT NULL
            -- Some records are truncated, so not valid JSON
            UPDATE [dbo].[AuditLogs]
            SET [Parameters] = ''''
            WHERE 
                [TenantId] IN (SELECT DISTINCT TenantId FROM [dbo].[CredentialStores] WHERE [Type] <> ''Database'') AND
                [ServiceName] = ''UiPath.Orchestrator.Web.Api.OData.Controllers.CredentialStoresController'' AND
                CHARINDEX(''AdditionalConfiguration'', [Parameters]) > 0 AND
                ISJSON([Parameters]) = 0'
    ELSE
        -- Remove all parameters if json functions are not supported
        EXECUTE sp_executesql N'
            UPDATE [dbo].[AuditLogs]
            SET [Parameters] = ''''
            WHERE 
                [TenantId] IN (SELECT DISTINCT TenantId FROM [dbo].[CredentialStores] WHERE [Type] <> ''Database'') AND
                [ServiceName] = ''UiPath.Orchestrator.Web.Api.OData.Controllers.CredentialStoresController'' AND
                CHARINDEX(''AdditionalConfiguration'', [Parameters]) > 0'
    INSERT INTO [dbo].[Settings] ([TenantId],[UserId],[Name],[Value],[CreationTime])
         VALUES (null,null,'Migration.AuditCleanup.CredentialStores','true',GETUTCDATE())
END
​
IF NOT EXISTS (SELECT 1 from [dbo].[Settings] WHERE [Name] = 'Migration.AuditCleanup.PackageFeedApiKey' AND [TenantId] IS NULL)
BEGIN
    IF @serverVersion >= 13 -- SQL Server 2016
        -- Remove just the password if json functions are supported
        EXECUTE sp_executesql N'
            UPDATE [dbo].[AuditLogEntities] 
            SET [CustomData] = JSON_MODIFY([CustomData], ''$.ApiKey'', NULL)
            WHERE
                [EntityId] IS NULL AND
                [EntityName] = ''UiPackageFeed'' AND 
                CHARINDEX(''ApiKey'', [CustomData]) > 0 AND 
                JSON_VALUE([CustomData], ''$.ApiKey'') IS NOT NULL'
    ELSE
        -- Remove just the password if json functions are supported
        EXECUTE sp_executesql N'
            UPDATE [dbo].[AuditLogEntities] 
            SET [CustomData] = ''''
            WHERE
                [EntityId] IS NULL AND
                [EntityName] = ''UiPackageFeed'' AND 
                CHARINDEX(''ApiKey'', [CustomData]) > 0'
    INSERT INTO [dbo].[Settings] ([TenantId],[UserId],[Name],[Value],[CreationTime])
        VALUES (null,null,'Migration.AuditCleanup.PackageFeedApiKey','true',GETUTCDATE())
END
​
IF NOT EXISTS (SELECT 1 from [dbo].[Settings] WHERE [Name] = 'Migration.AuditCleanup.PackageFeedBasicPassword' AND [TenantId] IS NULL)
BEGIN
    IF @serverVersion >= 13 -- SQL Server 2016
        -- Remove just the password if json functions are supported
        EXECUTE sp_executesql N'
            UPDATE [dbo].[AuditLogEntities] 
            SET [CustomData] = JSON_MODIFY([CustomData], ''$.BasicPassword'', NULL)
            WHERE
                [EntityId] IS NULL AND
                [EntityName] = ''UiPackageFeed'' AND 
                CHARINDEX(''BasicPassword'', [CustomData]) > 0 AND 
                JSON_VALUE([CustomData], ''$.BasicPassword'') IS NOT NULL'
    ELSE
        -- Remove just the password if json functions are supported
        EXECUTE sp_executesql N'
            UPDATE [dbo].[AuditLogEntities] 
            SET [CustomData] = ''''
            WHERE
                [EntityId] IS NULL AND
                [EntityName] = ''UiPackageFeed'' AND 
                CHARINDEX(''BasicPassword'', [CustomData]) > 0'
    INSERT INTO [dbo].[Settings] ([TenantId],[UserId],[Name],[Value],[CreationTime])
        VALUES (null,null,'Migration.AuditCleanup.PackageFeedBasicPassword','true',GETUTCDATE())
END
​
IF NOT EXISTS (SELECT 1 from [dbo].[Settings] WHERE [Name] = 'Migration.AuditCleanup.LicenseKey' AND [TenantId] IS NULL)
BEGIN
    IF @serverVersion >= 13 -- SQL Server 2016
        EXECUTE sp_executesql N'
            UPDATE [dbo].[AuditLogs]
            SET [Parameters] = JSON_MODIFY([Parameters], ''$.licenseKey'', NULL)
            WHERE
                [ServiceName] = ''UiPath.Orchestrator.Web.Api.OData.Controllers.SettingsController'' AND 
                CHARINDEX(''licenseKey'', [Parameters]) > 0 AND
                ISJSON([Parameters]) = 1 AND
                JSON_VALUE([Parameters], ''$.licenseKey'') IS NOT NULL
                
            UPDATE [dbo].[AuditLogs]
            SET [Parameters] = ''''
            WHERE
                [ServiceName] = ''UiPath.Orchestrator.Web.Api.OData.Controllers.SettingsController'' AND 
                CHARINDEX(''licenseKey'', [Parameters]) > 0 AND
                ISJSON([Parameters]) = 0'
    ELSE
        EXECUTE sp_executesql N'
            UPDATE [dbo].[AuditLogs]
            SET [Parameters] = ''''
            WHERE
            [ServiceName] = ''UiPath.Orchestrator.Web.Api.OData.Controllers.SettingsController'' AND 
            CHARINDEX(''licenseKey'', [Parameters]) > 0'
    INSERT INTO [dbo].[Settings] ([TenantId],[UserId],[Name],[Value],[CreationTime])
        VALUES (null,null,'Migration.AuditCleanup.LicenseKey','true',GETUTCDATE())
END

Lee la recomendación de seguridad de UiPath Orchestrator: exposición de información sensible.

Correcciones diversas

  • Hemos mejorado la seguridad de nuestro sistema restringiendo que información interna innecesaria se exponga en determinadas respuestas de error.
  • Los robots no podían recuperar sus contraseñas si sus secretos se almacenaban en un almacén de credenciales de HashiCorp Vault configurado con el motor de secretos de ActiveDirectory.
  • Los archivos de depósito de almacenamiento se eliminaban incorrectamente debido a un problema relacionado con la eliminación de carpetas. Concretamente, al desvincular un depósito de almacenamiento de una carpeta y luego eliminar dicha carpeta, los archivos incluidos en el depósito de almacenamiento desvinculado también se eliminaban. Lo mismo sucedía al eliminar la carpeta sin desvincular primero el depósito de almacenamiento. Esto sucedía a pesar de que el deposito de almacenamiento estuviera vinculado a otras carpetas.

Cronología de la obsolescencia

Te recomendamos comprobar periódicamente la fecha de caducidad para ver las actualizaciones relativas a las características que quedarán obsoletas y serán eliminadas.

  • Mejoras
  • Corrección de errores
  • Correcciones de vulnerabilidad de seguridad
  • Correcciones diversas
  • Cronología de la obsolescencia
Icono de soporte y servicios
Obtén la ayuda que necesitas
Icono de UiPath Academy
RPA para el aprendizaje - Cursos de automatización
Icono de UiPath Forum
Foro de la comunidad UiPath
Logotipo blanco de UiPath
Confianza y seguridad
© 2005-2024 UiPath. All rights reserved.