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, the 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;" } } }