- Created by Jason Hoekstra, last modified by Suganya Rajendran on Jan 16, 2024
You are viewing an old version of this page. View the current version.
Compare with Current View Page History
« Previous Version 10 Next »
Contents:
Before You Install
This section provides general information to review before installing the Ed-Fi ODS / API Admin API for v2.1.0.
Compatibility & Supported ODS / API Versions
This version of the Admin API has been tested and can be installed for use with the Ed-Fi ODS / API v7.1. See the Ed-Fi Technology Version Index for more details.
Installation Instructions
Prerequisites
A running instance of the ODS / API v7.1 platform must be configured and running before installing Admin API.
Admin API only supports running one instance of the application at a time in an ODS / API ecosystem. Future versions may allow for scaling and load balancing.
Admin API does not support in-place upgrades from prior versions. Please install a fresh copy of Admin API to upgrade from prior versions.
The following are required to install the Admin API with IIS:
- Enable IIS (before installing .NET Hosting Bundle).
- Install .NET 6 Hosting Bundle v6.0.6 or higher. After installing the .NET Hosting Bundle, it may be necessary to restart the computer for the changes to take effect.
Installation Steps
Each step is outlined in detail below for the PowerShell deployment. Ensure that you have permission to execute PowerShell scripts. For more information, see http://go.microsoft.com/fwlink/?LinkID=135170.
Step 1. Rename and Unzip Admin API Source Files
Download and rename the linked Nuget Package (.npkg) to .zip
Unzip the contents.
There will be two folders. AdminApi folder will have binaries. Installer folder contains PowerShell scripts required for installation.
Step 2. Configure Installation
Open the "install.ps1" file in a text editor. You will need to edit this file with your configuration details. If a value is not present for any of the parameters, it will use its default value.
Note: Editing Items 2(a, b) below are mandatory for installation to complete.
- Configure
$dbConnectionInfo
. These values are used to construct the connection strings.Server
. The name of the database server. For a local server, we can use "(local)" for SQL and "localhost" for PostgreSQL.Engine.
Admin App supports SQL and PostgreSQL database engines. So setting up theEngine
will decide which database engine to be used. Valid values are "SQLServer" and "PostgreSQL".UseIntegratedSecurity.
Will either be "$true" or "$false".- If you plan to use Windows authentication, this value will be "$true"
- If you plan to use SQL Server/ PostgreSQL server authentication, this value will be "$false" and the Username and
Password
must be provided.
Username
. Optional. The username to connect to the database. IfUseIntegratedSecurity
is set to $true, this entry is not neededPassword
. Optional. The password to connect to the database. IfUseIntegratedSecurity
is set to $true, this entry is not neededPort.
Optional. Used to specify the database server port, presuming the server is configured to use the specific port.
- Configure
$authenticationSettings
. These values are mandatory for authentication process.
a. SigningKey:
must be a Base64-encoded string
b. Authority and IssuerUrl:
should be the same URL as your application
c. AllowRegistration:
to true allows unrestricted registration of new Admin API clients.
3. Configure $p
. This is the variable used to send all the information to the installation process.
ToolsPath
. Path for storing installation tools, e.g., nuget.exe. Defaults to "C:/temp/tools"PackageVersion
. Optional. If not set, will retrieve the latest full release package.
Database engine specific connection information ($dbConnectionInfo):
$dbConnectionInfo = @{
Server = "(local)"
Engine = "SqlServer"
UseIntegratedSecurity = $false
Username = "exampleAdmin"
Password = "examplePassword"
}
$dbConnectionInfo = @{
Server = "localhost"
Engine = "PostgreSQL"
UseIntegratedSecurity = $false
Username = "postgres"
Password = "examplePassword"
}
$authenticationSettings = @{
Authority = "https://localhost/adminapi"
IssuerUrl = ""https://localhost/adminapi"
SigningKey = "Base64-encoded string"
AllowRegistration = $false
}
$packageSource = Split-Path $PSScriptRoot -Parent
$adminApiSource = "$packageSource/AdminApi"
$p = @{
ToolsPath = "C:/temp/tools"
DbConnectionInfo = $dbConnectionInfo
PackageVersion = '2.1.0.0'
PackageSource = $adminApiSource
AuthenticationSettings = $authenticationSettings
}
$authenticationSettings = @{
Authority = "https://localhost/adminapi"
IssuerUrl = ""https://localhost/adminapi"
SigningKey = "Base64-encoded string"
AllowRegistration = $false
}
$packageSource = Split-Path $PSScriptRoot -Parent
$adminApiSource = "$packageSource/AdminApi"
$p = @{
IsMultiTenant = $true
ToolsPath = "C:/temp/tools"
DbConnectionInfo = $dbConnectionInfo
PackageVersion = '2.1.0.0'
PackageSource = $adminApiSource
AuthenticationSettings = $authenticationSettings
Tenants = @{
Tenant1 = @{
AdminDatabaseName = "EdFi_Admin_Tenant1"
SecurityDatabaseName = "EdFi_Security_Tenant1"
}
Tenant2 = @{
AdminDatabaseName = "EdFi_Admin_Tenant2"
SecurityDatabaseName = "EdFi_Security_Tenant2"
}
}
}
Step 3. Open a PowerShell Prompt in Administrator Mode
Method 1: Open [Windows Key]-R which will open a Run dialog for tasks needing administrative privileges. Type "PowerShell" to open a PowerShell prompt in Administrator mode.
Method 2: Click on the Windows icon in the lower-left corner. Type "PowerShell" and right-click the "Windows PowerShell" option when provided. Select "Run as Administrator" to open a PowerShell prompt in Administrator mode.
Change the directory to the unzipped directory for the Admin Api Installer.
Step 4 . Run the Installation via PowerShell
Run "install.ps1" script.
Database login setup on integrated security mode:
During the installation process, you will be prompted to choose database login details. Entering "Y" will continue with default option (Installation process will create IIS APPPOOL\AdminApi database login on the server).
Choosing 'n' will prompt you to enter windows username. The installation process will validate and create database login using entered username, if the login does not exist on the database server already.
Installation completed:
Installation process will install Admin Api application and create required database tables.
Step 5. Verify SQL Server Login
The installation process sets up an appropriate SQL Login for use with the dedicated AdminApi Application Pool in IIS. You can verify this in SQL Server Management Studio:
On the Server Roles page, make sure that "public" and "sysadmin" checkboxes are checked. Once you have confirmed a proper SQL Server login exists, continue to the next step.
Step 6. Update Application Pool Identity (Optional)
As mentioned on Step 5, installation process sets up an appropriate SQL Login for use with the dedicated AdminApi Application Pool in IIS. If you would like to use the default "ApplicationPoolIdentity", then you can skip this bit.
Else in the Advanced Settings window, click on the browse icon under Process Model > Identity. We'll choose the custom account option and click "Set...". When setting the credentials, you can just use the username and password that you use to log in to Windows. If you need to include the app pool domain in the username, then the username can look something like this: "localhost\username", where "localhost" is the app pool domain. Once we have entered the correct credentials, we'll click OK on all screens until we're back to the main Application Pools page.
Step 7. Confirming appSettings.json
Change EnableSwagger
to true
to enable generation of the Swagger UI documentation.
- This is not recommended for production.
Step 9. Execute First-Time Configuration
Continue on to First-Time Configuration for Admin API 2.x.
The following is a Nuget package containing the Admin API v2.1.0 binaries and installer scripts for deployment to IIS.
- No labels