In this example, you will learn how to install a pre-published extension plugin in your local development environment as well as in your production deployment environment. For details on how to create and publish extension plugin see How To: Create an Extension Plugin.
The steps can be summarized as:
Each step is outlined in detail, below.
Install Sample extension in Development Environment
Assuming that the Ed-Fi ODS / API has been successfully downloaded and is running in a local development environment per the instructions in the documentation, pre-published Sample extension is now ready to be installed in your development environment. Note that ODS / API comes preconfigured with TPDM Core dynamic extension.
appsettings to load sample plugin along with the default TPDM extension.
PS C:\OSS-Workspace\Ed-Fi-ODS-Implementation\Application\EdFi.Ods.WebApi\> dotnet user-secrets set "Plugin:Folder" "../../Plugin"
Successfully saved Plugin:Folder = ../../Plugin to the secret store.
PS C:\OSS-Workspace\Ed-Fi-ODS-Implementation\Application\EdFi.Ods.WebApi\> dotnet user-secrets set "Plugin:Scripts:0" "tpdm"
Successfully saved Plugin:Scripts:0 = tpdm to the secret store.
PS C:\OSS-Workspace\Ed-Fi-ODS-Implementation\Application\EdFi.Ods.WebApi\> dotnet user-secrets set "Plugin:Scripts:1" "sample"
Successfully saved Plugin:Scripts:1 = sample to the secret store.
To do so, simply open PowerShell and navigate to "<source directory>\Ed-Fi-ODS-Implementation" folder and run:
.\Initialize-PowershellForDevelopment.ps1
Initdev
This will execute configured script from secret.json to download sample extension plugin and deploy the plugin artifacts to local database.


After the successful execution of initdev, you will find the sample extension in <source directory>\Ed-Fi-ODS-Implementation\Plugin folder.

Run the "Ed-Fi-Ods.sln" solution from Visual Studio and verify that the sample data models are listed in your API landing page.

You can also verify the Sample API endpoints in the Swagger UI documentation:

Deploy Sample Extension Database Artifacts
Step 1. Download EdFi.Suite3.RestApi.Databases
- Download the EdFi.Suite3.RestApi.Databases from Binary Releases.
- Change package extension from nupkg to zip.
- Right-click the zip file, click unblock and unzip the package.
Step 3. Run Deployment.psm1 with Dynamic Plugins
Deploy Sample Extension Binaries to Web Server
- Download the EdFi.Suite3.Ods.Extensions.Sample package from Binary Releases.
- Change extension from nupkg to zip.
- Right-click the zip, click unblock, and unzip the package.
Copy the extracted folder and paste it in C:\inetpub\Ed-Fi\WebApi\Plugin in your WebAPI directory.

Update appsettings.json, for plugin settings as shown below:
"Plugin": {
"Folder": "./Plugin",
"Scripts": [ "tpdm", "sample" ]
}
- Restart your IIS instance.
Step 5. Verify API Landing Page in Browser
- Browse to the API landing page and verify that sample data models are listed.

- You can also verify the Sample extension API endpoints in the Swagger UI documentation.
