Actualización a APS Conecta Gestión 30¶
Resumen¶
Esta página enumera los cambios de la versión 30 que afectan a las apps: el nuevo tipo de dependencia backend, las capacidades de files, el diseño más compacto y sus variables CSS, el nonce de CSP, el fin de PHP 8.0 y las API añadidas, modificadas, obsoletas o eliminadas, entre ellas el paso a OCP\TaskProcessing. Está dirigida a quienes desarrollan o mantienen apps.
Fuente: documentación de Nextcloud, «developer_manual/release_notes/previous/upgrade_to_30», versión 3ad9158, licencia CC BY 3.0; traducida y adaptada para APS Conecta Gestión.
General¶
Se añadió a info.xml un nuevo tipo de dependencia, backend.
Si la app requiere o usa el backend CalDAV del servidor, añadir el backend
caldav a las dependencias de la app.
<dependencies>
<backend>caldav</backend>
</dependencies>
Si ninguna app requiere el backend CalDAV, la sección CalDAV de las configuraciones de administración se ocultará. Por ahora no hay ningún otro efecto, pero eso podría cambiar en el futuro.
Capacidades¶
files¶
blacklist_files_regexestá ahora obsoleto; usarforbidden_filenamesen su lugarSe añadió
forbidden_filename_characterspara proporcionar una lista de caracteres no permitidos en los nombres de archivoSe añadió
forbidden_filename_extensionspara proporcionar una lista de extensiones (sufijos) no permitidas en los nombres de archivo
Cambios de frontend¶
El diseño general se cambió para que sea menos redondeado y más compacto; como parte de ello, con APS Conecta Gestión 30 se añadieron algunas variables CSS y otras quedaron obsoletas, ver Variables CSS.
Área clicable¶
El tamaño de la variable CSS --default-clickable-area se redujo de 44px a 34px.
Esto provocará varias regresiones y pequeños fallos en la app que habrá que corregir manualmente.
Se recomienda:
Enlazar a la app la rama master actual de
@nextcloud/vue(hacer pull a menudo, porque también se van incorporando correcciones);Buscar en todo el código 44px y reemplazarlo por la variable --default-clickable-area cuando corresponda;
Comprobar si hay regresiones y fallos visuales;
Informar de la regresión de la app en esta issue (se puede crear un encabezado con el nombre de la propia app);
Informar también de las regresiones de la biblioteca
@nextlcoud/vuesi aún no están informadas en su lista;Corregir las regresiones de la app (solo las que no tienen relación con los componentes de
@nextcloud/vue);
Además, para distintos casos de uso, se añadieron también dos nuevas variables:
--clickable-area-largepara los elementos principales de la interfaz.--clickable-area-small, que representa el tamaño más pequeño posible de los elementos interactivos, usado por acciones terciarias como los chips de filtro.
Altura de línea¶
La variable --default-line-height cambió de 24px` a 1.5 para el --default-font-size, lo que
significa que el valor real en píxeles pasará de 24 a 22.5. Aunque es un cambio pequeño, se recomienda
comprobar si hay regresiones visuales en la app.
Tamaños de fuente¶
APS Conecta Gestión ahora proporciona estilos predeterminados con sentido para los elementos de encabezado. Esto puede causar regresiones visuales si el código no establece explícitamente el tamaño y el peso de la fuente. Si se necesitan elementos de encabezado fuera del contenido de texto, puede que haya que ajustar sus estilos.
Radio del borde¶
Las variables CSS del radio del borde se refactorizaron:
Añadidas
Se añadió
--border-radius-smallpara elementos más pequeños, como los chips.Se añadió
--border-radius-containerpara contenedores más pequeños, como los menús de acciones.Se añadió
--border-radius-container-largepara contenedores más grandes, como el body o los modales.Se añadió
--border-radius-elementpara elementos interactivos como botones, campos de entrada, navegación y elementos de lista.
Obsoletas
--border-radiusestá ahora obsoleta en favor de--border-radius-small.--border-radius-largeestá ahora obsoleta en favor de--border-radius-element.--border-radius-pillestá ahora obsoleta en favor de--border-radius-element.--border-radius-roundedestá ahora obsoleta en favor de--border-radius-container.
Nonce de CSP¶
Se corrigió un error que impedía a APS Conecta Gestión usar la variable de entorno CSP_NONCE;
esto significa ahora que el nonce de CSP para los recursos JavaScript ya no se basa (o no está garantizado que se base) en el token CSRF.
En su lugar, quienes administran pueden optar por usar un token generado de otra manera.
Al usar módulos JavaScript esto no supone ninguna diferencia, ya que se importan y el nonce solo tiene que establecerse en el módulo raíz (lo hace APS Conecta Gestión),
pero si se usa Webpack o se cargan scripts dinámicamente de otra forma, ahora hay que ajustar la gestión del nonce de CSP.
Obtener el nonce de CSP:
O bien usar
getCSPNoncedel paquete@nextcloud/auth, que también es compatible con versiones anteriores.O bien leer directamente el nonce de la etiqueta
<meta name="csp-nonce" />.
Al usar Webpack:
- import { getRequestToken } from '@nextcloud/auth'
- __webpack_nonce__ = btoa(getRequestToken())
+ import { getCSPNonce } from '@nextcloud/auth'
+ __webpack_nonce__ = getCSPNonce()
API obsoletas¶
OC.config.blacklist_files_regexestá ahora obsoleto; usar en su lugar las capacidades defilesOC.config.forbidden_filename_charactersestá ahora obsoleto; usar en su lugar las capacidades defilesOC.dialogs.fileexistsya estaba obsoleto en APS Conecta Gestión 29, pero ahora también está marcado como tal. Usar en su lugaropenConflictPickerde @nextcloud/upload.La mayor parte de la API
OC.dialogsestá ahora obsoleta y se eliminará en el futuro. Para diálogos genéricos, usar elDialogBuilderde @nextcloud/dialogs. Lista de los métodos que ahora están obsoletos:OC.dialogs.alertOC.dialogs.infoOC.dialogs.confirmOC.dialogs.confirmDestructiveOC.dialogs.confirmHtmlOC.dialogs.promptOC.dialogs.message
Cambios de backend¶
Se eliminó la compatibilidad con PHP 8.0¶
En esta versión se eliminó la compatibilidad con PHP 8.0. Seguir los pasos siguientes para que la app sea compatible.
Si
appinfo/info.xmltiene una especificación de dependencia para PHP, aumentarmin-versiona 8.1.
<dependencies>
<php min-version="8.1" max-version="8.3" />
<nextcloud min-version="27" max-version="30" />
</dependencies>
Si la app tiene un
composer.jsony el archivo contiene las restricciones de PHP deinfo.xml, ajustarlo también.
{
"require": {
"php": ">=8.1 <=8.3"
}
}
Si se tiene configurada la integración continua, quitar PHP 8.0 de las matrices de pruebas y de linters.
API añadidas¶
OCP\Activity\Exceptions\FilterNotFoundExceptionla lanzaOCP\Activity\IManager::getFilterById()cuando no hay ningún filtro registrado con el identificador dadoOCP\Activity\Exceptions\IncompleteActivityExceptionla lanzaOCP\Activity\IManager::publish()cuando no se han establecido todos los campos obligatorios en el objetoOCP\Activity\IEventOCP\Activity\Exceptions\InvalidValueExceptionla lanzaOCP\Activity\IEvent::set*()cuando el valor no cumple los criterios requeridosOCP\Activity\Exceptions\SettingNotFoundExceptionla lanzaOCP\Activity\IManager::getSettingById()cuando no hay ningún ajuste registrado con el identificador dadoOCP\Activity\Exceptions\UnknownActivityExceptiondebe lanzarlaOCP\Activity\IProvider::parse()cuando no haya gestionado el eventoSe añadió
OCP\AppFramework\Db\QbMapper::yieldEntities()para permitir iterar sobre entidades devolviendo unGenerator, sin cargarlas todas en memoria.Se introdujeron las constantes
OCP\Authentication\Token\IToken::SCOPE_FILESYSTEMyOCP\Authentication\Token\IToken::SCOPE_SKIP_PASSWORD_VALIDATIONcomo constantes para los ámbitos de los tokens. Antes, el valor deSCOPE_FILESYSTEMestaba fijado en el código.OCP\Notification\IncompleteNotificationExceptionla lanzaOCP\Notification\IManager::notify()cuando no se han establecido todos los campos obligatorios en el objetoOCP\Notification\INotificationOCP\Notification\IncompleteParsedNotificationExceptionla lanzaOCP\Notification\IManager::prepare()cuando ningúnOCP\Notification\INotifiergestionó el objetoOCP\Notification\INotificationOCP\Notification\InvalidValueExceptionla lanzanOCP\Notification\IAction::set*()yOCP\Notification\INotification::set*()cuando el valor no cumple los criterios requeridosOCP\Notification\UnknownNotificationExceptiondebe lanzarlaOCP\Notification\INotifier::prepare()cuando no haya gestionado la notificaciónOCA\Files_Trashbin\Trash\ITrashItem::getDeletedBy()debe devolver el usuario que eliminó el elemento, o null si se desconoceOCP\IUser::getPasswordHash()debe devolver el hash de la contraseña del usuarioOCP\IUser::setPasswordHash()debe establecer el hash de la contraseña del usuarioAtributo
OCP\AppFramework\Http\Attribute\OpenAPI::SCOPE_EX_APPpara limitar el ámbito de las API a que solo las usen las ExApps.Atributo
OCP\AppFramework\Http\Attribute\ExAppRequiredpara restringir los métodos de controlador para que solo sean accesibles por las ExApps.Se añadió
OCP\Collaboration\Reference\IPublicReferenceProviderpara los proveedores de referencias que admiten búsquedas de referencias desde comparticiones públicas.Se añadió
OCP\Files\IFilenameValidatorpara permitir validar nombres de archivo independientemente del almacenamiento.Se añadió
OCP\Files\Storage\IStorage::setOwner()para permitir establecer el propietario de un almacenamiento, de modo que pueda gestionarse independientemente del usuario de la sesión actual. Esto es especialmente útil para los almacenamientos con propiedad compartida, como las carpetas de grupo o los almacenamientos externos, en los que el propietario del almacenamiento debe establecerse en el usuario que inicializa el almacenamiento a través de su punto de montaje personal.Se añadió
ShareAPIController::sendShareEmail(), accesible mediante ocs en/api/v1/shares/{shareId}/send-email. Ver la documentación de send-email.Se añadió
OCP\Calendar\Room\IManager::update()para actualizar en el momento todas las salas de todos los backends.Se añadió
OCP\Calendar\Resource\IManager::update()para actualizar en el momento todos los recursos de todos los backends.Se añadió
OCP\App\IAppManager::BACKEND_CALDAVpara representar la dependencia del backend caldav enisBackendRequired().Se añadió
OCP\App\IAppManager::isBackendRequired()para comprobar si al menos una app requiere un backend concreto (actualmente solocaldav).Se añadió
OCP\Accounts\IAccountManager::PROPERTY_BIRTHDATEpara permitir que los usuarios configuren su fecha de nacimiento en sus perfiles.Se añadió
OCP\TaskProcessing`para unificar el procesamiento de tareas de IA y de otros tipos de tareas. Ver Procesamiento de tareasSe añadió
OCP\AppFramework\Bootstrap\IRegistrationContext::registerTaskProcessingProvider()para permitir registrar proveedores de procesamiento de tareasSe añadió
OCP\AppFramework\Bootstrap\IRegistrationContext::registerTaskProcessingTaskType()para permitir registrar tipos de tarea de procesamiento de tareasSe añadió
OCP\Files\IRootFolder::getAppDataDirectoryName()para permitir obtener el nombre del directorio de datos de la appSe añadió
OCP\Console\ReservedOptions, que contiene constantes para las opciones reservadas para funciones del núcleo de occ.--debug-logy--debug-log-levelquedan ahora reservadas por occ, ya que permiten mostrar información de depuración en la salida de cualquier comando occ.OCP\Security\IHasher::validate()debe devolver true si la cadena pasada es un hash válido generado porOCP\Security\IHasher::hash()El constructor
OCP\AppFramework\Http\JSONResponse()ahora admite pasar flags adicionales dejson_encode; ver https://www.php.net/manual/en/function.json-encode.php para más detallesOCP\EventDispatcher\IWebhookCompatibleEventes una nueva interfaz para los eventos compatibles con webhooks (ver la documentación de webhook_listeners).OCP\EventDispatcher\JsonSerializeres un nuevo ayudante público para serializar usuarios y fileinfos a json (es decir, para los eventos de webhooks)
API modificadas¶
OCP\Activity\IEvent::set*()(todos los setters) lanzanOCP\Activity\Exceptions\InvalidValueExceptionen lugar de\InvalidArgumentExceptioncuando el valor no cumple los criterios requeridos.Llamar a
OCP\Activity\IEvent::setIcon()con una URL relativa está obsoleto y lanzaráOCP\Activity\Exceptions\InvalidValueExceptionen una versión futura.Llamar a
OCP\Activity\IEvent::setLink()con una URL relativa está obsoleto y lanzaráOCP\Activity\Exceptions\InvalidValueExceptionen una versión futura.OCP\Activity\IManager::publish()lanzaOCP\Activity\Exceptions\IncompleteActivityExceptionen lugar de\InvalidArgumentExceptioncuando no se establece un campo obligatorio antes de publicar.OCP\Activity\IProvider::parse()ya no debe lanzar\InvalidArgumentException. Debe lanzarseOCP\Activity\Exceptions\UnknownActivityExceptioncuando el proveedor no quiera gestionar el evento. Las\InvalidArgumentExceptionse registran por ahora como depuración y en el futuro se registrarán como error, para ayudar a quienes desarrollan a encontrar problemas en código que lanzó\InvalidArgumentExceptionsin quererAclaración sobre
OCP\Dashboard\IIconWidget::getIconUrl(): la URL debe ser absoluta. El icono servido debe ser oscuro. El icono se invertirá automáticamente en los clientes móviles y al usar el modo oscuro.Aclaración sobre
OCP\Dashboard\IWidget::getId(): las implementaciones solo deben devolver cadenas basadas ena-z,0-9,-y_que empiecen por una letra, ya que el identificador se usa en clases CSS y, de lo contrario, no sería válidoAclaración sobre
OCP\Dashboard\IWidget::getIconClass(): la clase CSS devuelta debe mostrar un icono oscuro. El icono se invertirá automáticamente en los clientes móviles y al usar el modo oscuro. Por lo tanto, NO se recomienda usar una clase css que establezca el fondo convar(--icon-…)`, ya que esas variables se adaptan al modo oscuro o claro en la web y aun así se invertirían, lo que daría como resultado un icono oscuro sobre fondo oscuro.Se añadió
OCP\Files\Lock\ILockManager::registerLazyLockProvider()para reemplazarregisterLockProvider; permite registrar un proveedor de bloqueos que solo se carga cuando se necesita.OCP\Notification\IAction::set*()(todos los setters) lanzanOCP\Notification\InvalidValueExceptionen lugar de\InvalidArgumentExceptioncuando el valor no cumple los criterios requeridos.Llamar a
OCP\Notification\IAction::setLink()con una URL relativa está obsoleto y lanzaráOCP\Notification\InvalidValueExceptionen una versión futura.OCP\Notification\IApp::notify()lanzaOCP\Notification\IncompleteNotificationExceptionen lugar de\InvalidArgumentExceptioncuando no se establece un campo obligatorio antes de notificar.OCP\Notification\IManager::prepare()lanzaOCP\Notification\IncompleteParsedNotificationExceptionen lugar de\InvalidArgumentExceptioncuando un campo obligatorio no está establecido después de preparar una notificación.OCP\Notification\INotification::set*()(todos los setters) lanzanOCP\Notification\InvalidValueExceptionen lugar de\InvalidArgumentExceptioncuando el valor no cumple los criterios requeridos.Llamar a
OCP\Notification\INotification::setLink()con una URL relativa está obsoleto y lanzaráOCP\Notification\InvalidValueExceptionen una versión futura.Llamar a
OCP\Notification\INotification::setIcon()con una URL relativa está obsoleto y lanzaráOCP\Notification\InvalidValueExceptionen una versión futura.OCP\Notification\INotifier::prepare()ya no debe lanzar\InvalidArgumentException. Debe lanzarseOCP\Notification\UnknownNotificationExceptioncuando el notificador no quiera gestionar la notificación. Las\InvalidArgumentExceptionse registran por ahora como depuración y en el futuro se registrarán como error, para ayudar a quienes desarrollan a encontrar problemas en código que lanzó\InvalidArgumentExceptionsin quererDebe usarse
OCP\IGroupManager::isAdmin()en lugar de comprobar manualmente si el usuario actual forma parte del grupo admin.La clave
enableddeIAttributesse renombró avaluey admite más que valores booleanos.OCP\DB\Exceptionusa ahora el código de motivoREASON_LOCK_WAIT_TIMEOUT, en lugar deREASON_SERVER, para una LockWaitTimeoutException.OCP\Share\IShare::setNoExpirationDate()establece ahora un indicador de sobrescritura para los valores falsy de la fecha de caducidad; este indicador se usa para determinar si el sistema debe sobrescribir los valores falsy de la fecha de caducidad antes de crear una compartición.OCP\Share\IShare::getNoExpirationDate()recupera el valor del indicadornoExpirationDate.OCP\IUserManager::getDisabledUserstiene ahora un tercer parámetro para una cadena de búsqueda.OCP\User\Backend\IProvideEnabledStateBackend::getDisabledUserListtiene ahora un tercer parámetro para una cadena de búsqueda.La clase heredada
OC_EventSourcese trasladó al espacio de nombresOCcon el prefijoOC_. No debería cambiar nada si ya se usa correctamenteOCP\IEventSourceFactorypara crear estos objetos.OCP\Files\Events\Node\AbstractNodeEventyOCP\Files\Events\Node\AbstractNodesEventimplementan ahoraOCP\EventDispatcher\IWebhookCompatibleEvent, de modo que todos los eventos relacionados con archivos o carpetas están disponibles para los webhooks (ver la documentación de webhook_listeners).
API obsoletas¶
Usar la anotación
@PasswordConfirmationRequiredestá obsoleto; en su lugar debe usarse el atributo#[OCP\AppFramework\Http\Attribute\PasswordConfirmationRequired].Usar la anotación
@CORSestá obsoleto; en su lugar debe usarse el atributo#[OCP\AppFramework\Http\Attribute\CORS].Usar la anotación
@PublicPageestá obsoleto; en su lugar debe usarse el atributo#[OCP\AppFramework\Http\Attribute\PublicPage].Usar la anotación
@ExAppRequiredestá obsoleto; en su lugar debe usarse el atributo#[OCP\AppFramework\Http\Attribute\ExAppRequired].Usar la anotación
@AuthorizedAdminSettingestá obsoleto; en su lugar debe usarse el atributo#[OCP\AppFramework\Http\Attribute\AuthorizedAdminSetting].Usar la anotación
@SubAdminRequiredestá obsoleto; en su lugar debe usarse el atributo#[OCP\AppFramework\Http\Attribute\SubAdminRequired].Usar la anotación
@NoAdminRequiredestá obsoleto; en su lugar debe usarse el atributo#[OCP\AppFramework\Http\Attribute\NoAdminRequired].Usar la anotación
@StrictCookieRequiredestá obsoleto; en su lugar debe usarse el atributo#[OCP\AppFramework\Http\Attribute\StrictCookiesRequired].Usar la anotación
@NoCSRFRequiredestá obsoleto; en su lugar debe usarse el atributo#[OCP\AppFramework\Http\Attribute\NoCSRFRequired].Usar la interfaz
OCP\Group\Backend\ICreateGroupBackendestá ahora obsoleto; en su lugar debe usarse la interfazOCP\Group\Backend\ICreateNamedGroupBackend.Llamar a
OCP\DB\QueryBuilder\IExpressionBuilder::andX()sin argumentos está obsoleto y lanzará una excepción en una versión futura, ya que la biblioteca subyacente está eliminando esa funcionalidad.Llamar a
OCP\DB\QueryBuilder\IExpressionBuilder::orX()sin argumentos está obsoleto y lanzará una excepción en una versión futura, ya que la biblioteca subyacente está eliminando esa funcionalidad.Llamar a
OCP\DB\QueryBuilder\IQueryBuilder::delete()con$aliasestá obsoleto y lanzará una excepción en una versión futura, ya que la biblioteca subyacente está eliminando esa funcionalidad.Llamar a
OCP\DB\QueryBuilder\IQueryBuilder::getQueryPart()está obsoleto y lanzará una excepción en una versión futura, ya que la biblioteca subyacente está eliminando esa funcionalidad.Llamar a
OCP\DB\QueryBuilder\IQueryBuilder::getQueryParts()está obsoleto y lanzará una excepción en una versión futura, ya que la biblioteca subyacente está eliminando esa funcionalidad.Llamar a
OCP\DB\QueryBuilder\IQueryBuilder::getState()está obsoleto y lanzará una excepción en una versión futura, ya que la biblioteca subyacente está eliminando esa funcionalidad.Llamar a
OCP\DB\QueryBuilder\IQueryBuilder::resetQueryPart()está obsoleto y lanzará una excepción en una versión futura, ya que la biblioteca subyacente está eliminando esa funcionalidad. En su lugar, crear un nuevo objeto de constructor de consultas.Llamar a
OCP\DB\QueryBuilder\IQueryBuilder::resetQueryParts()está obsoleto y lanzará una excepción en una versión futura, ya que la biblioteca subyacente está eliminando esa funcionalidad. En su lugar, crear un nuevo objeto de constructor de consultas.Llamar a
OCP\DB\QueryBuilder\IQueryBuilder::update()con$aliasestá obsoleto y lanzará una excepción en una versión futura, ya que la biblioteca subyacente está eliminando esa funcionalidad.Llamar a
OCP\IDBConnection::getDatabasePlatform()está obsoleto y lanzará una excepción en una versión futura, ya que la biblioteca subyacente está renombrando y eliminando plataformas, lo que rompe la compatibilidad con versiones anteriores. UsargetDatabaseProvider()en su lugar.Llamar a
OCP\Files\Lock\ILockManager::registerLockProvider()está obsoleto y se eliminará en el futuro. UsarregisterLazyLockProvider()en su lugar.Usar
OCP\Translationestá obsoleto y se eliminará en el futuro. Usar en su lugarOCP\TaskProcessing(ver Procesamiento de tareas).Usar
OCP\Translation\CouldNotTranslateExceptionestá obsoleto y se eliminará en el futuro. Usar en su lugarOCP\TaskProcessing(ver Procesamiento de tareas).Usar
OCP\Translation\IDetectLanguageProviderestá obsoleto y se eliminará en el futuro. Usar en su lugarOCP\TaskProcessing(ver Procesamiento de tareas).Usar
OCP\Translation\ITranslationManagerestá obsoleto y se eliminará en el futuro. Usar en su lugarOCP\TaskProcessing(ver Procesamiento de tareas).Usar
OCP\Translation\ITranslationProviderestá obsoleto y se eliminará en el futuro. Usar en su lugarOCP\TaskProcessing(ver Procesamiento de tareas).Usar
OCP\Translation\ITranslationProviderWithIdestá obsoleto y se eliminará en el futuro. Usar en su lugarOCP\TaskProcessing(ver Procesamiento de tareas).Usar
OCP\Translation\ITranslationProviderWithUserIdestá obsoleto y se eliminará en el futuro. Usar en su lugarOCP\TaskProcessing(ver Procesamiento de tareas).Usar
OCP\Translation\LanguageTupleestá obsoleto y se eliminará en el futuro. Usar en su lugarOCP\TaskProcessing(ver Procesamiento de tareas).Usar
OCP\SpeechToTextestá obsoleto y se eliminará en el futuro. Usar en su lugarOCP\TaskProcessing(ver Procesamiento de tareas). Los proveedores deSpeechToTextexistentes seguirán funcionando con la API TaskProcessing hasta entonces.Usar
OCP\SpeechToText\Events\AbstractTranscriptionEventestá obsoleto y se eliminará en el futuro. Usar en su lugarOCP\TaskProcessing(ver Procesamiento de tareas). Los proveedores deSpeechToTextexistentes seguirán funcionando con la API TaskProcessing hasta entonces.Usar
OCP\SpeechToText\Events\TranscriptionFailedEventestá obsoleto y se eliminará en el futuro. Usar en su lugarOCP\TaskProcessing(ver Procesamiento de tareas). Los proveedores deSpeechToTextexistentes seguirán funcionando con la API TaskProcessing hasta entonces.Usar
OCP\SpeechToText\Events\TranscriptionSuccessfulEventestá obsoleto y se eliminará en el futuro. Usar en su lugarOCP\TaskProcessing(ver Procesamiento de tareas). Los proveedores deSpeechToTextexistentes seguirán funcionando con la API TaskProcessing hasta entonces.Usar
OCP\SpeechToText\ISpeechToTextManagerestá obsoleto y se eliminará en el futuro. Usar en su lugarOCP\TaskProcessing(ver Procesamiento de tareas). Los proveedores deSpeechToTextexistentes seguirán funcionando con la API TaskProcessing hasta entonces.Usar
OCP\SpeechToText\ISpeechToTextProviderestá obsoleto y se eliminará en el futuro. Usar en su lugarOCP\TaskProcessing(ver Procesamiento de tareas). Los proveedores deSpeechToTextexistentes seguirán funcionando con la API TaskProcessing hasta entonces.Usar
OCP\SpeechToText\ISpeechToTextProviderWithIdestá obsoleto y se eliminará en el futuro. Usar en su lugarOCP\TaskProcessing(ver Procesamiento de tareas). Los proveedores deSpeechToTextexistentes seguirán funcionando con la API TaskProcessing hasta entonces.Usar
OCP\SpeechToText\ISpeechToTextProviderWithUserIdestá obsoleto y se eliminará en el futuro. Usar en su lugarOCP\TaskProcessing(ver Procesamiento de tareas). Los proveedores deSpeechToTextexistentes seguirán funcionando con la API TaskProcessing hasta entonces.Usar
OCP\TextToImageestá obsoleto y se eliminará en el futuro. Usar en su lugarOCP\TaskProcessing(ver Procesamiento de tareas). Los proveedores deTextToImageexistentes seguirán funcionando con la API TaskProcessing hasta entonces.Usar
OCP\TextToImage\Taskestá obsoleto y se eliminará en el futuro. Usar en su lugarOCP\TaskProcessing(ver Procesamiento de tareas). Los proveedores deTextToImageexistentes seguirán funcionando con la API TaskProcessing hasta entonces.Usar
OCP\TextToImage\IProviderWithUserIdestá obsoleto y se eliminará en el futuro. Usar en su lugarOCP\TaskProcessing(ver Procesamiento de tareas). Los proveedores deTextToImageexistentes seguirán funcionando con la API TaskProcessing hasta entonces.Usar
OCP\TextToImage\IProviderestá obsoleto y se eliminará en el futuro. Usar en su lugarOCP\TaskProcessing(ver Procesamiento de tareas). Los proveedores deTextToImageexistentes seguirán funcionando con la API TaskProcessing hasta entonces.Usar
OCP\TextToImage\IManagerestá obsoleto y se eliminará en el futuro. Usar en su lugarOCP\TaskProcessing(ver Procesamiento de tareas). Los proveedores deTextToImageexistentes seguirán funcionando con la API TaskProcessing hasta entonces.Usar
OCP\TextToImage\Exception\TextToImageExceptionestá obsoleto y se eliminará en el futuro. Usar en su lugarOCP\TaskProcessing(ver Procesamiento de tareas). Los proveedores deTextToImageexistentes seguirán funcionando con la API TaskProcessing hasta entonces.Usar
OCP\TextToImage\Exception\TaskNotFoundExceptionestá obsoleto y se eliminará en el futuro. Usar en su lugarOCP\TaskProcessing(ver Procesamiento de tareas). Los proveedores deTextToImageexistentes seguirán funcionando con la API TaskProcessing hasta entonces.Usar
OCP\TextToImage\Exception\TaskFailureExceptionestá obsoleto y se eliminará en el futuro. Usar en su lugarOCP\TaskProcessing(ver Procesamiento de tareas). Los proveedores deTextToImageexistentes seguirán funcionando con la API TaskProcessing hasta entonces.Usar
OCP\TextToImage\Events\TaskSuccessfulEventestá obsoleto y se eliminará en el futuro. Usar en su lugarOCP\TaskProcessing(ver Procesamiento de tareas). Los proveedores deTextToImageexistentes seguirán funcionando con la API TaskProcessing hasta entonces.Usar
OCP\TextToImage\Events\TaskFailedEventestá obsoleto y se eliminará en el futuro. Usar en su lugarOCP\TaskProcessing(ver Procesamiento de tareas). Los proveedores deTextToImageexistentes seguirán funcionando con la API TaskProcessing hasta entonces.Usar
OCP\TextToImage\Events\AbstractTextToImageEventestá obsoleto y se eliminará en el futuro. Usar en su lugarOCP\TaskProcessing(ver Procesamiento de tareas). Los proveedores deTextToImageexistentes seguirán funcionando con la API TaskProcessing hasta entonces.Usar
OCP\TextProcessingestá obsoleto y se eliminará en el futuro. Usar en su lugarOCP\TaskProcessing(ver Procesamiento de tareas). Los proveedores deTextProcessingexistentes seguirán funcionando con la API TaskProcessing hasta entonces.Usar
OCP\TextProcessing\Events\AbstractTextProcessingEventestá obsoleto y se eliminará en el futuro. Usar en su lugarOCP\TaskProcessing(ver Procesamiento de tareas). Los proveedores deTextProcessingexistentes seguirán funcionando con la API TaskProcessing hasta entonces.Usar
OCP\TextProcessing\Events\TaskFailedEventestá obsoleto y se eliminará en el futuro. Usar en su lugarOCP\TaskProcessing(ver Procesamiento de tareas). Los proveedores deTextProcessingexistentes seguirán funcionando con la API TaskProcessing hasta entonces.Usar
OCP\TextProcessing\Events\TaskSuccessfulEventestá obsoleto y se eliminará en el futuro. Usar en su lugarOCP\TaskProcessing(ver Procesamiento de tareas). Los proveedores deTextProcessingexistentes seguirán funcionando con la API TaskProcessing hasta entonces.Usar
OCP\TextProcessing\Exception\TaskFailureExceptionestá obsoleto y se eliminará en el futuro. Usar en su lugarOCP\TaskProcessing(ver Procesamiento de tareas). Los proveedores deTextProcessingexistentes seguirán funcionando con la API TaskProcessing hasta entonces.Usar
OCP\TextProcessing\FreePromptTaskTypeestá obsoleto y se eliminará en el futuro. Usar en su lugarOCP\TaskProcessing(ver Procesamiento de tareas). Los proveedores deTextProcessingexistentes seguirán funcionando con la API TaskProcessing hasta entonces.Usar
OCP\TextProcessing\HeadlineTaskTypeestá obsoleto y se eliminará en el futuro. Usar en su lugarOCP\TaskProcessing(ver Procesamiento de tareas). Los proveedores deTextProcessingexistentes seguirán funcionando con la API TaskProcessing hasta entonces.Usar
OCP\TextProcessing\IManagerestá obsoleto y se eliminará en el futuro. Usar en su lugarOCP\TaskProcessing(ver Procesamiento de tareas). Los proveedores deTextProcessingexistentes seguirán funcionando con la API TaskProcessing hasta entonces.Usar
OCP\TextProcessing\IProviderestá obsoleto y se eliminará en el futuro. Usar en su lugarOCP\TaskProcessing(ver Procesamiento de tareas). Los proveedores deTextProcessingexistentes seguirán funcionando con la API TaskProcessing hasta entonces.Usar
OCP\TextProcessing\IProviderWithExpectedRuntimeestá obsoleto y se eliminará en el futuro. Usar en su lugarOCP\TaskProcessing(ver Procesamiento de tareas). Los proveedores deTextProcessingexistentes seguirán funcionando con la API TaskProcessing hasta entonces.Usar
OCP\TextProcessing\IProviderWithIdestá obsoleto y se eliminará en el futuro. Usar en su lugarOCP\TaskProcessing(ver Procesamiento de tareas). Los proveedores deTextProcessingexistentes seguirán funcionando con la API TaskProcessing hasta entonces.Usar
OCP\TextProcessing\IProviderWithUserIdestá obsoleto y se eliminará en el futuro. Usar en su lugarOCP\TaskProcessing(ver Procesamiento de tareas). Los proveedores deTextProcessingexistentes seguirán funcionando con la API TaskProcessing hasta entonces.Usar
OCP\TextProcessing\ITaskTypeestá obsoleto y se eliminará en el futuro. Usar en su lugarOCP\TaskProcessing(ver Procesamiento de tareas). Los proveedores deTextProcessingexistentes seguirán funcionando con la API TaskProcessing hasta entonces.Usar
OCP\TextProcessing\SummaryTaskTypeestá obsoleto y se eliminará en el futuro. Usar en su lugarOCP\TaskProcessing(ver Procesamiento de tareas). Los proveedores deTextProcessingexistentes seguirán funcionando con la API TaskProcessing hasta entonces.Usar
OCP\TextProcessing\Taskestá obsoleto y se eliminará en el futuro. Usar en su lugarOCP\TaskProcessing(ver Procesamiento de tareas). Los proveedores deTextProcessingexistentes seguirán funcionando con la API TaskProcessing hasta entonces.Usar
OCP\TextProcessing\TopicsTaskTypeestá obsoleto y se eliminará en el futuro. Usar en su lugarOCP\TaskProcessing(ver Procesamiento de tareas). Los proveedores deTextProcessingexistentes seguirán funcionando con la API TaskProcessing hasta entonces.Usar la interfaz
OCP\Group\Backend\ICreateGroupBackendestá obsoleto y se eliminará en el futuro. UsarOCP\Group\Backend\ICreateNamedGroupBackenden su lugar.
API eliminadas¶
OCP\Util::isValidFileNameestaba obsoleto desde la 8.1.0 y ahora se ha eliminado; usarOCP\Files\Storage\IStorage::verifyPatho el nuevoOCP\Files\IFilenameValidator.Se eliminó
OCP\Util::getForbiddenFileNameChars; para validar nombres de archivo, usarOCP\Files\Storage\IStorage::verifyPatho el nuevoOCP\Files\IFilenameValidator.
Nota
Los problemas de APS Conecta Gestión, de sus aplicaciones y de su instalación se informan en los issues de la suite APS-Conecta: Errores conocidos reúne los de todos sus repositorios. El centro de incidencias citado arriba es el de Nextcloud, para fallos del software original.