-
Notifications
You must be signed in to change notification settings - Fork 219
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.
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.
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.
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