Appendix: App certification checklist

The following checklist provides the list of validations performed by Microsoft during the certification process after you submit your app.

Apps Validation Type Certification checklist
Model-driven apps, canvas apps, and flows that connect to Common Data Service

NOTE: Dynamics 365 for Customer Engagement apps are model-driven apps.
Sanity Check
  • Check for app registration type: Free, Trial or Contact me. If registered in Contact me then publisher need to enable test drive.
  • Verify the submitted package contains all the artifacts required to publish on AppSource.
  • Download the end-to-end (E2E) functional document from Cloud Partner Portal and validate if document is updated with functional scenarios and user/admin journey.
Code Validation
  • Code validation for Canvas apps will be done through Accessibility Checker tool in PowerApps to check for the following:
    • Static formula errors and warnings: If any issues found then certification team will share the feedback to resolve and resubmit to AppSource.
    • Runtime errors: May occur once the app is opened in Run mode to view. Any issues found will be reported through email.
    • Accessibility errors and warnings: All Accessibility errors should be resolved as per Solution Checker guidelines.
  • Code Validation for Common Data Service solution will be done through OnDemand Code Analysis (ODCA) tool.
  • Issues reported from ODCA will be manually validated for correctness and false positive issues will be reduced to low severity.
  • Generated report is shared with the publisher through email.
Deployment Validation
  • Solution will be installed to a PowerApps studio using Package Deployer. Installed canvas apps will be manually located in the solution as well as on Apps section after installation and will make sure the app is opened in edit and run mode. Canvas App will be manually deleted from PowerApps studio to validate successful uninstallation
  • Check the canvas app successfully connects through the connectors provided by the publishers. For example, Common Data Service or any other connections.
  • Check all Common Data Service components (entities, web resources, plug-ins and other components) are available in the solution.
  • Manually uninstall the solution and check if all the components associated to the managed solution is removed.
Functionality Validation
  • Validate the functionality of the app based on the functional document shared by the publisher. All the features that are implemented in the app should pass.
  • Publisher should submit E2E functional document through Cloud Partner Portal or can share video links through emails.
  • If app requires any license configuration, certification team will share the instance details for publisher to update the required license.
Security Validation
  • Check whether canvas app connects to any external data source or connections that require access, and proper connection details to be shared in E2E document.
  • Check canvas app connects to any external connections out of PowerApps connectors.
  • Check any custom code provided inside Package Deployer. Validate the code before approving the app to AppSource.
  • Manually validate the code to see if the custom code is retrieving any customer data from target environment.
Canvas apps and flows that connect to data sources other than Common Data Service Sanity Check
  • Check canvas app contains a valid .msapp file.
  • Check the package folder has all required components like manifest, Jason and other image components.
Code Validation
  • Same as explained earlier for model-driven apps, canvas apps, and flows that connect to Common Data Service
Deployment Validation
  • Canvas app will be manually installed to a PowerApps studio using import Apps feature. Installed canvas apps will be manually located in the Apps section after installation and will make sure the app is opened in edit and run mode. Canvas app will be manually deleted from PowerApps studio to validate successful uninstallation.
  • Check that the canvas app successfully connects the connectors provided by the publishers.
Functionality Validation
  • Same as explained earlier for model-driven apps, canvas apps, and flows that connect to Common Data Service
Security Validation
  • Same as explained earlier for model-driven apps, canvas apps, and flows that connect to Common Data Service

For information on best practices for creating: