December 2024 - Project Tanager Workgroup

Participants

  • Denver Public Schools - Max Paulson

  • Ed-Fi staff & contractors

    • Adam Hopkins

    • Brad Banister

    • Robert Hunter

    • Sayee Srinivasan

    • Stephen Fuqua

    • Steven Arnold

    • Vinaya Mayya

  • Edufied - Geoff McElhanon

  • EdWise Group - Britto Augustine

  • Resultant - Joshua Impson

  • Simpat Tech - Ashish Patel

  • Utah State Board of Education - Katrina Brinkley

Agenda

  • Review the roadmap

  • Demonstration of current work

  • Design Questions

Roadmap

Planned Architecture

image-20241204-030548.png

Basic timeline

  1. Tech Congress 2025 - release candidate with “basic” feature set useable for pilot testing typical data exchange scenarios.

Focused primarily on LEA and vendor-to-vendor scenarios.

State scenarios are critical for this project. The Alliance will be designing for state usage scenarios before Tech Congress 2025. The primary missing pieces on the release candidate time frame:

  • Supporting all authorization models

  • Running on MSSQL

  • Running on PostgreSQL or MSSQL without Kafka and search database

  • ODS-like schema for reporting

  1. Summit 2025 - production-ready version 1.0

Aiming for feature parity with the ODS/API from the perspective of API-based integrations, with one primary exception: no plan to support XML-based composites.

Feature List

Reviewing the list below:

  1. Which features listed “By Summit” should we prioritize to try to release sooner?

  2. Are there any features we failed to list?

Data Standard and API Standard Compatibility

Feature

ODS/API Platform

Data Management Service

By TC

By Summit

Feature

ODS/API Platform

Data Management Service

By TC

By Summit

Resources API - core Ed-Fi Data Standard

done

 

Descriptor API - core Ed-Fi Data Standard

done

 

Discovery API

done

 

Data Standard version independence

MUST HAVE

 

MetaEd-based extensions

MUST HAVE

Dynamic Profiles

must have

Multiple data standards in same deployment

Could Have

 

Composites

WOn't Have

 

Data Integrity and Validation Features

Feature

ODS/API Platform

Data Management Service

By TC

By Summit

Feature

ODS/API Platform

Data Management Service

By TC

By Summit

Level 0 and level 1 validation

done

 

Descriptor validation

done

 

Reference validation

done

 

Cascading updates on key changes

done

 

Level 2 validation via SQL scripts

MUST HAVE

 

Realtime level 2 validations via streaming data

Could Have

 

API Client Features

Feature

ODS/API Platform

Data Management Service

By TC

By Summit

Feature

ODS/API Platform

Data Management Service

By TC

By Summit

Concurrency management with ETags

MUST HAVE

LIMIT/OFFSET paging

done

 

Cursor-based paging

(7.3)

MUST HAVE

 

Identification code-based queries

(7.3)

MUST HAVE

 

Identities API

could have

 

Unique ID System Integration

could have

 

Database Technologies

Feature

ODS/API Platform

Data Management Service

By TC

By Summit

Feature

ODS/API Platform

Data Management Service

By TC

By Summit

Core database storage in PostgreSQL

done

 

Core database storage in MSSQL

MUST HAVE

 

GET queries using search database

done

Either OpenSearch or Elasticsearch

 

GET queries using relational database

MUST HAVE

Removes the requirement to run Kafka and OpenSearch or Elasticsearch

 

Reporting queries using ODS database schema

MUST HAVE

 

 

Core database storage in managed PostgreSQL-compatible databases (e.g. Aurora, Cosmos DB)

SHOULD Have

 

Realtime population of a data lake

SHOULD Have

 

Redis-based caching

SHOULD Have

 

Data Management Features

Feature

ODS/API Platform

Data Management Service

By TC

By Summit

Feature

ODS/API Platform

Data Management Service

By TC

By Summit

Streaming data out via Kafka

done

 

Change Queries API

SHOULD Have

 

Security Features

Feature

ODS/API Platform

Data Management Service

By TC

By Summit

Feature

ODS/API Platform

Data Management Service

By TC

By Summit

API-driven client credential management

(Admin API)

done

 

OAuth token authentication

done

 

Integration with third party OAuth identity providers

MUST HAVE

At minimum, will support Keycloak, with clear path for supporting other providers

 

API-driven claimset management

(Admin API)

MUST HAVE

 

Namespace authorization

MUST HAVE

 

Relationship authorization

MUST HAVE

 

Ownership authorization

MUST HAVE

Combined authorization

MUST HAVE

Extensible authorization filtering

(7.3)

MUST HAVE

 

Deployment Management

Feature

ODS/API Platform

Data Management Service

By TC

By Summit

Feature

ODS/API Platform

Data Management Service

By TC

By Summit

Docker images and sample Docker Compose settings

done

 

Multitenancy routing and instance management

MUST HAVE

PowerShell installation scripts for Windows Server

Could Have

 

Deployment orchestration via (Kubernetes, Terraform, Cloud Formation, ARM, etc.)

(though there are Exchange contributions)

WOn't Have

 

Other Integrations

Feature

ODS/API Platform

Data Management Service

By TC

By Summit

Feature

ODS/API Platform

Data Management Service

By TC

By Summit

SwaggerUI

must have

 

Admin Console

coming soon

must have

Demonstration

Working Client Management and Authentication

sequenceDiagram actor Sys Admin rect rgb(191, 223, 255) note right of Sys Admin: One time setup. Sys Admin->>Config Service: POST /connect/register Config Service->>Identity Provider: Create credentials note right of Identity Provider: Created with config role Config Service-->>Sys Admin: clientCredentials end Sys Admin->>Config Service: POST /v2/vendors Config Service->>Config Database: INSERT dbo.Vendor Sys Admin->>Config Service: POST /v2/applications Config Service->>Identity Provider: Create credentials note right of Identity Provider: Created with dms role Identity Provider-->>Config Service: clientCredentials Config Service->>Config Database: INSERT dbo.Application Config Database -->>Config Service: applicationId Config Service->>Config Database: INSERT dbo.ApplicationEducationOrganization Config Service->>Config Database: INSERT dbo.ApiClient Config Service-->>Sys Admin: clientCredentials
image (2).png

Design Questions

What plans are there for error detection (i.e. dropped records) and correction?

A question that arose at the Ed-Fi Summit session. Suggestions?

How will year rollover be handled?

Perhaps not germane to the release candidate, but we should still ask: are there special considerations that the development team needs to be thinking about in advance?