salesagility / SuiteCRM

SuiteCRM - Open source CRM for the world
https://www.suitecrm.com
GNU Affero General Public License v3.0
4.46k stars 2.08k forks source link

Plans to move on to v10+ REST API #242

Closed skynet closed 7 years ago

skynet commented 9 years ago

Is there any current development regarding v10+ REST API ?

JimMackin commented 9 years ago

I wouldn't think so. There is no community version of SugarCRM 7. This means the v10 REST API isn't open source.

skynet commented 9 years ago

That can't be true. This will raise a big question: what was the purpose of forking SugarCRM CE? I hope that it wasn't just to copy the source code and give it another name. Did you lose the initial vision for a better and true Open Source CRM?

recci commented 9 years ago

I think you are confusing SuiteCRM 7 and SugarCRM 7.

skynet commented 9 years ago

I was asking if v10 REST API is available for SuiteCRM and response was that there is no community version of SugarCRM 7 (which obviously includes a v10 REST API). The answer lead me to conclude that you are waiting for SugarCRM 7 to release a community version, in order to supply an updated version of the REST API with SuiteCRM.

chris001 commented 9 years ago

I agree it'd be a wise move and really great to either convince Sugar to AGPL license the v10 REST API, or just start to port it over with full respect to any Sugar copyrights, in other words, obtain test harnesses and starting from the v4 API, develop a fully compatible v10 API. Because the v10 REST API is a published specification. Having v10 REST API would benefit the user base by providing a high degree of compatibliity with Sugar 7 add-on modules. Since all interior communication between Sugar 7 and its add-on modules takes place over the v10 REST API. Compatibility with Sugar 7 modules would be fantastic - instantly hundreds and thousands of Sugar 7 add-on modules would install and probably "just work" on Suite 7 with v10 REST, which would translate to a massive boost to the Suite 7 ecosystem, user base, and number of customers. v10 API Help: https://acelero.sugarondemand.com/rest/v10/help

v10 API Docs: http://support.sugarcrm.com/02_Documentation/04_Sugar_Developer/Sugar_Developer_Guide_7.6/70_API/Web_Services/

skynet commented 9 years ago

:100: Thank you! This a logical and constructive response. Good base for further discussions. And maybe we can even kick-off development for the next generation v10-compatible REST API.

mattlorimer commented 9 years ago

We are certainly not waiting for sugar to release this as open source, the plan was always to write an improved rest interface, I can see why you may want to make it compilable with the sugar interface. But it would be great to get some discussions going on this and would be a very welcome contribution to the project.

Danisan commented 9 years ago

It would be good, but only if it is well documented, and it would be desirable to preserve backward compatibility with legacy 4/4_1 rest api, in order to make migration smoother.

I think that it won't be difficult to emulate the same input and output (don't believe there would be problems regarding license) since there is just emulating, and interfacing with a different system (SuiteCRM)

ricktimmis commented 9 years ago

I note that the Sugar_Developer Guide says

"This v10 API is separate from the v2-v4_1 REST APIs in that it has been rebuilt with the latest REST standards."

There is an excellent opportunity here to implement a really excellent REST interface. I don't believe we should focus on plugin compatibility for SugarCRM extensions and addons, but instead we should focus on delivering a truly level 3 HATEOS compliant REST APi for SuiteCRM, with first class developer documentation, and guides. This would create the base ecosystem that would see developers flocking to build extensions for SuiteCRM.

What I think is needed first is a place to develop the design document for a SuiteCRM APi, I am happy to sketch out the skeleton of this, just need a place to work on it.

skynet commented 9 years ago

It would be strategically wise to fully implement and support a SugarCRM v10 API and ensure compatibility for SugarCRM 7 plugins. User base and the developer community centered on SuiteCRM might not be powerful enough for a SuiteCRM sustainable ecosystem. It may take a couple of years and total abandonment of the Community version by SugarCRM before Suite can live and prosper as a healthy and powerful Open Source project. On the long term there's always the possibility for a feasible and viable symbiosis. See CentOS versus RedHat Enterprise, where both managed to join forces in 2014.

skynet commented 9 years ago

Any news about this? It is long overdue. Thank you.

chris001 commented 9 years ago

@skynet like me you feel the best way forward would be to implement the v10 rest api that runs at the core of Sugar 7. Sure it's not HATEOAS (state fully contained in the hypertext head post get and cookie parameters and data) but the v10 rest api compatible implementation is the key to accessing the billion dollar Sugar 7 ecosystem and that Sugar 7 ecosystem is what needs to be shared in by Suite 7 to thrive immediately, as well as contributed back to that ecosystem by Suite 7. Adding HATEOAS onto v10 and making a standard of it that both Suite and Sugar would benefit from would be a good next step after implementing v10 rest api from sugar 7.

@ricktimmis You mentioned you needed to sketch out the skeleton for this, which app would you sketch it out with?

skynet commented 9 years ago

I started to lose hope that SuiteCRM will ever get ahead of SugarCRM. So far SuiteCRM is just a clone of the dev branch https://github.com/sugarcrm/sugarcrm_dev with a custom SuiteCRM theme. We seem to be stuck with v6 due to the fact that 1) SugarCRM execs got greedy and decided to keep v7 closed-source, and 2) SuiteCRM lacks the professional capacity required for such project.

chris001 commented 9 years ago

There is a dedicated development team working on SuiteCRM today. Suite is much more than the responsive theme. About 15 new added modules, and bug fixes to Sugar CE. Suite 7 has more complete functionality than the paid app Sugar Pro. https://suitecrm.com/suitecrm/comparison

It may not even be necessary to reverse engineer v10 rest api. Sugar may open it up or see the wisdom in licensing it. Or v10 rest api alone may already be open source and we don't realize it. Can someone who is a subscriber to Sugar 7 check in the v10 rest api files for license? It's open source in the sense that the source code is readable. I know it's copyrighted commercial code but it still may be licensed in a way that allows just the v10 REST API to be reused directly.

Otherwise, to reverse engineer the v10 rest api should be relatively straightforward, and the reward is high. It is not a huge api. There are about 80 items.

skynet commented 9 years ago

Thanks, @chris001 If there's a dedicated team working on SuiteCRM how come we have open tickets piling up and unresolved since 2014? Obviously, since this is open source, you don't have any obligations to fulfill toward us. But we do need to know the status of this project, considering the time spent developing with it, and the impact on our own clients. Regular blog postings, a list of milestones, or regular updates would help with building much needed confidence.

Thanks again for the great work.

chris001 commented 9 years ago

Disclosure: I'm not a team member of Sales Agility. However am a big fan of the Sales Agility team and SuiteCRM 7 the application. From what I gather the dedicated development team is only in place recently. Maybe for 6 months? Not sure exactly. So naturally, many, but not all, outstanding issue has been resolved as of today. However the ability, skill, experience, grit, and determination are there and daily progress is happening clearly as you can see on github issues. The greatest part is anyone with spare time can contribute fixes, or request features be added to the roadmap, or request publishing the roadmap or milestones, since the code is here and it's open.

Anyone care to discuss ins and outs of setting up a v10 REST API community development process?

Unsure whether github could all by itself nail agile project management, milestones, roadmaps, scrums, or if it'd have to be supplemented with other development tools.

PHPstorm and Youtrack are wicked for this and free for open source projects.

Which PHP development tools is the Sales Agility team using for SuiteCRM? @jimmackin @recci @mattlorimer

gunnicom commented 9 years ago

"The greatest part is anyone with spare time can contribute fixes, or request features" Well you can do that, but they will never be pulled. Suite team seems to just do their work like they want, and dont want to be "disturbed" by people from the outside.

RichardLukins commented 9 years ago

Lurker here, sorry, will contribute more in future, promise ... but ... Bringing and keeping SuiteCRM up to date with the current and future API from SugarCRM appears to me to be crucial, as without this the (almost) entire range of SugarCRM enhancements are rendered useless, and it's this amazing base of feature upgrades that make SugarCRM (and hence SuiteCRM) attractive. Without this API compatibility it does seem that SuiteCRM is just A N OTHER CRM, the whole point of being a Fork was to leverage the technology and community (both core and enhancements), well yes, there are other reasons, but those 2 are key to the choice of base code.

I'd really love to see some sort of roadmap to getting there, and commitment to keeping it current.

skynet commented 9 years ago

How about another fork where maintainers will be more responsive to community feedback and pull requests?

mattlorimer commented 9 years ago

Thanks everyone for your input.

We have outlined our aims for the SuiteCRM 7.4 release and the dates for the release in our blog post (https://suitecrm.com/index.php?option=com_easyblog&view=entry&id=56) and going forward we aim to have a more regular and clear release cycle. We also aim to document in the coming weeks our thoughts on how SuiteCRM should move forward in the short, medium and long term for community feedback and input.

We are also grateful for any community contributions and we do accept pull requests. If your pull request has not been accepted it is either because we have not been able to evaluate it properly as of yet, you haven’t signed a contributor agreement or that it doesn't benefit the core project. If you disagree then this is open to discussion for the whole community. As previously stated we have only recently started with a dedicated SuiteCRM development team, as this team grows into the project we should expect to see a faster and more comprehensive response to pull requests.

We are also aiming to have a dedicated developer resource on the website to make it clearer and easier to involved with project.

As to the topic in question, a new Rest API, I think it is something that is really needed. Whether it important to be compatible with sugars V10? If it important to the community, that what it should be, but I don't think it should compromise the API or hold it back.

@chris001 Currently the development of SuiteCRM is using PhpStorm so YouTrack maybe a good fit, and Sugars implementation of the v10 rest API is not open source.

chris001 commented 9 years ago

@mattlorimer Thanks for finding out about the copyright license on the v10 REST implementation. It could be reverse engineered. Possibly Sugar could see it would be good for them to agree to a cross license or free license in the interest of expanding the population of consumers and developers of v10 compatible modules.

v10 REST API would be great for Suite. Sugar 7 v10 modules can run without being redeveloped.

Suite can and should support many versions of the REST interface, from Sugar 6.5 to 7.x, plus perhaps a REST HATEOAS REST API, and beyond. See following about Facade pattern: https://en.wikipedia.org/wiki/Facade_pattern

About the Suitecrm 7.4 release date and details blog post:
Is there any particular reason that Joomla SEF Search Engine Friendly URL feature is turned off for the suitecrm.com website. Obviously if you can turn SEF URLs on for suitecrm.com, you should because this would give you more "google juice" ie a higher search engine ranking, because the keywords that SEF URLs puts into the URL actually count towards the search engine results position.

Finally for Youtrack, awesome. If you need help installing on self hosted server no worries let me know. Jetbrains would issue you an unlimited number of seats Suite is an open source project. Youtrack + Upsource + TeamCity + PHPstorm is a great combination and fully hooks into github. Agile Roadmap easy to generate from these tools.

mattlorimer commented 9 years ago

I think the Joomla SEF Search Engine Friendly URL was causing an issue with a previous version of the site, but I believe that was resolved and looking at the config it is on?

skynet commented 9 years ago

@chris001 Sounds encouraging. We'll be around with feedback and, possibly, pull requests. Thanks, again.

chris001 commented 9 years ago

@mattlorimer I see SEF URL is on for most of the site but the blog post list on the front page is showing the URLs as if SEF URLs were off. Rather than showing https://suitecrm.com/suitecrm/blog/entry/suitecrm-7-4-plan that list shows index.php?option=com_easyblog etc... Which google tends to ignore all beyond the & therefore unable to spider that link or any interior page beyond it! Would be nice to fix those links probably it's a module setting for whichever easyblog module shows that list to turn on the switch inside that module or inside easyblog itself to generate SEF URLs.

Now the 7.4 list of features is very nice, how about taking the next step and making a roadmap which by definition extends further than the next release? For instance which features are intended for 7.5, 7.6, 7.7, 7.8, v8, v9, v10, etc. All subject to editing while moving forward of course. If I remember right Youtrack Teamcity, UPsource, and PHPstorm do Product Roadmaps.

And then of course milestones. It would be nice if the github listed the Milestones that you publish within the jetbrains desktop and server development tools. And github will list them, as soon as the dev tools are connected to this github repo.

ghost commented 8 years ago

Good afternoon. I have recently started with Sales Agility and would be delighted to receive any ideas / comments for the API from yourselves. I have been having a look at various frameworks / security approaches but I feel that this would be an ideal chance for the community to determine the direction that the API should take, as this will best fit their requirements.

I am currently prototyping a simple REST based approach (based on the Slim framework) but would be glad of direction / guidance / comments from the community!

chris001 commented 8 years ago

Best is to implement all 40 or so of the v10 REST API functions. Possibly add new API methods to the API, but only if they can be justified by the additional efficiency, power, or simplicity they would bring. For testing, simply install a module built for Sugar 7 compatibility. These modules require REST v10 API. If it installs and runs properly then the v10 REST API is functional for that module. Repeat the test for the top 100 Sugar 7 modules.

ghost commented 8 years ago

Thank you @chris001 for your input, it is much appreciated.

JimMackin commented 8 years ago

I'm not sure if it's feasible to aim for complete compatibility with the V10 Sugar API since this wont necessarily mean compatibility between SuiteCRM and Sugar.

For example the follow REST call doesn't have an analog in SuiteCRM so that would either need implemented in SuiteCRM or a dummy REST call would need created.

There's also an issue around modules - the core modules in Sugar differ from those in SuiteCRM, if a Sugar plugin attempts to use one of the modules that exist in Sugar but not in SuiteCRM then this wont work regardless of how closely the APIs match.

I'm also not sure about the legality of copying an API verbatim - the Oracle vs Google case (https://en.wikipedia.org/wiki/Oracle_America%2C_Inc._v._Google%2C_Inc.) seems to suggest that (at least in the US) this would be considered copyright infringement. However I'm not a lawyer.

I think discussing all options is a good thing however.

Thanks, Jim

chris001 commented 8 years ago

@JimMackin In my opinion, the follow REST call should be implemented in SuiteCRM. For example let's look at github. People want to be able to follow an issue in order to be notified of activity on it, without being forced to comment on it in order to activate notifications. Twitter, github, Salesforce, SAP CRM, Microsoft Dynamics CRM, all those CRM applications provide the user with a follow feature. Follow is on the most well known social web applications and is so widely appreciated because it adds convenience and saves users' time. How to implement? Probably a sparse one-to-many table containing a list of item GUID's, corresponding to many user GUID, the users who are following. Suite checks the follow table each time an item is modified and saved, and generates Notifications to each user GUID following.

chris001 commented 8 years ago

The Oracle vs Google battle was decided 6 days ago, Google is allowed to use the Java 4 and 5 API as its Android app API, under the Copyright doctrine of Fair Use, so it'd be the same for SuiteCRM being able to use the SugarCRM 7.x REST v10+ API, for full module compatibility with Sugar 7.x modules, connectors, etc. http://www.theregister.co.uk/2016/05/26/google_wins_latest_round_in_oracle_copyright_battle/

horus68 commented 7 years ago

@samus-aran one more for the Trello app!

Dillon-Brown commented 7 years ago

Plans to move on to v10+ REST API

Dillon-Brown commented 7 years ago

I have moved this suggestion to Trello. All github issues that are labeled 'suggestion' will be moved to the new system and closed. Thanks for the suggestion!

Announcement of moving Suggestions: https://suitecrm.com/forum/suggestion-box/13691-moving-suggestions-from-github-to

New SuiteCRM Suggestion Box https://trello.com/b/Ht7LbMqw/suitecrm-suggestion-box