[ENHANCEMENT] [MER-5212] Dynamic links as iframe source#6289
[ENHANCEMENT] [MER-5212] Dynamic links as iframe source#6289
Conversation
AI Review — securityNo issues found |
AI Review — performanceRe-encoding iframe source JSON on every rewritefile: lib/oli/interop/rewire_links.ex Multiple full passes to compute matching sourcesfile: lib/oli/publishing/authoring_resolver.ex |
AI Review — uiMutually exclusive source choices are implemented as checkboxesfile: assets/src/apps/authoring/components/PropertyEditor/custom/IframeSourceEditor.tsx Fallback renders a potentially non-functional linkfile: assets/src/components/parts/janus-capi-iframe/ExternalActivity.tsx |
AI Review — elixirURL-mode iframes can be incorrectly rejected as internal linksfile: lib/oli/authoring/editing/activity_editor.ex URL-mode iframes can be rewritten/fallbacked during deliveryfile: lib/oli/rendering/activity/html.ex |
AI Review — typescript
|
|
Preview deployed to: https://pr-6289.plasma.oli.cmu.edu |
Summary
Implements MER-5212: support adaptive iframe internal page links as first-class dynamic links, including authoring UX, canonical
persistence, runtime rewriting, rewiring, dependency detection, telemetry, and scenario coverage.
This enables authors to choose iframe Source as either:
Key Changes
1) Authoring UI: iframe Source editor with mode switching
2) Iframe model/schema + resolver updates
3) Save-time validation + normalization (backend)
4) Runtime delivery rewrite + fallback
content.
5) Import/export rewiring + dependency warnings
6) Telemetry and observability
7) Scenario infrastructure + scenario test coverage
8) Spec pack + requirements traceability
Backward Compatibility