Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

The outcome of this analysis is to move forward with API version as a significant entity, accepting some limitations in the multiple connection release, while using a design that supports future enhancements to increase the flexibility of Data Import when working with different versions of the ODS API.

Note: The earlier recommendation of using a natural key for the ApiVersions table is reversed in favor of any identity column. This minimizes impact to the data model when implementing future enhancements. 

Future Enhancements:

  1. Enhance the versioning concept to understand variations on standard Ed-Fi versions resulting from extensions.
  2. Enhance the import feature to make it easier to permit data maps targeting one version to be used with another compatible version (for example, to enable a 3.2 shared template to be imported and used with a 3.4 version).

Bootstrap Data Applicability

...

UI Feature

Modifications

Activity

  • Add API connection name to the activity list.
  • Add API connection selector to allow optional filtering of results.

Data Browser -> Assessments / Schools

  • Add API connection selector antecedent for browsing assessment or school data.

Agents

  • Add API connection name to the agent list.
  • Add API connection selector to the agent form.
  • Add section (similar to Data Maps) to allow addition of Bootstraps to the Agent.

Maps

  • Add API version selector to obtain resource metadata required for mapping.
  • Add API connection selector in modal to preserve descriptor search functionality.

Logs -> Files tab

  • Add API connection name to the file list.
  • Add API connection selector to allow optional filtering of results.

Lookups

  • Add API connection selector in modal to preserve descriptor search functionality.

Configuration

  • Replace global connection setup with link to manage API Connections.

API Connections

  • New screen supporting management of multiple API connections.
  • Live connection verification is required to save the connection. Saving the connection will set up API version and associated resources in database if it does not already exist.
  • Connection name must be unique.

Export

  • Add API version selector antecedent – data maps and bootstraps are filtered down to the version.

Import

  • Use payload version number and import only if this data import installation knows about the version.

Template Sharing

  • Follows same behavior as export and import.


Data Model Changes


TableChangeJustification
ApiServers
  • Add Name column with unique constraint.
To help differentiate between API connections, each is associated with a name.
Agents
  • Add ApiServerId column.
An agent executes against an API connection.
IngestionLogs
  • Add ApiVersion. Not enforced with a FK constraint since this is a log.
  • Replace AgentId column with AgentName.
  • Add ApiServerName column.
Denormalize columns to preserve history.
ApiVersions 
  • New table, primary key ApiVersion
A master table is established to support ApiVersion as a first-class citizen (e.g. to populate dropdown list of versions in UI) and FK relationships associated with it.
Resources
  • Add ApiVersion column with FK to ApiVersions. 
Supports the persistence of resource metadata per API version.
DataMaps
  • Add ApiVersion column with FK to ApiVersions.
Maps are version specific.
BootstrapDatas
  • Remove ProcessedDate column.
Migrate connection specific bootstrap information to a new table.
BootstrapDataAgents
  • New junction table.
Associate a bootstrap data item with an agent. Plays a role similar to the DataMapAgents table and related UI on Agent definition screen.
BootstrapDataApiConnections
  • New junction table.
Migrate ProcessedDate from BootstrapDatas to track if bootstrap data needs to be posted to the API.


Alternate Design

Another design approach for adding multiple connection support is for Data Import to operate within a current connection context. This approach was originally taken by Certica for their enhancements to Data Flow.

...