Skip to main content
Version: 7.3

Single and Multi-Tenant Configuration

In a single-tenant configuration, there is only one EdFi_Admin and EdFi_Security used by the API. ODS instances, API clients, and their associations are all managed within the EdFi_Admin databases. In a multi-tenant configuration, each tenant has its own EdFi_Admin and EdFi_Security databases and the API clients must include the well-known tenant identifier in the base route of their API requests.

MultiTenancy can be enabled in the appsettings "Features" section, as follows:

"ApiSettings": {
...
"Features": [
...
{
"Name": "MultiTenancy",
"IsEnabled": true
}
],
}

Connection Strings

The connection strings for the EdFi_Admin and EdFi_Security databases are configured differently depending on whether the MultiTenancy feature is enabled or disabled.

Single-Tenant Configuration

In a single-tenant configuration (the default), the connection strings are located in the "ConnectionStrings" section, as follows:

"ConnectionStrings": {
"EdFi_Admin": "Server=(local); Database=EdFi_Admin; Trusted_Connection=True; Application Name=EdFi.Ods.WebApi;",
"EdFi_Security": "Server=(local); Database=EdFi_Security; Trusted_Connection=True; Persist Security Info=True; Application Name=EdFi.Ods.WebApi;",
"EdFi_Master": "Server=(local); Database=master; Trusted_Connection=True; Application Name=EdFi.Ods.WebApi;"
},

Multi-Tenant Configuration

In a multi-tenant configuration, connection strings are organized under distinct tenant entries in a "Tenants" section, as follows:

"Tenants": {
"Tenant1": {
"ConnectionStrings": {
"EdFi_Admin": "Server=(local); Database=EdFi_Admin_Tenant1; Trusted_Connection=True; Application Name=EdFi.Ods.WebApi;",
"EdFi_Security": "Server=(local); Database=EdFi_Security_Tenant1; Trusted_Connection=True; Persist Security Info=True; Application Name=EdFi.Ods.WebApi;"
}
},
"Tenant2": {
"ConnectionStrings": {
"EdFi_Admin": "Server=(local); Database=EdFi_Admin_Tenant2; Trusted_Connection=True; Application Name=EdFi.Ods.WebApi;",
"EdFi_Security": "Server=(local); Database=EdFi_Security_Tenant2; Trusted_Connection=True; Persist Security Info=True; Application Name=EdFi.Ods.WebApi;"
}
}
}

The connection strings for ODS databases are configured within the tenant-specific Admin database. For example, in the configuration above ODS connection strings specific to Tenant1 are configured in EdFi_Admin_Tenant1 database and ODS connection strings specific to Tenant2 are configured in EdFi_Admin_Tenant2 database.

For more details on configuring ODS connections, refer to API Client and ODS Instance Configuration. Additionally, connection strings can be stored in an external secure parameter store. For more information, see External Configuration of ODS Connection Strings.