I will be involved in a project that will require some components that will be fairly large and complex but possibly extremely valuable to the community. I would love to be able to package some of the non-proprietary components and make them available to the community but because of the time spent and the potential value I would want to sell them, not make them public domain.
Currently, the way Outsystems and the Forge work there is no practical way to do this that I’m aware of. Here are the blocking issues I know of.
1) If I develop a component and send it to someone else without going through Forge, thereby making it public, the software cannot be installed because of IPP restrictions
2) Even if IPP restrictions were lifted, there’s no way to protect my component from being reused, hacked and/or redistributed to others thereby eliminating the need for payment
3) There is no component verification process (similar to what Appstore does) to verify that by installing a component you won’t break anything in your existing environment (overwriting User information, using old system components, etc.)
One thought was a developer edition, similar to the personal edition that would identify these ‘for sale and verified’ components.
Let’s use a concrete example. In my application I need to build a dynamic role based security system for an organization with lots of roles and lots of web screens. This system has the following basic requirements.
1) Eliminate the need for developers to know (or guess) what roles will have access to particular functions and screens
2) Outsystems roles for a web screen are all or nothing – I want to reduce the number of screens, code and maintenance by using the same web screens for view and update depending on role
3) Allow administrators to control what roles can do what by showing a list of all web screens and roles and making appropriate selections and have those changes take effect immediately
4) Dynamically affect the menu system based on the user’s role, mostly eliminating menu selections for web screens the role does not have access to
This will be a significant effort but I know it would be a valuable component for those that need it. It would be impossible for me to develop and support such a component without some sort of compensation. That’s what I’m trying to achieve with this idea.
All constructive thoughts and comments welcome!