Attention developers! We’ve released Winter '18! This is our second quarterly On-Demand only release, and we’re pretty excited about it. Our Co-Founder & CMO, Clint Oram, discusses the highlights of this release from an end-user's perspective in the video below:

Matt Marum and I recently hosted a webinar where we gave an overview of the big things developers need to know about this release:

Sugar has a new skin, and it’s fabulous. No JavaScript changes were made as part of this reskinning. For more information, check out Matt’s blog post: A new Sugar UX coming in Winter '18.Before:After:

The Input Validation Framework that has been implemented since Sugar 7.7.1 is now enforced by default. Input validation violations will cause FATAL errors. See Matt’s blog post for more details: How to fix Sugar input validation failures. As part of enforcing the Input Validation Framework, all custom platforms must be registered. If you have a customization or integration that uses our REST API, this probably affects you. Check out my blog post that has links to get more information about the change and a tutorial to help you register your custom platform.

You now have the option of turning on denormalized team security, which can greatly improve List View performance. Check out the Developer Release Notes or the webinar recording above for more details.

We’ve added PhaserIO as a new library. As a result, we’re seeing outstanding performance in the new Product Catalog Dashlet and great potential for speeding up other parts of the app. Check out the Developer Release Notes for a list of all library changes.

In Sugar 8 / Spring '18, Sugar administrators can now configure API platforms using the Administration panel. The Platform extension is still available if you want to register a custom API platform as part of a Module Loadable Package.

If you have a REST API integration with Sugar, you are likely using a custom platform as part of that integration. Beginning in the Winter ‘18 release, Sugar is enforcing a rule that all custom platforms must be registered in each Sugar instance where a custom platform is used. For more details on the rule itself, see Matt’s earlier blog post: Unknown platforms to be restricted in Winter ‘18 release.

The bad news? This change that requires all custom platforms to be registered probably affects you.

The good news? There is an easy fix, and I’ve written a tutorial that walks you step-by-step through how to implement the fix.

We’re getting a head start on our New Year’s Resolutions! We’ve given our developer community a fresh, new look, and we feel ten pounds lighter. Let me give you a tour!

First, we’ve migrated our blog from developer.sugarcrm.com to the Developer Community at https://community.sugarcrm.com/community/developer/pages/dev-blog. We’re really excited about this change as the community is now your one-stop-shop for everything related to developing on Sugar. We’ll temporarily be putting new posts on both blogs, but please update your bookmarks now.

Second, we’ve redesigned the Developer Community to feel more modern and make it easier to find content.

When you navigate to the community’s home page, you’ll notice 4 new buttons at the top:

If you’re new to developing on Sugar (or you just need a refresher), click Getting Started with Sugar. On this page you’ll learn how to get setup, trained, and certified. You’ll also learn how to integrate with and create add-ons for Sugar.

If you want to leverage the Sugar Mobile Application Configuration Service or our Mobile SDK, click Getting Started with Mobile. This subspace has its own documentation as well as a place for you to ask and answer questions. If you’re a mobile developer, you’ll definitely want to follow the Mobile Developers space.

If you’re feeling helpful, click Answer a Question to browse questions from your fellow community members and share your expertise.

If you want to learn something new, click Try a Tutorial. You’ll be able to get your hands in the code on a variety of topics including the REST API, Advanced Workflow, the Mobile SDK, and Quotes.

If you continue scrolling down the home page, you’ll see Recent Activity with all of the latest community content as well as a form where you can sign up for Developer News to receive the latest Sugar Developer news, webinars, and surveys straight to your e-mail inbox (I highly recommend signing up if you haven’t already!).

If you browse the home page’s right column, you’ll see a set of helpful widgets. At the top, you’ll find a search box where you can search the developer community. Next, you’ll see our latest Tweets (you may want to follow us on Twitter if you haven’t already). If you continue scrolling, you’ll find the Developer Tools widget. This is one of my favorite pieces of the community as it has all of our favorite resources listed in one place!

Be sure to check out the last widget: Top Participants. We hope to see your name there!

We hope you enjoy our new look! Have suggestions on how we can improve the community? Let us know in the comments below!

Are you ready to build an integration with Sugar but not sure where to start? You've come to the right place!

When you want to access or interact with information stored in Sugar, the REST API is a great place to start. In this tutorial, you'll learn how to authenticate to the Sugar REST API. Then you'll learn how to perform create, read, update, and delete (aka CRUD) operations.

Have you ever found yourself wishing you could create a custom Sidecar user interface within your Sugar instance? Maybe you want to allow users to visit a URL that displays a custom view.

It turns out that creating a linkable URL (or route) to within the Sugar client is fairly simple. In this post, I'll walk you through how to implement a new route in your Sugar instance that displays an alert.

What is a Route?

Sidecar utilizes the Backbone Router as the method for controlling client-side navigation within the Sugar application. The Router will take the current URL in the browser (the route) and call the appropriate callback function. The callback could do something like display an alert or load a Sidecar Layout or View. The Router will pass information included in the route like a module name and a record identifier to the callback function.

Most of the routes are already set up for you. For example, visiting a Sugar instance URL that ends with "#Home" will load the default dashboard layout. Visiting a URL that ends with "#Accounts/<id>" will load the Account record view for the record with the appropriate identifier.

Creating your own route

When you decide to create your own route, the first thing you'll want to do is decide what your custom route should be. In this example, we'll use "helloWorld" as our custom route, meaning that the full URL will be http://yourSugarInstance/#helloWorld.

Next, you need to decide what should happen when someone accesses the route. Let's display an alert message that says, "Hello, fabulous person!"

Now that we know what we want to do, it's time to code!

Create a new file in your Sugar directory: ./custom/javascript/customRoutes.js:

This code registers the custom "helloWorld" route during the "router:init" event. This code could exist in a file with any name at any location.

The next thing we need to do is create a JSGrouping extension that will tell Sugar we have created custom routes.

Create a new file in your Sugar directory: ./custom/Extension/application/Ext/JSGroupings/myCustomRoutes.php:

<?phpforeach($js_groupingsas$key=>$groupings){$target=current(array_values($groupings));//if the target grouping is foundif($target=='include/javascript/sugar_grp7.min.js'){//append the custom JavaScript file$js_groupings[$key]['custom/javascript/customRoutes.js']='include/javascript/sugar_grp7.min.js';}}

Before we can try our custom route, we need to run Quick Repair. Login to Sugar as an administrative user and navigate to Administration > Repair > Quick Repair and Rebuild.

Now we're ready to test. Navigate to http://yourSugarInstance/#helloWorld. Unless you missed a step, the alert you created will appear!Note: you may need to refresh the page once to pull in the updated JavaScript in order for the alert to appear. It's a good idea to disable your browser cache when doing JavaScript development too.

If you want to take things a step further and display an iframe for a custom route as seen in the screenshot below, check out the Canvas IFrame Building Block example.

For more detailed information on creating custom routes including how to designate new route patterns, see the Developer Guide.

I'm SugarCRM's newest Developer Advocate, and I wanted to take a moment to introduce myself. My name is Lauren Schaefer. Since getting my bachelor's and master's degrees in Computer Science at North Carolina State (go pack!), I've been slowly migrating north over the years, and I currently live in Pennsylvania.

I love developing web interfaces in JavaScript. That moment when you finally get an interface pixel perfect after tinkering for hours is so rewarding.

I believe that technology should be easy to use, and I love helping people get started with technology that is new to them. I'm excited about making the process of becoming a Sugar developer even easier as well as introducing the community to the latest and greatest features and customizations as they become available.

One important part of my job is listening to what you, members of the Sugar developer community, have to say and bringing that feedback back to the engineering team. I'm looking forward to chatting with you in the Sugar Developer Community as well as in person at events like SugarCon.

Some facts about me... I'm obsessed with the color pink. I'm a sucker for reality tv shows like Dancing with the Stars as well as PBS dramas like Victoria. I love to travel and have visited all seven continents (Antarctica is truly amazing!).

I'm really excited about meeting so many of you at SugarCon in a little over a month! Here's why: