Files
alfresco-content-app/docs/upgrade-guide/upgrade520-530.md
Michal Kinas c05c193195 [ACS-12451] Add missing upgrade guides in ACA (#5345)
* [ACS-12451] Add missing upgrade guides in ACA

* [ACS-12451] CR fix
2026-08-12 14:10:24 +02:00

130 lines
7.8 KiB
Markdown

---
Title: Upgrading from ACA v5.2 to v5.3
---
# Upgrading from ACA v5.2 to v5.3
This guide provides instructions on how to upgrade your Alfresco Content Application (ACA) v5.2.0 project to
v5.3.0.
This is a small maintenance release on the ADF 7.0 alpha line: it moves **ADF 7.0.0-alpha.6 → 7.0.0-alpha.7** and
`@alfresco/js-api` 8.0.0-alpha.6 → 8.0.0-alpha.7, bumps **rxjs 7.5.7 → 7.8.1** and patches
`@angular-devkit/build-angular` (16.2.9 → 16.2.16). Angular (16.2.9), Material (16.2.9), TypeScript (5.0.4),
zone.js (0.13.3), Nx (17.3.1) and Node (`.nvmrc` 18) are all **unchanged**. Most of ADF's alpha.7 changes are
`process-services-cloud` only and do not affect ACA, so the work this cycle is mostly ACA's own fixes and a few new
capabilities. The corresponding ADF guide is the **7.0.0-alpha.7** section of:
- [ADF — Upgrading from v6.9 to v7.0](https://github.com/Alfresco/alfresco-ng2-components/blob/develop/docs/upgrade-guide/upgrade69-70.md) (see the **7.0.0-alpha.7** section)
Read the [breaking changes](#breaking-changes).
## Before you begin
Always perform upgrades on a "clean" project state, back up your changes or make a project backup. The Angular 16 /
TypeScript 5 platform and Node 18 (`.nvmrc`) are unchanged from 5.2.0.
## Contents
- [Library updates](#library-updates)
- [Aligning with ADF 7.0-alpha.7](#aligning-with-adf-70-alpha7)
- [Breaking changes](#breaking-changes)
- [Required component inputs](#required-component-inputs)
- [DeleteNodesAction gained an allowUndo argument](#deletenodesaction-gained-an-allowundo-argument)
- [New components and features](#new-components-and-features)
- [Behavioural changes](#behavioural-changes)
## Library updates
Update the `package.json` file with the latest library versions:
```json
{
"dependencies": {
"@alfresco/adf-core": "7.0.0-alpha.7",
"@alfresco/adf-content-services": "7.0.0-alpha.7",
"@alfresco/adf-extensions": "7.0.0-alpha.7",
"@alfresco/js-api": "8.0.0-alpha.7",
"rxjs": "7.8.1"
}
}
```
`@alfresco/adf-cli` and `@alfresco/eslint-plugin-eslint-angular` move to `7.0.0-alpha.7` too, and
`@angular-devkit/build-angular` moves `16.2.9 → 16.2.16` (a Vite security bump). Angular (`16.2.9`),
`@angular/material` (`16.2.9`), TypeScript (`5.0.4`), zone.js (`0.13.3`), `nx` (`17.3.1`) and Node (`.nvmrc` `18`)
are unchanged. Clean `node_modules` and the lockfile, then reinstall.
## Aligning with ADF 7.0-alpha.7
See the **7.0.0-alpha.7** section of the ADF
[6.9 → 7.0 guide](https://github.com/Alfresco/alfresco-ng2-components/blob/develop/docs/upgrade-guide/upgrade69-70.md)
for the full detail. ADF alpha.7 is dominated by the **`process-services-cloud` standalone migration and removals**
(Start-Task-Cloud components, several process-cloud pipes/directives and NgModules, identity DI tokens) — **none of
which apply to ACA**, which does not depend on `@alfresco/adf-process-services-cloud`. The only cross-cutting
alpha.7 items are that ADF's `@alfresco/adf-core` peers were pinned to **exact Angular 16.2.9** (ACA already tracks
16.2.9, so no change) and that `@alfresco/adf-testing` was removed (ACA dropped that dependency back in 4.4.1). In
practice this ADF bump is drop-in for ACA.
## Breaking changes
ACA's published library API is effectively unchanged this release — every `@alfresco/aca-shared` and
`@alfresco/aca-content` `public-api.ts` barrel is byte-identical between 5.2.0 and 5.3.0 (no exports added, removed
or renamed). The two consumer-facing changes below are signature-level.
> **Non-change (informational):** a migration of Saved Searches from the config file to the preferences API
> (ACS-9166) was merged and then **reverted** before 5.3.0, so Saved Searches storage is unchanged from 5.2.0. No
> action is needed — this is only noted in case you diff the intermediate commits.
### Required component inputs
Following Angular 16's required-inputs feature, several component `@Input()`s were marked
`@Input({ required: true })`. Two are on **exported `@alfresco/aca-shared` components**:
- `ToolbarComponent``items` is now required.
- `InfoDrawerComponent` — its primary input is now required.
(Others were applied to internal components: `rule-list` / `rule-list-item`, `datatable-cell-badges`,
`search-results-row`, and the sidenav `button-menu` / `expand-menu`.) If your fork or extension instantiates any of
these components in a template **without binding the now-required input, the Angular compiler will error**
(`NG8008`). Bind the input, or remove the usage.
### DeleteNodesAction gained an allowUndo argument
`DeleteNodesAction` (exported from `@alfresco/aca-shared/store`) and
`ContentManagementService.deleteNodes()` gained a second parameter, `allowUndo`, defaulting to `true`:
```ts
// aca-shared/store
new DeleteNodesAction(payload /* , allowUndo = true */);
// content-management.service
deleteNodes(items: NodeEntry[], allowUndo = true): void;
```
This is backward-compatible (the new argument is optional and preserves the previous behaviour). Pass
`allowUndo: false` to delete without offering the **Undo** snackbar action.
## New components and features
- **Folder information dialog** (MNT-24575) — a new dialog that displays folder details (retrieved via API, with a
retry on failure). It is not offered for items in the trashcan.
- **Suppressible delete-undo** (ACS-8604) — see
[DeleteNodesAction gained an allowUndo argument](#deletenodesaction-gained-an-allowundo-argument); callers can now
delete nodes without the Undo snackbar.
- **`takeUntilDestroyed` subscription cleanup** (ACS-8959) — ACA adopted Angular's `takeUntilDestroyed` operator
(with `DestroyRef`) across the folder-rules components and several `aca-content` components, replacing manual
`ngOnDestroy` / `takeUntil(Subject)` teardown. This is an internal refactor, but if your fork subclasses these
components or relied on their destroy `Subject`s, adopt the same pattern.
## Behavioural changes
| Area | Change |
| -------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| Search input | The search input is now a reactive form control that disallows certain special characters (showing a validation error) and rewrites a leading `text:` to `TEXT:` on submit rather than erroring. |
| Search results | A loading spinner is now shown on the search-results page while filtering for files or folders. |
| Libraries | The context menu is no longer empty when multiple libraries are selected; the *Join library* option now shows the correct icon. |
| Breadcrumb | The file title in the breadcrumb now updates after the file is renamed. |
| Sidenav | The `expandedSidenav` flag is removed from local storage on logout. |
| Info drawer | Tag styling is applied to tags shown in the info drawer. |
| Saved searches | Long saved-search descriptions are truncated. |