The SugarExchange Certification process includes a comprehensive checklist of requirements at the presentation, system and network level. The areas covered during certification testing include platform component and configuration requirements, authentication and identity management, data access and API controls, Patch, update mechanisms, error and exception handling, and operating and licensing procedures
| Checkpoint | |||
|---|---|---|---|
Priority: 1 Product may not use name 'Sugar' in the product name Purpose: Product may not use the string 'Sugar' in the product name, but provider can use name such as 'X for Sugar'. |
|||
Priority: 1 Sugar Trademarks must be followed Purpose: Sugar trademarks must be followed. See Sugar Trademarks for more information. |
|||
Priority: 1 SugarExchange Terms and Conditions must be followed Purpose: SugarExchange terms and conditions must be followed. See SugarExchange Terms and Conditions for more information. |
|||
Priority: 1 SugarExchange Listing Requirements must be followed Purpose: SugarExchange standard listing requirements must be followed. See listing requirements for more information. |
|||
Priority: 1 An executed SugarExchange Listing Agreement must be in place Purpose: SugarExchange Listing Agreement must be executed. Contact SugarExchange sales representative at SugarExchange@sugarcrm.com to obtain a contract. |
|||
| Checkpoint | |||
|---|---|---|---|
Priority: 1 Generic Requirements Purpose: All certified SugarExchange products must come with the following attributes defined in the SugarForge project definition: |
|||
Priority: 1 Screenshots Purpose: When submitting/publishing, the provider must provide at least one screenshot - the 'main' screenshot that appears adjacent to the listing in SugarExchange. |
|||
Priority: 1 Detailed description of solution Purpose: When submitting/publishing, the provider must provide a detailed description of the solution. |
|||
Priority: 1 Categories Purpose: When submitting/publishing, the provider must specify at a minimum the following categories: Application; Provider; Sugar Edition; Sugar Versions; and Development Status. |
|||
Priority: 1 Sugar Editions Purpose: The product must provide equal support for the Sugar Community, Sugar Professional and Sugar Enterprise editions. |
|||
Priority: 1 Development Status Purpose: When submitting/publishing, the provider must specify, and the product must attain, a Development Status of '5 - Production/Stable' or '6 - Mature'. |
|||
Priority: 1 API Requirements Purpose: Standalone products interfacing with the Sugar database must do so using the Sugar SOAP API. |
|||
Priority: 1 PHP Requirements Purpose: PHP implementations must take into consideration the following guidelines: Supported Platforms. |
|||
Priority: 1 Windows Requirements Purpose: Windows implementations may be written as DLLs and/or EXEs. Products must support Windows XP or later, and should support Windows 2000. These implementations must adhere, to the extent possible, to 'Designed for Windows XP' application specification, available here. |
|||
| Checkpoint | |||
|---|---|---|---|
Priority: 1 SugarForge definitions Purpose: Product must be created in SugarForge (as a project) before submitting to certification. Product must have had some deployment in the field and prove to a be stable version before it is submitted for certification. |
|||
Priority: 1 Submission contents |
|||
Priority: 1 'About File' Purpose: Application must contain an 'About' file or dialog which includes a brief description of the company and product. |
|||
Priority: 2 'Settings file' Purpose: If the application requires a settings (configuration) file, this must be provided with installation or auto-generated on first run. |
|||
Priority: 1 System Icons Purpose: Icons that refer to Sugar-related functionality in application must be approved in advance. |
|||
Priority: 1 Application Icons Purpose: Product shall use application Icons provided by the provider. Output: Icons should: 1. Represent the application - relate to the application thematically; 2. Be unique; 3. Have relevant tool tip information about the function they represent. |
|||
Priority: 1 Submission language Purpose: When submitting, the provider must list the languages supported by the Product. Product must support all languages that provider listed during submission process. |
|||
Priority: 1 Clear Payment Terms Purpose: If there is a cost associated with this service, it should be clearly described. |
|||
Priority: 1 Internationalization Purpose: In order for a Product to be eligible for certification, it must be localized to the languages used in all target markets. If the Product is targeted for a global market, at least the top 5 Sugar languages must be supported. See Overview of Translating Sugar for details. |
|||
Priority: 1 Database support Purpose: In order for a Product to be eligible for certification, it must support the MySQL database. See supported platforms for requirements. |
|||
Priority: 1 Documentation Purpose: End-User documentation for any product should be unambiguous and explicitly document SETUP AND ALL OPERATIONS of the product. Documentation should be readily available, preferably via the SugarExchange Download link. User should not at any point have to guess how to do something; or perform some supported operation. |
|||
Priority: 1 Version and build number for ALL product components Purpose: Every software component has a unique version and build number that can be referred to during testing. |
|||
| Checkpoint | |||
|---|---|---|---|
Priority: 2 Looks Purpose: Subjective measure. Does the product generally look nice in the OS desktop environment? Product should use high-quality graphics and icons that include 32-bit color and transparency |
|||
Priority: 3 Standard Sugar user-interface Purpose: For embedded Products integrated using the Module Loader, use standard Sugar user-interface elements such as controls, menus, and windows and do not introduce tailored menus or controls to replace them. Use Sugar icons where applicable. |
|||
| Checkpoint | |||
|---|---|---|---|
Priority: 1 Integration with Sugar Purpose: The Product must utilize the functionality provided by Sugar software without adversely affecting the operation thereof. |
|||
Priority: 1 Trial period Purpose: All the products shall have a free trial period of at least 1 use and optimally 30 days. |
|||
Priority: 1 First use Purpose: The first use of product must be free to the user. Product should not pop-up an up sell message to the user during the first usage. Products integrated using Module Loader must never produce pop-up messages or any other form of advertisement. |
|||
Priority: 1 Support Purpose: Product must provide clear information to the users about how to contact the provider if support is required. Customer support requests must be responded to within a reasonable time. |
|||
Priority: 1 Help and documentation information Purpose: User should be able to get the help and documentation for the topics in less than three user steps from the product's main application screen. The help pages and documents should be user friendly and easy to understand. |
|||
| Checkpoint | |||
|---|---|---|---|
Priority: 1 straight forward installation Purpose: Installation process must be automatic: from accessing installation media only 'Yes' or 'Next' or 'Back' buttons are pressed. User does not have to backtrack or consult multiple sources of information. The installation process should be interactive and user friendly. |
|||
Priority: 1 seamless installation Purpose: Installation is seamless regardless of what is being installed. If, for example, the Product requires another module, the second module must also be installed without interrupting the installation process. |
|||
Priority: 1 Product Setup time Purpose: Product can be set up in a reasonable time. No product requires >10 minutes without consulting documentation. Ideally any product can be set up in < 5 minutes without consulting documentation. |
|||
Priority: 2 Release notes requirement Purpose: All changes in the product are explained in documentation if it is a later version. |
|||
Priority: 1 No undesirable changes Purpose: Subjective measure. The product setup does not make any undesirable changes to the system. For example: Setup does not change default tab or subpanel arrangement; Setup does not install software or make configuration changes that affect application performance. |
|||
Priority: 3 Product installation onto alternate drives Purpose: Standalone Product/drivers must be installable to alternate drives e.g. 'D:\Program Files'. As well as default 'C:\Program files.' Application must detect system files installed on other drives. There should not be any dependency on the drives for installation. |
|||
Priority: 1 Product upgrade prompts notification Purpose: If installation of the Product requires an upgrade of the same Product, then user is notified about it during installation. |
|||
Priority: 2 Product upgrade is automatic Purpose: Product is upgraded automatically when new versions become available. End-user must be prompted before accepting the upgrade. |
|||
Priority: 2 No restart necessary Purpose: User should not need to restart system after installing the product. |
|||
| Checkpoint | |||
|---|---|---|---|
Priority: 1 Product Publisher should be clearly identified Purpose: Product publisher should be clearly identified, e.g. in Product Publisher screen. |
|||
Priority: 1 Product Privacy implications should be clear Purpose: Product privacy implications should be clear, e.g. in information screen. |
|||
Priority: 1 Product rights to use, distribute, deploy should be clearly identified Purpose: Product rights to use, distribute, redeploy should be clearly identified, e.g. in information screen. The product's end user license agreement must be easily accessible to the end user. |
|||
| Checkpoint | |||
|---|---|---|---|
Priority: 2 Product launches within reasonable time Purpose: Any product launches within a reasonable time of invoking the product. Any delays in product startup are shown with a progress indicator. |
|||
Priority: 1 Product exit gracefully Purpose: User must be able to exit/close gracefully from the product at any point. |
|||
Priority: 3 Product controls useful and non-redundant Purpose: Product lists, checkboxes and menu items must instigate a valid action or actions. |
|||
Priority: 1 Product handles situations where Sugar instance not installed Purpose: Product gracefully handles situation where Sugar instance is not installed. Product should error out or prompt the user to install the Sugar instance. |
|||
Priority: 1 Product handles situation where Sugar instance is not running Purpose: Product gracefully handles situation where Sugar instance is not running. Product should start the Sugar instance and/or prompt the user to do so. |
|||
Priority: 2 Product menu and selection items clear and understandable Purpose: All Product menu and selection items must be clearly understandable. All the menu and selection items should be easily understood by the user. |
|||
Priority: 3 Product graphics maximize display use Purpose: Product graphics must be designed to maximize display use. |
|||
Priority: 1 Product screen content readable Purpose: All Product screens content is readable to the naked eye. |
|||
Priority: 2 Product graphics scaled accordingly Purpose: Product graphics should be scaled appropriately to the target display size. |
|||
Priority: 1 GUI Text is not truncated Purpose: Product GUI text is not truncated. |
|||
Priority: 2 No inappropriate text in GUI Purpose: Product must not contain obscene, profane, or irrelevant graphics or text. Basic shapes and pictograms that are easy to understand can be used. |
|||
Priority: 1 No advertisements in GUI Purpose: Product must not contain any other parties' advertisements, but the following may be used:
|
|||
Priority: 1 Error messages understandable Purpose: Product error messages are clearly understandable and should be descriptive enough. |
|||
Priority: 2 No unnecessary screen repaint Purpose: Product does not cause any unnecessary screen repaint. |
|||
Priority: 3 Notification messages displayed once Purpose: Product notification messages are not displayed more than once. |
|||
Priority: 3 Non-active icons are grayed out Purpose: Non-active icons are grayed out. |
|||
Priority: 1 Product should support multiple Windows user profiles Purpose: Standalone Product should support multiple Windows user profiles: Privacy should be protected. |
|||
Priority: 1 licensing policies Purpose: Product must specify license. NOTE: Licenses listed in submission/publishing tool are provided. Also, free trial should be available to users before they are required to pay. Costs should be fair and reasonable. |
|||
Priority: 1 Free bundled products Purpose: Bundled Products must be free. They can have an advanced, paid version, but the bundled version must be free. |
|||
Priority: 1 Product Payment support Purpose: Product must support payment through the SugarExchange ecommerce framework and PayPal. |
|||
| Checkpoint | |||
|---|---|---|---|
Priority: 1 Product passes precursory pass of its functionality Purpose: Product passes a high-level, cursory pass of its basic functionality. Env. Needs: Same as basic needs for this section, plus user manual available. Input: Using the user manual and pre-filled certification checklist submitted by the Provider as input, verify that a selection of documented operations/use-cases work as written. Output: Operations work as intended. Operations invoke no errors native to the device or application. |
|||
Priority: 1 Product works with Sugar instance intuitively Purpose: Product does supported operations with Sugar instance in an obvious, intuitive way, e.g. can move between Sugar tabs, select contacts, etc. This is according to what operations the Product supports. |
|||
| Checkpoint | |||
|---|---|---|---|
Priority: 1 Product should identify itself correctly to Sugar instance Purpose: When Product tries to access Sugar's API, it should identify itself truthfully. Purpose of API access should be clear. |
|||
Priority: 1 Product should correctly determine which API protocol to use Purpose: When Product tries to access Sugar's API, it should determine the correct API protocol to use. |
|||
| Checkpoint | |||
|---|---|---|---|
Priority: 1 Product does not render Sugar unusable Purpose: Product does not disable or render Sugar functions unusable. |
|||
Priority: 1 Product does not create errors when without API access Purpose: Product does not create errors when denied access to Sugar API. |
|||
Priority: 1 Product does not create errors when restarted on the fly Purpose: Product does not create errors when restarted on the fly. |
|||
Priority: 1 Product does not connect to Sugar without permission Purpose: Product does not connect to Sugar API without permission. |
|||
Priority: 1 Product does not cause memory leak Purpose: Product does not constantly over consume system memory, i.e. memory usage does not stay, for example, 200 MB. |
|||
Priority: 1 Product does not freeze itself or Sugar Purpose: Product does not freeze it or Sugar instance for longer than 1 minute (should be proper status message if it does). |
|||
Priority: 2 Product gives visible feedback on transition state Purpose: Product gives visible feedback that it is not frozen. |
|||
Priority: 2 Product functions without errors on all supported Sugar versions Purpose: Product functions without errors on all supported Sugar versions. |
|||
Priority: 1 Product graceful when no network services Purpose: Product performs gracefully when network services are not available. |
|||
| Checkpoint | |||
|---|---|---|---|
Priority: 1 Product Credentials - no credential abuse Purpose: If the product, its developer or distributor collects/accesses Sugar user credentials, Sugar security department must be immediately informed secure@sugarcrm.com. |
|||
| Checkpoint | |||
|---|---|---|---|
| Priority: 1 Acceptable Use for Sugar On-Demand | |||
| Purpose: If the product is added to Sugar via Module Loader, the product must conform to the Module Loader Restrictions for Sugar On-Demand. | |||