License restrictions under different deployment styles

(Juan Vaccari) #1

We are a group of software developers creating a system which includes several components, one of which is Discourse. We are concerned about license restrictions and could not decide if what we are doing is accepted by Discourse license.

We have thought about different approaches to selling our service to clients:

A) SaaS, with every component in our servers and the clients accessing the functionality remotely through an AngularJs application.

B) Keeping public information in our servers but private one in the client servers

C) Deploying the entire solution in client’s servers and running the entire system from there.

We believe that option A) is in accordance with the license but we have doubts about option B) and C).

  1. We are not selling the software but a service, but the software would need to be installed in client’s premises for option B) and C). Is that accepted by the license?

  2. Do we need to open source the entire code for the system in case we modify the Discourse code or do we just have to open source the changes made to the Discourse code?

(Sam Saffron) #2

GPL prescribes that all the people who use your system need to be able to access the source code including all your private modifications. If we can not see the site we can not ask for the source code.

You only need to open it to all the consumers of your service.

If this does not work for you, you would have to open a discussion with us to get a custom license, as ultimately we have full copyright on the code.

(Kane York) #3

No, that’s the identifying provision of the AGPL. The only people that the license entitles to a copy of the source are those who receive a copy of the binary.

However, in the case of JavaScript, all of the users receive copies of the “binaries”. For /admin customizations, you do receive them in the “preferred form for editing”. For plugins that add JS code, or anything else adding JS code, there is a tight enough coupling for the GPL to apply here to anyone who visits your site.

Basically - this is right for the wrong reason.

(Sam Saffron) #4

Our markdown engine runs server side, stuff is coupled so tight you would be stretched arguing you can keep server code behind.

(Kane York) #5

I was talking more of anything that runs in just Ruby code, like controller methods or scheduled jobs. JS, you pretty much have to give out here.