I'm designing a web service where one part of it will be licensed as AGPLv3 (Affero GPLv3) because of a dependency. But I want to make the other part of that system proprietary. The users will be able to interact with the whole system publicly and use both parts. The two subsystems/components will also interact with each-other.
So I'd publish the original-derived part's source code but I'd like to have the other part as a proprietary code.
The license says that OS and library dependencies are fine to use if interface+implementation is opensource but it doesn't say exactly if I can use network/lib dependencies without declaring their source code.
So is it possible to have a documented/generated/extracted interface which describes system interaction which I'd then use as a part of my system? Which would be closed source.
Basically the question boils down to "can I use Liskov substitution" without a need to opensource both implementations of the interface?
I'd like to host it as a service. Original-derived code would be opensourced but there would be part of the code that wouldn't.
So in short:
- Can I depend on closed-source network dependency from opensource part?
- Can I depend on closed-source non-system library from opensource part?
- Is it enough to provide a stub/toy implementation of the features if I create an interface to manage my new feature?