Skip to content

feat(admin-ui): make Tutorials OP facets readable (concepts/community/images) - #2096

Merged
jung-thomas merged 1 commit into
DEVfrom
feat/admin-facet-readability
Sep 1, 2026
Merged

feat(admin-ui): make Tutorials OP facets readable (concepts/community/images)#2096
jung-thomas merged 1 commit into
DEVfrom
feat/admin-facet-readability

Conversation

@jung-thomas

Copy link
Copy Markdown
Contributor

What & why

Three facets on the Tutorials Object Page in the admin UI showed raw keys or blanks. Tom's feedback:

Images — Bytes is empty… a link to the object in the object store? … and a link to the output of the image from the tutorial system itself? Concepts Taught — it only shows a GUID of the Concept ID… we really need a description. Similar on Community — it shows a numeric ID but no description.

Changes

  • Concepts Taught — annotate the concept association with @Common.Text: concept.name (#TextOnly) so the FK renders the concept name instead of a GUID.
  • Community — expose KgCommunityLabelInfo (projection on the existing KgCommunityLabel) + a labelInfo select-list association joined on communityFingerprint; annotate communityId with @Common.Text: labelInfo.label (#TextFirst). LineItem now shows Community (labelled) + member slug + type (fingerprint dropped). Label is blank until the Louvain labeling job ([Leverage KG communities in learner-facing surfaces and Joule #1126]) runs in an env — the member slug is the always-present fallback.
  • Images — add virtual thumbUrl/viewUrl to the TutorialImages projection, filled in after('READ') from sourceUrl:
    • thumbUrl → approuter /img-cdn (resize/WebP preview), rendered inline via @UI.IsImageURL
    • viewUrl → CAP /content/image-source (raw original, self-heals from object store)
    • LineItem leads with the inline thumbnail + an "Image (served)" link alongside the existing Source (GitHub) link and the Type / Bytes / Hash / Channel store details.
    • Note: empty Bytes on some rows is legacy data (rows ingested before byteSize existed); fresh ingest populates it.

Tests

test/unit/admin-facet-readability.test.js — CSN annotation guards for all three + a served runtime check of the image URL enrichment (incl. null-sourceUrl skip). EDMX verified: annotations land on concept_ID, communityId, thumbUrl. Full compile clean; related admin/community suites green.

Deploy note

Admin-UI change — requires a FULL deploy (npm run deploy -- --env <env>, no --skip-build / no -m scoping) to view; the admin bundle is raw-copied into the approuter at mbt build.

No srv/lib change (no srv-qa cp-list impact); KgCommunityLabelInfo is a projection on an already-persisted entity (no migration).

…/images)

Three Object-Page facets on the Tutorials admin UI showed raw keys or blanks.
Per Tom's feedback:

- Concepts Taught: concept_ID rendered a bare GUID. Annotate the `concept`
  association with @Common.Text: concept.name (#TextOnly) so the FK shows the
  human-readable concept name.
- Community: membership facet showed a numeric communityId + opaque
  fingerprint. Expose KgCommunityLabelInfo (projection on the existing
  KgCommunityLabel) + a `labelInfo` select-list association joined on
  communityFingerprint, and annotate communityId with @Common.Text:
  labelInfo.label (#TextFirst). LineItem now shows Community (labelled) +
  member slug + type; fingerprint dropped. Label is blank until the Louvain
  labeling job (#1126) runs in an env — member slug is the always-present
  fallback.
- Images: "Bytes" looked empty on legacy rows and there was no link to the
  stored/served image. Add virtual thumbUrl/viewUrl to the TutorialImages
  projection, filled in after('READ') from sourceUrl (thumbUrl → approuter
  /img-cdn resize/WebP preview; viewUrl → CAP /content/image-source raw
  original, self-heals from the object store). LineItem now leads with an
  inline thumbnail (@UI.IsImageURL) + a "Image (served)" link alongside the
  GitHub source and the mime/bytes/hash/channel store details.

Guarded by test/unit/admin-facet-readability.test.js (CSN annotation guards +
served URL-enrichment check incl. null-sourceUrl skip). EDMX verified: all
three annotations land on concept_ID, communityId, thumbUrl.

Admin-UI change — needs a FULL deploy (no --skip-build / -m scoping) to view.
@jung-thomas
jung-thomas merged commit e2d3e63 into DEV Sep 1, 2026
5 checks passed
@jung-thomas
jung-thomas deleted the feat/admin-facet-readability branch September 1, 2026 18:39
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant