12

Supposed I have a server that I have licensed under AGPLv3. Let's also assume that this server has a REST interface.

If I access this REST interface via a JavaScript script file from a client, does this make the script file and / or the client a derivative work?

3 Answers 3

9

The Short Answer:

No

The Long Answer:

The derivative definition is based on copyright law and not a license, and I can't see how a remote web services interface could ever be construed as anything other than separate from the server involved.

You are interacting with a service, not including it in your code.

A service provider MAY be able to constrain you (and your code) with a CONTRACT, but this is a LICENCE, and it shouldn't be able to re-licence your code.

An API (may) have patentable components, but the implementation of a REST service means that any code could interact with it, so it doesn't depend on copyrightable things like Java interfaces etc (or a non-trivial YML).

Although due to a recent court case between Oracle and Google over Android, an API (probably doesnt matter if it is over a remote interface) can be copyrightable, thus the service provider can constrain your actions with respect to that API. Particularly if they introduce complexity in order to force copyright infringement in order to use the interface. (Update: This ruling was reversed by the Supreme Court on April 5, 2021.)

<evil-design>
All remote access
to this software must always
include this haiku.(c)
</evil-design>

From memory, AGPL is about forcing the re-licencing when a derivative of the source code is offered as a service, but I couldn't follow the wording of license when I tried.

AGPLv3 Licence

Please note: IANAL and my memory is shaky.

Addendum

I looked again at the AGPL Licence, and I don't see the constraining language myself, except in the preamble.

Additional Thought

Does a report written against a AGPL licenced library (such as iText):

  • Require the database structure (usually remote) to be licenced as well?
  • Does that include the data?
4
  • Your additional thoughts might be the basis of a new question. Sep 26, 2018 at 14:15
  • 1
    But what if the "remote" server running AGPL project(exposed as REST) is only a container (or VM) in same real server. This can be a legal problem to projects accessing this AGPL service via REST requests ?
    – ton
    Nov 16, 2020 at 15:35
  • 1
    The Oracle and Google comment may need to be updated.
    – duckbrain
    Aug 11, 2021 at 23:34
  • @duckbrain: For future reference, you can actually edit other people's answers. I went ahead and submitted an edit, though it might not be live yet when you see this comment. (Edits to other people's answers need to be approved by a community-based process, unless you have 2000 or more reputation.)
    – Sparkette
    May 16, 2022 at 22:17
3

Interacting over HTTP never makes anything a derivative work, no matter what the license.

It would count as a network user, so you would have to make the source code of your server available.

6
  • What does no in have *no* make mean? I think maybe it was a typo, and should either be now or not. but they have very different meanings. Sep 26, 2018 at 9:00
  • I think not is the correct statement since via AGPL3 section 13 only applies to modified versions of the server. Sep 26, 2018 at 9:01
  • @LyndonWhite Type for "to". Sep 26, 2018 at 10:27
  • Ok, thank you for clarifying. I believe you are incorrect. Since via AGPL3 section 13 only applies to modified versions of the server. And the OP is talking about a client. Sep 26, 2018 at 10:37
  • @LyndonWhite You could be right - you should write your own answer explaining section 13. Sep 26, 2018 at 10:39
3

No

Full text of the AGPL 3.0 is here
Below is just a paraphrased summary

IANAL & IANYL but as I understand it:

There are 2 times that the AGPL makes people release code.

  • Section 10: If you convey a modified or unmodified version of the work it will be under the this (AGPL) license.
  • Section 13: If if you modify the Program, your modified version must offer all users interacting with it remotely an opportunity to receive (have conveyed) the source code, which will be licensed AGPL (by the above)

The normal GPL only triggers on the first of these. Which mean people could create a derivative work, but never actually convey it to the user -- just expose it as a networked service. The AGPL is suppose to fix that case.

So section 10 applies to both modified and unmodified versions. But section 13 only to modified versions.

Since you built a client, and not a server, It is clear that section 13 does not apply to you, since you are not providing any one access to you're a modified version of the work over the network.

Unless you did something like copy paste a bunch of code from the servers source into your client (which you might have done, I can think of a few reasons.). At that point your client might actually be considered as being derived from the server, and someone might argue that being a client is kinda giving people access, since HTTP is a two way protocol. I think it is a stretch though. But in that case, if you convey your work, you would certainly have to worry about Section 10.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

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