Skip to content

Remote Provisioning Engine Definition

Wictor Wilén edited this page Mar 28, 2015 · 1 revision

Remote Provisioning Engine Definition

version 0.5

A Remote Provisioning Engine is any software that uses an Artifact or template file, based on the Provisioning Schema, to provision artifacts into Office 365.

Remote Provisioning Engine requirements

A Remote Provisioning Engine MUST adhere to the following requirements:

  • The Provisioning Engine MUST accept an artifact/template file based on the Remote Provisioning Engine
  • The provisioning Engine MUST validate the schema
  • The Provisioning Engine MUST NOT support all top-level containers
  • The Provisioning Engine MUST NOT provision any container if the artifact/template file contains any top-level container marked ProvisioningSupport="Required"
  • The Provisioning Engine MUST support parameters
  • The Provisioning Engine MUST NOT provision any artifacts if any required Parameters are missing
  • The Provisioning Engine SHOULD support passing in one ore more sequences to be provisioned
  • The Provisioning Engine MUST use the overwrite options specified in the provisioning file.
  • If no overwrite options are specified in the provisioning file, it MUST be assumed that no artifacts should be overwritten.

Provisioning context and permissions

The Engine MUST pass the correct credentials when provisioning artifacts. The engine might SHOULD ask the user for credentials or have an argument that could be used to pass credentials.

The Engine MUST handle access denied or incorrect permissions errors and log or display those message to the end-user. If an access denied error is caught when provisioning a Container that has the ProvisioningSupport="Required" set a fatal error MUST be thrown and no further artifacts MUST be provisioned.

Provisioning Engine execution examples

A Windows Console based engine:

c:\> Provision.exe -file artefacts.xml -parameters "param1=value1, param2=value2"

A Windows Console based engine:

c:\> Provision.exe -file artefacts.xml -parameters "param1=value1, param2=value2"
     -sequences "sequence1, sequence3"

A PowerShell based engine:

PS C:\> Provision.ps1 -file artefacts.xml -parameters @{"param1" = "value1", "param2" = "value2"}
        -credentials $creds