API Client and ODS Instance Configuration

Ed-Fi ODS "Instances"

The connection strings for the ODS are configured in the EdFi_Admin database. The Ed-Fi ODS / API can be configured with the desired database segmentation and routing strategy using the configuration entities discussed on this page. In the schema diagram shown below, each ODS instance entry contains its connection string. With exception of development environment, the connection strings stored in the EdFi_Admin database are encrypted with an AES key. This measure guards against the possibility that someone who gains unauthorized access to the database can retrieve ODS connection strings in the system.



To provide a simple experience for API clients with a fixed API base URL without route segments for school year, district, etc., each API client can be associated with one ODS instance. This association provides the required context to identify the specific ODS instance for the API request.

If school year and district segments in the API routes are desired, a context-based route setting can be used. With this setting, the same API key/secret can be used to connect to more than one ODS instance by using the entries in the ODSInstanceContext table. The combination of API client and ODS instance association, along with the context provided in the request route, will be used to identify the appropriate ODS instance for the API request."

Ed-Fi ODS "Derivatives"

Ed-Fi ODS / API supports two use cases in which API requests are not served by the primary ODS, but by a copy (or "derivative") of it. The first use case is for supporting GET requests using a read-replica of the ODS database to offload read workloads. The second use case is for the snapshots feature, which provides processing isolation during change processing by API clients. Connections to these derivative ODSs can be configured in the OdsInstanceDerivative table.