Key visual release notes

Axanto Portal 4.0 is here!

Author:


Axanto Portal 4.0 is here. A major release on a new foundation: a new runtime, a new interface, and the entire configuration moves out of XML files into the database – editable right in the browser.

We moved the portal from .NET Framework to .NET 10 and reorganised where its data lives: the Axanto database is now the leading store, no longer System Center Service Manager. Existing connections to SCSM, SCOM and SCCM keep working, but an Axanto-only portal no longer needs System Center at all. And whoever customises the portal now does it in a dedicated administration interface instead of in configuration files on the server.

What’s new

Configuration in the database, maintained in the browser

Navigation, list and detail views, actions and tabs no longer live in XML files but in the database. They are edited in the new administration interface: modules, tabs, actions and navigation as lists of their own, with a change log and rollback. Alongside come a catalogue for request forms and service trees, a System & Maintenance area with export and import, the Job Center as an overview of all background jobs, a unified action editor, and a wizard for building Solr filters by clicking.

A new face

  • New design with new themes, including the Axanto design with light and dark mode.
  • Landing page with a greeting, a single search field and the current announcements and messages – instead of a dashboard full of tables.
  • User settings: everyone sets their own language, theme, and how and about what they are notified by email. Changes take effect immediately.
  • Reworked notifications in the header, with type markers, linked objects, “Mark all as read” and “I am affected” for master tickets.
  • Drafts for request forms: a request can be saved as a draft and resumed later through a link.
  • Decision tree that leads users to the right request form with a few questions.
  • Script editor with syntax highlighting, field and variable pickers and the new, safe field() notation. Existing formulas are converted automatically on import.
  • Link builder for axanto:// action links, which replace the old myopstask: format.

Under the hood

  • .NET 10: the portal and the scheduler run on the current .NET platform. The System Center connection continues through a lean legacy component.
  • SQL instead of SCSM as the leading data store. Synchronisation with System Center reads directly from the Service Manager database instead of going through the SDK.
  • New Windows notification client, built natively.
  • New setup that creates and updates the database itself: an installation is a single MSI run.
  • External alerts become incidents: webhooks from Prometheus Alertmanager and freely configurable payloads from other systems create incidents, including services and affected devices.
  • SyncCenter: multi-value relations can be synchronised, API sources can be queried via POST with their own body, headers and token login, and are read page by page, and rate limiting is retried automatically.
  • A change history you can rely on: for audit-relevant records it is written in the same transaction as the change, shows resolved values instead of raw database values, loads page by page and filters on the server. Changes to linked records appear on the parent record, and configuration changes record where they came from.
  • Scheduled reviews can be planned for the objects held in the portal.
  • Restructured product help with chapters of their own on architecture, workflows, users and roles, background jobs, integration and operations. The data model reference is generated automatically from the code.

What else we took care of

Besides the new features, 4.0 contains 32 fixes. Some of them are things you notice day to day: lists filtered by the user’s department no longer come up empty. Columns from related objects show their values again. Workflow processing no longer stalls when many activities have exit conditions. The Job Center loads faster, and a stopped index run now reports itself instead of failing silently. And some concern security: the shop endpoints and the API documentation now require authentication, the relation search no longer bypasses user scoping, and the AI similarity search validates the TLS certificate of its endpoint.

Before upgrading from 3.72

4.0 is a big step, and upgrading from 3.72.x is more than running a setup: the runtime, the configuration format and the place where customisations are stored all change at once. Please plan the upgrade together with your Axanto contact and read the Upgrade Runbook in the product help (Operations) beforehand. The key points:

  • The server needs the ASP.NET Core 10 Hosting Bundle; .NET Framework 4.8 remains a prerequisite as well.
  • The supplied check script Test-V3UpgradeReadiness.ps1 shows on the old server, in advance, whether anything will hold up the upgrade. It changes nothing.
  • The installer removes the old version, including the directories holding your customisations. Back up the database, your customisations and your portal files first.
  • Existing XML customisations are carried over on first start, provided the installer is told where they are.
  • A full rebuild of the search index is required after the upgrade. On large data sets it takes hours.
  • Custom extensions built for .NET Framework have to be rebuilt for 4.0.

Changelog

The complete list of changes, as it also appears in the CHANGES.TXT of the delivery:

Feature

  • AX02984 Create new Design for Axanto
  • AX02986 Migrate Customization configuration from XML Files to database
  • AX02987 Create admin UI for configuring the UI of the portal
  • AX02988 Read SCSM details from database instead of using SDK
  • AX02992 Migrate to .NET Core
  • AX02995 Create new modern notify client for Windows native
  • AX02996 Create new setup with database create / update
  • AX02998 Allow modal dialog with properties for complex property value evaluation
  • AX03005 Create a decision tree component for asking users questions resulting in selecting the correct request offering
  • AX03012 Allow to define scheduled reviews for EF entities
  • AX03019 Allow to sync multi-value relations in the SyncCenter
  • AX03026 Change history for audit-relevant records is written in the same transaction as the change
  • AX03028 Change history loads page by page and filters on the server
  • AX03029 Change history shows resolved values instead of raw database values
  • AX03030 SyncCenter: read API data sources via POST, with request body, custom headers, token login and paging
  • AX03035 Customization change history records the origin of every change: process, trigger and configuration source
  • AX03039 Saving an enabled workflow rule with no event type is now reported in the log
  • AX03047 Software configuration items: a delivered portal view and a new Download URL field
  • AX03052 SyncCenter: page API data sources by a cursor sent in the request body, and retry on rate limiting
  • AX03054 Create incidents from Prometheus Alertmanager webhook notifications
  • AX03055 Map external notification payloads to incidents by configuration

Bug

  • AX03010 Attachments in knowledge base articles cannot be deleted
  • AX03011 Relation Tree component not working (e.g. Knowledgebase Article)
  • AX03015 Opening the detail view of an activity with the relation mo_Activities terminates the Web API process (stack overflow)
  • AX03017 Inline-list values cannot be maintained on relation properties
  • AX03018 Formulas consistently fail in the scheduler context (NullReferenceException in GetRolesByUser)
  • AX03021 Review activity with a single approver does not complete, and the recorded decision user gets overwritten
  • AX03022 Opening the detail view of an activity with a root work item fails with ArgumentNullException
  • AX03024 Contract drift: say what changed, not just that something changed
  • AX03027 A change to a linked record appears in the history of the parent record
  • AX03031 DevTask: a newly created task stays in New instead of starting automatically
  • AX03032 Scripted values: name the missing quotes instead of failing deep in the lookup
  • AX03033 ChangeLog retention: index DateChanged so the nightly cleanup does not scan the table
  • AX03034 Workflow outbox: a deadlocked upsert loses the event because the write is never retried
  • AX03037 Relation editor: IsExtensionData cannot be set
  • AX03038 Activity relations no longer expose EF Core’s internal LazyLoader property as a column
  • AX03040 Opening a record’s change history no longer scans the entire ChangeLogs table
  • AX03045 AI similarity search now validates the TLS certificate of the embedding endpoint
  • AX03048 Status changes made by the ServiceManagementService raise no workflow rule
  • AX03049 Solr filter builder: inline-list fields insert a broken field name and offer no values
  • AX03050 Detail preview: a relation added from the catalogue is inactive and its EF type lands in the wrong field
  • AX03051 An enabled review catalogue entry is only worked off when its type is a configured target
  • AX03053 Solr change detection: the CMDB polling query no longer scans every entity of the indexed type
  • AX03056 Require authentication for the shop endpoints
  • AX03057 Require authentication for the API documentation
  • AX03058 Attach services and affected devices to incidents created by external systems
  • AX03060 JobCenter: reduced data transfer and load time when many jobs are queued
  • AX03061 Workflow processing no longer stalls when many activities have exit conditions
  • AX03062 Lists filtered by the current user’s department no longer come up empty
  • AX03063 Stopping a full index run no longer fails silently; index job status is reported in the Job Center
  • AX03064 Columns from related objects show their values again in list views
  • AX03065 Relation search without dependencies no longer bypasses user scoping
  • AX03069 Creating an entity no longer requires the class to be named in the request

Task

  • AX03014 Model ServiceOwner as a single relation instead of a collection
  • AX03020 Reviewer panel: move semantics out of the relation configuration
  • AX03046 Removed the non-functional mobile push send path; its options no longer do anything