# Current state of Content Libraries v2 (with Blockstore) and frontend-app-library-authoring

**URL:** <https://discuss.openedx.org/t/current-state-of-content-libraries-v2-with-blockstore-and-frontend-app-library-authoring/5304>\
**Category:** Development\
**Created:** [June 30, 2021, 12:13pm UTC](https://discuss.openedx.org/t/current-state-of-content-libraries-v2-with-blockstore-and-frontend-app-library-authoring/5304 "2021-06-30T12:13:15Z")\
**Posts on this page:** 9\
**Page:** 1

<div class="post-metadata">

**Author:** ![fghaas](https://sea2.discourse-cdn.com/flex020/user_avatar/discuss.openedx.org/fghaas/32/168_2.png) [@fghaas](https://discuss.openedx.org/u/fghaas)\
**Post date:** [June 30, 2021, 12:13pm UTC](https://discuss.openedx.org/t/current-state-of-content-libraries-v2-with-blockstore-and-frontend-app-library-authoring/5304/1 "2021-06-30T12:13:15Z")

</div>

Hi everyone,

So this is somewhat related to this post:

> [@Building With Blockstore](https://discuss.openedx.org/t/building-with-blockstore/5248):
>
> Originally published at: [Building With Blockstore – Open edX](https://open.edx.org/video/building-with-blocksore/)

… but I figure it probably warrants a separate topic/thread. 🙂

In the aforementioned talk, @braden briefly mentions (near the very end, link with timestamp: [https://youtu.be/DARBuFcEb8w?t=1569](https://youtu.be/DARBuFcEb8w?t=1569)) the `frontend-app-library-authoring` MFE which would help course authors build Blockstore-based v2 content libraries. (To the best of my knowledge that is the only such MFE within Open edX; I do understand LabXchange uses something different to build libraries — if there are any _other_ development efforts around v2 library authoring, do let me know!)

> **[GitHub - openedx/frontend-app-library-authoring: Work-in-progress...](https://github.com/openedx/frontend-app-library-authoring)**
>
> Work-in-progress micro-frontend experience for Open edX Blockstore-based content libraries. - GitHub - openedx/frontend-app-library-authoring: Work-in-progress micro-frontend experience for Open ed...

So, my question is: what’s the current state, and the agreed way forward for that MFE, and for v2 content libraries in general?

Looking at the commit history that repo hasn’t seen updates in a few months — which, I speculate, might be somewhat related to @arbrandes possibly having his hands uber-full with the BTR and community bits. 🙂

So, I figured I’d ask here: will work on that MFE be picked up again for a potential inclusion in Maple? Is there an alternate approach being discussed for v2 content libraries? Has the future of Blockstore changed?

Looking forward to your thoughts — thanks in advance!

Cheers,  
Florian

---

<div class="post-metadata">

**Author:** ![arbrandes](https://sea2.discourse-cdn.com/flex020/user_avatar/discuss.openedx.org/arbrandes/32/158_2.png) [@arbrandes](https://discuss.openedx.org/u/arbrandes)\
**Post date:** [June 30, 2021, 12:53pm UTC](https://discuss.openedx.org/t/current-state-of-content-libraries-v2-with-blockstore-and-frontend-app-library-authoring/5304/2 "2021-06-30T12:53:04Z")

</div>

> [@fghaas](#):
>
> Looking at the commit history that repo hasn’t seen updates in a few months — which, I speculate, might be somewhat related to @arbrandes possibly having his hands uber-full with the BTR and community bits. 🙂

You got the gist, but in reality it was the other way around: I found time to get involved with the release group because work on Libraries v2 paused. 🙂

> [@](#):
>
> So, I figured I’d ask here: will work on that MFE be picked up again for a potential inclusion in Maple? Is there an alternate approach being discussed for v2 content libraries? Has the future of Blockstore changed?

The short answer is yes, work on frontend-app-library-authoring will pick back up in the coming weeks, targetting inclusion in Maple. Like before, it’s work that edX will fund and Opencraft will execute.

In addition, some closely related work is already in progress and being funded by MIT: [integrating LTI 1.3 with content libraries](https://github.com/edx/edx-platform/pull/27411). Its authoring experience is supposed to be via the library authoring MFE.

Which is to say, the plans for blockstore haven’t changed since last year - they had just been pushed back.

---

<div class="post-metadata">

**Author:** ![fghaas](https://sea2.discourse-cdn.com/flex020/user_avatar/discuss.openedx.org/fghaas/32/168_2.png) [@fghaas](https://discuss.openedx.org/u/fghaas)\
**Post date:** [June 30, 2021, 1:14pm UTC](https://discuss.openedx.org/t/current-state-of-content-libraries-v2-with-blockstore-and-frontend-app-library-authoring/5304/3 "2021-06-30T13:14:10Z")

</div>

> [@arbrandes](#):
>
> You got the gist, but in reality it was the other way around: I found time to get involved with the release group because work on Libraries v2 paused.

Fair. 🙂

> [@arbrandes](#):
>
> The short answer is yes, work on frontend-app-library-authoring will pick back up in the coming weeks, targetting inclusion in Maple. Like before, it’s work that edX will fund and Opencraft will execute.

Roger that, thank you!

---

<div class="post-metadata">

**Author:** ![fghaas](https://sea2.discourse-cdn.com/flex020/user_avatar/discuss.openedx.org/fghaas/32/168_2.png) [@fghaas](https://discuss.openedx.org/u/fghaas)\
**Post date:** [October 19, 2021, 8:53am UTC](https://discuss.openedx.org/t/current-state-of-content-libraries-v2-with-blockstore-and-frontend-app-library-authoring/5304/4 "2021-10-19T08:53:05Z")

</div>

Hi everyone,

I’m taking the liberty to follow up on this thread, now that `open-release/maple.master` [has been branched](https://github.com/edx/edx-platform/commit/928a6477567ccd3bc42c07855892dd7607398c29) and we’re thus coming closer to a Maple release.

As far as I’ve been following, there’s a couple of things that have been happening on this front recently, and I’d like to know if my understanding is correct here.

- In a [related thread on the Tutor Discourse](https://discuss.overhang.io/t/using-blockstore-with-tutor/1770), I learned back in July that Blockstore would not become available as a Tutor plugin because Blockstore was being converted [from a standalone service to an app installable under edx-platform](https://github.com/edx/blockstore/blob/master/decisions/0002-app-not-service.rst). As of today, [that effort appears to still be ongoing](https://github.com/edx/blockstore/pull/97).

- Development of `frontend-app-library-authoring` appears to have picked back up [with a few commits from @gabor in early September](https://github.com/edx/frontend-app-library-authoring/commits/master), but it’s somewhat unclear to me how close this MFE is to a production-ready release.

- In August, a patch from @jvdm [landed in Studio](https://github.com/edx/edx-platform/pull/27715) that added the capability to import course content from modulestore into blockstore.

Is that understanding correct, so far? If so, I’d be interested in getting answers on the following questions:

1. Right now we’re a bit stuck between a rock and a hard place: we can run Blockstore as a separate service with `edx-configuration`, but that’s going away, and we have no way (that I know of) to run it in Tutor. We _would_ be able to run it in Tutor if it was no longer a separate service, but now that the Maple release branch has already been cut in Blockstore, I’m not sure if such a major change can still land between now and the release. What’s the current (updated?) plan for the Open edX community to run Blockstore and Libraries v2 in a “supported” fashion in production for Maple? Or else, has this been postponed to Nutmeg?

2. I am assuming — correct me if I’m wrong, please — that since v1 library content simply gets duplicated in courses, the aforementioned import facility can also be used to import library v1 content, albeit only if presently included in a course.

- Is there a way to import content _directly_ from v1 to v2 libraries without having to include it in a course?
- If there is none, then how exactly is the course-to-v2-library import expected to behave if the library v1 content is presently included in a course via a [randomized content block](https://edx.readthedocs.io/projects/edx-partner-course-staff/en/latest/exercises_tools/randomized_content_blocks.html)?

Thanks in advance!

---

<div class="post-metadata">

**Author:** ![fghaas](https://sea2.discourse-cdn.com/flex020/user_avatar/discuss.openedx.org/fghaas/32/168_2.png) [@fghaas](https://discuss.openedx.org/u/fghaas)\
**Post date:** [November 1, 2021, 10:32am UTC](https://discuss.openedx.org/t/current-state-of-content-libraries-v2-with-blockstore-and-frontend-app-library-authoring/5304/5 "2021-11-01T10:32:30Z")

</div>

I’m still curious about this. 🙂 @braden, would you perhaps be able to chime in here?

---

<div class="post-metadata">

**Author:** ![arbrandes](https://sea2.discourse-cdn.com/flex020/user_avatar/discuss.openedx.org/arbrandes/32/158_2.png) [@arbrandes](https://discuss.openedx.org/u/arbrandes)\
**Post date:** [November 1, 2021, 2:23pm UTC](https://discuss.openedx.org/t/current-state-of-content-libraries-v2-with-blockstore-and-frontend-app-library-authoring/5304/6 "2021-11-01T14:23:55Z")

</div>

Hey Florian! I’m no longer the lead on this project on OpenCraft’s side (@jvdm is), but let me step in with what I know.

> [@fghaas](#):
>
> Is that understanding correct, so far?

Yup, that’s pretty much the gist of it for non-LTI users. (If you _do_ use LTI, though, you can now export blocks in Content Libraries individually.)

> [@fghaas](#):
>
> What’s the current (updated?) plan for the Open edX community to run Blockstore and Libraries v2 in a “supported” fashion in production for Maple? Or else, has this been postponed to Nutmeg?

Excellent question. I was fervently hoping that [blockstore-as-app](https://github.com/edx/blockstore/pull/97) would land for Maple, but it didn’t. (It is also indeed unlikely to be pulled in at this point, even if it lands in master tomorrow.) I was also hoping that [BD-14](https://openedx.atlassian.net/wiki/spaces/COMM/pages/3061186611/BD-14+Content+Libraries+and+Problem+Editing+Project+Overview) would have progressed enough to make it usable in Maple, but it was only just restarted. Because of these, the fact of the matter is that official, supported deployment of either Blockstore and/or Libraries v2 will only happen by Nutmeg.

That said, MIT paid for the aforementioned LTI/Blockstore/Libraries v2 development and intends to use it in Maple in production. I’m slated to meet with @pdpinch about this very topic this week. Would you like an invite as well? @Maksim_Sokolskiy has also expressed an interested in joining. Note, though, that MIT does not use edx/configuration _or_ Tutor - what you’d get out of this meeting is likely a common expectation for handling the migration of the data once Blockstore becomes a proper Open edX app.

> [@fghaas](#):
>
> Is there a way to import content _directly_ from v1 to v2 libraries without having to include it in a course?

Not at the moment.

> [@fghaas](#):
>
> how exactly is the course-to-v2-library import expected to behave if the library v1 content is presently included in a course via a [randomized content block](https://edx.readthedocs.io/projects/edx-partner-course-staff/en/latest/exercises_tools/randomized_content_blocks.html)?

The short answer is that the behavior is undefined. We designed and tested the import tool for MIT around its relatively large academic courses (2000+ blocks), but the block types were limited in variety. Essentially, it’ll work fine with HTML, Problem, and Video blocks (even including Mathjax, PDFs, and SVGs), but with anything else - including randomized content - YMMV.

There is a further issue, though. Even if the import works flawlessly, there’s no guarantee that the content will be rendered properly. And _that_ depends on where and how you’re using it. Via LTI, for instance, the block will be rendered in a iframe using [this wrapping code](https://github.com/edx/edx-platform/blob/master/cms/templates/content_libraries/xblock_iframe.html). It does its best to replicate Studio and LMS frontend behavior in a self-contained fashion, but it falls down on some known situations (such as rendering the `author_view` correctly on some blocks). You might have better luck with the [source from library block](https://github.com/edx/edx-platform/blob/master/common/lib/xmodule/xmodule/library_sourced_block.py), though.

If you get as far as testing any of this, though, please do report your findings. There might be simple tweaks we can contribute that make your use case work better (or at all).

---

<div class="post-metadata">

**Author:** ![fghaas](https://sea2.discourse-cdn.com/flex020/user_avatar/discuss.openedx.org/fghaas/32/168_2.png) [@fghaas](https://discuss.openedx.org/u/fghaas)\
**Post date:** [November 1, 2021, 3:48pm UTC](https://discuss.openedx.org/t/current-state-of-content-libraries-v2-with-blockstore-and-frontend-app-library-authoring/5304/7 "2021-11-01T15:48:05Z")

</div>

All right, thanks Adolfo! So to summarize, the answer to the question I put at the very end of [this post](https://discuss.overhang.io/t/using-blockstore-with-tutor/1770/5) back in July, is “yes”. 😃 Fair point?

> [@arbrandes](#):
>
> That said, MIT paid for the aforementioned LTI/Blockstore/Libraries v2 development and intends to use it in Maple in production. I’m slated to meet with @pdpinch about this very topic this week. Would you like an invite as well? @Maksim_Sokolskiy has also expressed an interested in joining. Note, though, that MIT does not use edx/configuration _or_ Tutor - what you’d get out of this meeting is likely a common expectation for handling the migration of the data once Blockstore becomes a proper Open edX app.

My schedule this week is unfortunately extremely full, and to be perfectly honest if this isn’t landing in Maple anyway, then it moves down on our priority list by several notches — we’ve got plenty of issues to resolve with the edx-configuration→Tutor transition for Maple as-is. So assuming the last word is still that Blockstore as a separate service will never be Tutor-deployable, we won’t be revisiting this issue before the Maple release is done, and the blockstore-as-app effort has landed in master (and Nutmeg).

So I’m not sure how much sense it makes for us to join this week’s meeting since we won’t be able to contribute anything until we’ve got our own Tutor transition on the books. Hence, as much as I appreciate the offer, I’m somewhat inclined to politely decline. Does that sound reasonable to you?

---

<div class="post-metadata">

**Author:** ![arbrandes](https://sea2.discourse-cdn.com/flex020/user_avatar/discuss.openedx.org/arbrandes/32/158_2.png) [@arbrandes](https://discuss.openedx.org/u/arbrandes)\
**Post date:** [November 1, 2021, 3:54pm UTC](https://discuss.openedx.org/t/current-state-of-content-libraries-v2-with-blockstore-and-frontend-app-library-authoring/5304/8 "2021-11-01T15:54:29Z")

</div>

> [@fghaas](#):
>
> the answer to the question I put at the very end of [this post](https://discuss.overhang.io/t/using-blockstore-with-tutor/1770/5) back in July, is “yes”. 😃 Fair point?

Completely fair. 🙂

> [@fghaas](#):
>
> as much as I appreciate the offer, I’m somewhat inclined to politely decline. Does that sound reasonable to you?

Of course, no worries!

---

<div class="post-metadata">

**Author:** ![fghaas](https://sea2.discourse-cdn.com/flex020/user_avatar/discuss.openedx.org/fghaas/32/168_2.png) [@fghaas](https://discuss.openedx.org/u/fghaas)\
**Post date:** [November 1, 2021, 4:06pm UTC](https://discuss.openedx.org/t/current-state-of-content-libraries-v2-with-blockstore-and-frontend-app-library-authoring/5304/9 "2021-11-01T16:06:33Z")

</div>

Sounds good. Thanks for the comprehensive update!
