Prepared by Certica Solutions on 7/31/2020, Reviewed by Ed-Fi 8/14/2020
Epic for Work: Jira Legacy server Ed-Fi Issue Tracker serverId e04b01cb-fd08-30cd-a7d6-c8f664ef7691 key EDFI-372
Table of Contents
Table of Contents
...
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:
- Enhance the versioning concept to understand variations on standard Ed-Fi versions resulting from extensions.
- 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
...
The existing configuration screen includes ODS API server connection details, template sharing service details, enable user management, and enable product improvement. We agree to move the ODS API server connection management to a separate screen but want to ensure that users are still presented with the remaining configuration options at first setup.
Note: It was also discussed that the existing behavior requires setup of the template sharing service (except potentially when running on a development environment). However, this does not seem to be the case.
The existing behavior is as follows:
- Redirect to configuration screen after registering first user.
- Redirect to configuration screen on attempt to access ODS API if no ODS API configured.
- Redirect to configuration screen on attempt to access Sharing API if no Sharing API configuration.
- Validate Sharing API key/secret has been supplied when saving configuration settings (not required for local development environment).
Proposed approach:
- The existing behavior will remain unchanged.
- The configuration screen will include a link to navigate to a separate screen to manage ODS API server connection details (“API Connections”).
- The “API Connections” page will only be accessible from the Configuration page (i.e., there is no direct access menu item).
...
Deletion Behavior
Agent Deletion
- No change to Agent deletion behavior – they will continue to be archived (logically deleted).
- When an agent is archived, it is disassociated from the associated API connection and bootstrap data associations.
Data Map Deletion
- No change to Map deletion behavior – they are physically deleted, and associated agent references are removed.
...
- API connection will be physically deleted.
- An API connection cannot be deleted if any agents reference it (must delete the agents first or change their connections).
- Associated references to bootstrap data are removed when an API connection is deleted.
User Interface Changes
UI Feature | Modifications |
Activity |
|
Data Browser -> Assessments / Schools |
|
Agents |
|
Maps |
|
Logs -> Files tab |
|
Lookups |
|
Bootstrap |
Datas |
|
| |
Configuration |
|
API Connections |
|
Export |
| |
Import |
|
Template Sharing |
|
Data Model Changes
Table | Change | Justification |
ApiServers |
| To help differentiate between API connections, each is associated with a name. |
Agents |
| An agent executes against an API connection. |
IngestionLogs |
| Denormalize columns to preserve history. |
ApiVersions |
| 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 |
| Supports the persistence of resource metadata per API version. |
DataMaps |
| Maps are version specific. |
BootstrapDatas |
| Bootstrap datas are version specific. Migrate connection specific bootstrap information to a new table. Processing order is now managed by agent instead of globally. |
BootstrapDataAgents |
| Associate a bootstrap data item with an agent. |
BootstrapDataApiServers |
| Migrate ProcessedDate from BootstrapDatas to track if bootstrap data needs to be posted |
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.
Both design approaches address the requirement for multiple connections although how that requirement is satisfied is significantly different.
...
to |
...
the |
...
Characteristic
This Design
Alternate Design
Big Picture
API |
A user works in a tenant-specific context to create data import configuration for the current connection.
Data Map Management
A data map is defined in the context of a specified Ed-Fi version and can be applied to compatible agents.
Data maps are either marked as shared, or must be exported to another tenant, which creates a copy for that tenant’s context.
Optimized For
Standardized file formats likely to be shared by tenants.
Customers with varied or individualized file import requirements.
Concerns
Some unexpected potential tenant-specific dependencies may limit the applicability of the broad concept (e.g. descriptor search and ODS extensibility).
User experience concerns with having to keep selecting a connection as they navigate through Data Import.
Updating a data map or bootstrap data requires updating each tenant.
Forces user to think in terms of everything being connection specific.
Implementation Effort
Lots of changes to existing behavior of Data Import expand the work effort, especially to address new UI concepts.
. |