Production Deployment
The Ed-Fi ODS / API supports a wide variety of deployment models for a production environment, including on-premises and cloud-based deployments, virtualized deployments, load-balanced deployments, and so on.
This section of the documentation covers the key concepts API platform hosts should understand before deploying to a production environment, along with details about specific configurations.
Production System Components
There are several websites and databases that work together to provide primary and supporting functions for a Production instance:
- Websites
- Ed-Fi ODS API. The REST endpoint for client applications.
- Databases
EdFi_ODS.*
. A database that stores data for the Ed-Fi ODS / API.EdFi_Admin
. A database containing authentication information for API clients.EdFi_Security
. A database containing authorization information for API clients.
Of particular note: production deployments should not include the Swagger
Documentation UI, Sandbox Administration UI, or the EdFi_ODS_*
databases.
Those components are included by default in the code distribution — and are
appropriate for a Sandbox instance of the ODS / API — but should not be deployed
to production.
Configuration
Beyond changes to database connection strings, the Ed-Fi ODS / API is configurable using application feature flags.
API provides feature on/off flags for several built in features. Also the system can be extended by creating a feature service and registering the service by creating an Autofac module class that inherits from ConditionalModule class. See Adding Custom ODS / API Features for more information on customizing the application.
Changes to the processing pipelines, caching mechanisms, data repository, and many other considerations can be adapted by changing the corresponding Autofac modules called from the Startup class when the website is loaded.
Planning for a Secure Production Deployment
The security of student information is a primary concern of any API platform host. This section outlines considerations for platform hosts when planning Ed-Fi ODS / API deployments.
The information in this section can be used as a checklist or as input into a threat modeling exercise during the deployment planning cycle.
Important Security Information
The technical article Education Agency Business Process Security Considerations contains important background information that all implementers should know before deploying a production instance of the Ed-Fi ODS / API.
Value Assets
A list of high-value assets and a brief description of each follow:
Asset | Description |
---|---|
Ed-Fi Operational Data Store | The operational data store contains student, parent, and staff personally identifiable information data, along with potentially sensitive financial information (e.g., employee payroll, budgets). |
Ed-Fi Administration Data Store | The Admin data store contains sensitive information such as the API key/secret pairs used to validate OAuth authentication requests. |
Ed-Fi Web Services | Platform hosts and end users expect the Ed-Fi ODS / API to be reliable. Outages can cause serious operational problems for hosts. |
Personally Identifiable Information | Information such as student names, demographic information, academic performance, and disciplinary records can be valuable to attackers — and disclosure of this information is regulated by laws such as the Family Educational Rights and Privacy Act (FERPA). |
OAuth Credentials | REST client application systems authenticate to the Ed-Fi ODS / API using a key/secret pair. Once the key and secret are generated, it’s the responsibility of the client application system owner to guard the values. Should an attacker gain access to these credentials, they can attempt to establish their own connection to the API. |