2

Let's say I have a web app, and I want to offer an AGPL image editor in it. That image editor is run separately from the app but is displayed in an IFrame on it.

The source code of both apps is completely separate and the AGPL licensed editor is unchanged.

Does this fall under the terms of AGPL? Does the source of the app just including it also need to be open?

2

In a web context, it is not always clear where one program starts and the other ends. However, since content in an iframe runs in a separate browsing context, it is likely a separate Work in the sense of the AGPL. Thus, loading an image editor in an iframe would likely be OK, and would probably not require you to publish source code for the other software.

Of course, these concerns can be entirely side-stepped by loading the AGPL image editor in a separate tab.

As a general rule of thumb, open source licenses never affect other software (Open Source Definition #9: License Must Not Restrict Other Software). Thus, you can distribute or run any open source program side by side with other software.

| improve this answer | |
  • Thank you! have been looking for this for a while. Forgot to clarify something: The source code of both apps is completely separate and the AGPL licensed editor is unchanged. There is one caveat, the files from the main app are loaded into the image editor for editing then saved back to the main app periodically for version control. This happens on the server side. Does that cause trouble? – DannyZB Sep 27 at 5:18
  • 1
    @DannyZB In a web context, it's not always clear whether frontend and backend are separate programs or whether they form a single distributed program. However, given an unmodified AGPL frontend component there's a solid argument that your backend is entirely separate. How the image is loaded into the editor could perhaps matter. It would be clearest that the editor is separate from other frontend if instead of frames accessing each other's data structures, the editor is configured with URL parameters, loads its input from the backend, or receives data via window.postMessage(). – amon Sep 27 at 14:05
  • Great, Thank you – DannyZB yesterday

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.