5

Let's say I'm building an app consisting of a frontend, backend and database.

The database software is AGPLv3.0 licensed and running on the database server.
The backend is proprietary, running on the backend server, and it communicates with the database.
The frontend is distributed to end users, it communicates with the backend.

Am I required to distribute the database's source code (and/or the modifications I make to the database's source code) to end users?

Diagram showing different components and their connections

(The backend is not a mere wrapper around the database, the exposed API has no resemblance to the underlying database, the end users consider themselves users of, say, a social network (and not a database hosting service).)

7
  • 1
    Just for precision: when you say "the database is AGPLv3.0 licensed", do you mean "the software running the database engine is AGPL v3.0 licensed" or "the data being stored in the database is AGPL v3.0 licensed"? The latter would be unusual but produces a very different answer. Commented Jul 23, 2023 at 10:24
  • 1
    @PhilipKendall I mean "the software running the database engine is AGPL v3.0 licensed"; updated the question to clarify this. Thanks! Commented Jul 23, 2023 at 12:54
  • @SimonFarshid, did you modify the database engine? AGPLv3 s13 only kicks in when you modified the database engine. Commented Jul 24, 2023 at 7:17
  • @BartvanIngenSchenau For the sake of transparency: I am someone who is interested in licensing their own code as AGPL and wants to understand the extent of the copyleft protections that it offers. - It was not immediately obvious to me that the S13 only kicks when you modify the engine. Thanks for that insight! - Edits to the database engine are definitely in scope of this question, as the question body already states. Commented Jul 24, 2023 at 7:46
  • 2
    @SimonFarshid, I don't believe s13 is intended to be interpreted that way (or the FSF lawyers would have left the part about modified software out of it). I believe the intention is more along the lines of "If I use an unchanged database engine, other can retrieve the same version from the same place where I got mine. But if I made changes, I must share my version so others can benefit as well." Commented Jul 24, 2023 at 8:18

2 Answers 2

5

Addressing the question in the title: no, AGPL defines distribution (or "conveyance", as the licence has it) in s0, and no kind of use, direct or indirect, counts as distribution. It's tempting to see AGPL as somehow extending GPL's distribution obligations to cover certain classes of use, but that is not how AGPLv3 s13 is written, and therefore not how it should be read.

Addressing the question in the body, while I hate to disagree with a colleague, I don't think such use constitutes "remote network interaction". The FSF addresses the issue in a FAQ entry, thus:

If the program is expressly designed to accept user requests and send responses over a network, then it meets these criteria.

I don't see that as including remote use of a database server, unless users are interacting with it directly, eg via their own SQL queries. Moreover, a principal thrust of newer (and, IMO, bad) licences such as the SSPL is to extend AGPL so that it does cover remote, indirect use of software further down the stack. Such an extension wouldn't have been necessary if the AGPL already included such use cases, and it's particularly telling (to me) that it was introduced by a database company.

2
  • I disagree that the existence of SSPL can be filed as evidence against @ruben2020's interpretation: IANAL, but a) I believe SSPL's S13 applies only if you're running a software as a service. I'm not running a database as a service, so SSPL's S13 clause is irrelevant. b) If S13 were to apply, it would require publishing the source code of my backend and frontend under SSPL. ruben2020's interpretation of AGPL would not require open sourcing the backend/frontend. -- Thus, the creation of SSPL would have been necessary, even if ruben2020's interpretation is true. Commented Jul 24, 2023 at 14:26
  • 1
    You're entitled to your opinion, but Mongo themselves say in their FAQ "There is some confusion in the marketplace about the trigger and scope of the Remote Network Interaction provision of AGPL. As a result, we decided to base the SSPL on GPL v3 and to add a new section 13". Considering this question is about the conditions that trigger AGPLv3 s13, I stand by my argument. That said, it's very much secondary to the FSF FAQ, which I see as dispositive.
    – MadHatter
    Commented Jul 24, 2023 at 14:35
2

Section 13 of the AGPLv3 states:

Notwithstanding any other provision of this License, if you modify the Program, your modified version must prominently offer all users interacting with it remotely through a computer network (if your version supports such interaction) an opportunity to receive the Corresponding Source of your version ....

It says "interacting with it remotely through a computer network".

IANAL, but since it doesn't explicitly state whether it refers to direct or indirect interaction, I would assume that it refers to both, to be on the safe side.

2
  • Reading your interpretation to its logical conclusion: [to be on the safe side] the backend & frontend must "prominently offer all users [...] an opportunity to receive the Source of [my modified version of the database]". And the opposite shall be true in general: software making networked calls to modified AGPL code may not be shared unless it prominently provides links to source code for the AGPL code that it remotely accesses, and it must require all software accessing itself over a network to pass on these links to their users. In a way, the S13 requirement of AGPL is therefore "viral". Commented Jul 24, 2023 at 9:00
  • Is this a fair reading? I personally find this interpretation logical and attractive, it feels in-spirit to the copyleft intent of GPL. - In a world without SaaS, any software shared must provide source code for all its GPL parts. Analogously, (I wish that) any SaaS must provide source code of all its AGPL parts (including databases that I cannot access directly). - However, I am also suspicious of this interpretation, since it feels like it requires a lot of "imagination" to arrive at this interpretation, and @MadHatter provided another plausible interpretation... Commented Jul 24, 2023 at 9:11

Your Answer

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

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