Design for extensibility

Enabled for Public preview General availability
Admins, makers, or analysts, automatically This feature is released. Feb 7, 2020 This feature is released. Apr 1, 2020

Business value

We are continuing our efforts to make the core application leaner, more extensible, and easier to localize by extracting our system logic into modules that form a system application and an application foundation. These modules focus on simplicity by following a one feature = one module principle. Each module encapsulates complexity and replaces implementation details with clean, documented, and stable APIs. They speed up the development cycle and make it easier to monitor and optimize functionality from security and performance perspectives. The number of modules can vary depending on the configuration, and you can extend each module individually. Because this is a major shift in the development paradigm for both Microsoft and our partner community, we’re making the source code for each module available ahead of 2020 release wave 1.

Feature details

When we finish modules, we publish their source code in the ALAppExtensions repo on GitHub. We encourage you to explore it and provide direct feedback and make contributions. The following modules are available now:

Name Responsibility
Advanced Settings Exposes a page that contains advanced settings and related integration events.
Navigation Bar Subscribers Exposes default subscribers to system events and corresponding overridable integration events for the Navigation Bar.
Camera and Media Interaction Provides access to the camera and saved media on the client device. Invoke the Camera page to open the camera view and take a picture on your client device. The page shows the availability of the camera and progress in saving the picture. Invoke the Media Upload page to upload saved media from your client device.
Feature Key Provides functionality for selecting the features to enable for a tenant.
OAuth Provides helper methods for obtaining the authentication key and secret, or the authorization header in respect to the OAuth 1.0 authorization protocol.
OAuth2 Provides helper methods for getting the authentication key and secret, or the authorization header for the OAuth 2.0 authorization protocol.
OAuthClientAddIn Provides the Control add-in and specific methods for authorizing a resource.
Printer Management Contains functionality for managing the printers that are available for a tenant.
Table Information Displays information about tables.

See also

Overview of the System Application (docs)