Files
alfresco-content-app/docs/upgrade-guide/upgrade750-800.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

6.8 KiB

Title
Title
Upgrading from ACA v7.5.0 to v8.0.0

Upgrading from ACA v7.5.0 to v8.0.0

This guide provides instructions on how to upgrade your Alfresco Content Application (ACA) v7.5.0 project to v8.0.0.

This is a major release. It moves ACA from Angular 19 to 20, takes ADF / @alfresco/js-api to their new majors 9.0.0 / 10.0.0, and upgrades NgRx 19 → 20 and TypeScript 5.8 → 5.9. The most significant functional change is the removal of the embedded Knowledge Retrieval (AI) feature, which is replaced by a link to an external Knowledge Discovery application. The corresponding ADF guide is:

Budget time to migrate to Angular 20 and re-test. Read the breaking changes carefully.

Before you begin

Always perform upgrades on a "clean" project state, back up your changes or make a project backup. Move your application to Angular 20 / TypeScript 5.9 / NgRx 20 in lockstep. Node is a patch bump (.nvmrc 24.13.0 to 24.13.1).

Contents

Library updates

Update the package.json file with the latest library versions:

{
    "dependencies": {
        "@alfresco/adf-core": "9.0.0",
        "@alfresco/adf-content-services": "9.0.0",
        "@alfresco/adf-extensions": "9.0.0",
        "@alfresco/js-api": "10.0.0",
        "@angular/core": "20.3.25",
        "@angular/material": "20.2.14",
        "@ngrx/store": "~20.1.0",
        "typescript": "5.9.3"
    }
}

The whole @angular/* toolchain moves to 20.x, @ngrx/* to ~20.1.0, @angular-eslint/* 19.8 → 20.7, @typescript-eslint/* → 8.55.0, @nx/* / nx 22 → 23, ng-packagr 19 → 20, stylelint 15 → 16, @mat-datetimepicker/core 15 → 16, and @alfresco/adf-cli / @alfresco/eslint-plugin-eslint-angular to 9.0.0. The katex, mermaid, ngx-markdown and prismjs dependencies were removed (they backed the removed Knowledge Retrieval markdown rendering), and an overrides entry pins node-fetch for @module-federation/sdk. Node is a patch bump (.nvmrc 24.13.0 → 24.13.1). Clean node_modules and the lockfile, then reinstall.

Aligning with Angular 20 / ADF 9.0

See the ADF 8.5.0 → 9.0.0 guide for the underlying platform detail.

Angular 20 migration

ACA was lifted to Angular 20 (ACS-11306). Run the Angular 20 update (ng update @angular/core@20 @angular/cli@20 @angular/material@20) against your fork. Two notable points:

  • Built-in control flow adopted — unlike the Angular 19 step, ACA now uses Angular's built-in control-flow syntax (@if / @for) in its templates. If your fork extends ACA templates, expect the new syntax.
  • inject() DI — the @angular-eslint prefer-inject rule (enabled in 7.4.1) is now the norm; constructor injection has largely been converted to inject().

Breaking changes

Platform lockstep

You must move your application to Angular 20, TypeScript 5.9 and NgRx 20 together with ACA. This is the dominant breaking change.

Embedded Knowledge Retrieval removed

The embedded Knowledge Retrieval (AI) feature was removed from ACA (ACS-12037). All of its components were deleted — agents-button, search-ai-input, search-ai-input-container, search-ai-results and the search-ai-marked-options helper — along with the markdown rendering stack (katex / mermaid / ngx-markdown / prismjs).

In its place, ACA now offers a link to an external Knowledge Discovery application: a new knowledge-discovery-sidenav component navigates to the URL from the new knowledgeDiscoveryUrl app setting, which can be provided at runtime (e.g. via a Docker env var, #5295). If your fork depended on the in-app AI answer components or dispatched the AI search actions, migrate to the external Knowledge Discovery integration.

Library public API

  • @alfresco/aca-shared/storeremoved the search-ai.actions and the ai-search-by-term-payload model (part of the Knowledge Retrieval removal above), and added node-path.utils.

node-path.utils exports a NodeContentSource type ('personal-files' | 'libraries' | 'repository') and a getNodeContentSource(path) helper for determining which content source a node belongs to.

New components and features

  • External Knowledge Discovery link — the knowledge-discovery-sidenav component and the runtime-configurable knowledgeDiscoveryUrl app setting replace the removed in-app AI feature (ACS-12037 / #5295).
  • node-path.utils (@alfresco/aca-shared/store) — NodeContentSource / getNodeContentSource() for classifying a node's source (personal files, libraries or repository).
  • Repository Access improvements (MNT-25732) — enhancements to the repository-view feature introduced in 7.5.0.
  • Search refactoring and unification (MNT-25681), plus a debounce timer for saved searches that limits API calls on every keystroke (ACS-12041).

Behavioural changes

Area Change
Shared Files Sorting now works for the Location, Size, Modified-by and Shared-by columns (ACS-12246).
Bulk upload The context menu no longer disappears during a bulk upload (ACS-11973), and the preview no longer switches to the next file (ACS-12047).
Folder rules Files can no longer be incorrectly marked as selected in the link-rules dialog (ACS-11975).
Viewer The image-viewer toolbar is no longer transparent in crop mode (ACS-12014).
Search The same term can be executed again when the search mode changes (#5297).
Styling Container elevation now uses a proper shadow rather than box-shadow: none (ACS-11879, an MD3 follow-up).