.. include:: /../common/authors.txt

Omnia Extension Package

Omnia Foundation is built with extensibility in mind since day one and an Omnia Extension Package is the main way to extend Omnia. This article will give an overview of what you can achieve with extension packages and the basic structure of an extension package. For a more practical guide on how to start developing Omnia extensions see the Getting Started guide.

What is an Omnia Extension Package?

An Omnia extension package is a pack of features or extensions for Omnia. You can think of it like SharePoint solution packages but for the Omnia platform. An extension can be used to deploy all kinds of new features, from small UI changes to non-trivia applications with its own back-end and database. Examples are Omnia Intranet and Omnia Documentation Management.

../_images/extensionpackage.png

At the core of an extension package are resource files. Resource files can be anything from client-side code like JavaScript, CSS, HTML templates to SharePoint artifacts like page layouts and web parts. These resources are mapped and deployed by logical containers called Omnia feature.

For example, the resources in a large extension might looks like this

../_images/extensionpackage-tenantresources.png

An extension package can also contain Omnia jobs, pieces of code that will run as scheduled tasks in Omnia, and provisioning pipelines, pieces of code that will be hooked into the site provisioning pipeline of Omnia.

Manage extension packages

All extension packages in a tenant can be managed in Omnia admin, System > Extensions

../_images/omnia-admin-new-extension-upload.png

New extensions can be uploaded directly from this UI by drag and drop or from Visual Studio using Omnia Tooling. An extension need to be registered before it can be uploaded, see the Getting Started guide for more details.

In this UI you can also manage configurations for each extension by clicking on the extension name

../_images/extensionpackage-configurations.png

When a new version of an extension package has been deployed, all the new changes will not be available for users until the features of that extension are upgraded to the latest version.