Skip to content

Migration & Upgrade Guide

This page highlights the important API and integration changes in the current frontend surface.

Widget Attribute Changes

config-urlconfig-base-url

diff
- <asc-comment-widget config-url="https://app.example.com">
+ <asc-comment-widget config-base-url="https://app.example.com">

Feature flags moved into tenant config

The widget no longer accepts product toggles like show-voting or max-depth as direct HTML attributes.

diff
- <asc-comment-widget show-voting="false" max-depth="2">
+ <asc-comment-widget tenant-id="welt" api-base-url="https://api.example.com">
ts
widget.tenantConfig = {
  id: 'welt',
  api: { baseUrl: 'https://api.example.com', tenantId: 'welt' },
  branding: { displayName: 'WELT' },
  features: { votingEnabled: false },
  behavior: { maxReplyDepth: 2 },
};

Tenant Config Renames

diff
{
  "features": {
-   "editingEnabled": true,
-   "deletionEnabled": true
+   "editEnabled": true,
+   "deleteEnabled": true
  },
  "behavior": {
-   "defaultSort": "new",
-   "replyDepthLimit": 3
+   "defaultSortMode": "new",
+   "maxReplyDepth": 3
  }
}

Widget Event Expectations

Older examples sometimes treated <asc-comment-widget> as if it forwarded comment submit/edit/delete events to the host page. The current widget owns those flows internally.

If you need to intercept comment lifecycle events directly:

  • use lower-level components such as asc-comment-form and asc-comment-item
  • or switch to @as-community/web and render your own UI

The widget only emits inspection events in inspect-mode.

SDK Notes

  • SDK methods return result objects instead of throwing for expected API failures
  • listModerationArticles() is now available for moderation frontends
  • tenantConfigUrl now eagerly loads and stores the tenant config on the client instance