Closed amenity closed 2 years ago
ETL is currently being done via Airflow (spun up in a Docker container) for anything involving the Knack API.
@zappfyllc will diagram between Moped and Data Tracker as to proposed integration (technology agnostic).
@zappfyllc @johnclary — is this essentially a duplicate of #3974 ?
@amenity @johnclary I propose we consider a feature labeled "Moped Knack Integration" (or something analogous) if we're still considering a future Moped scope involving #3670 (Signs and Markings), #4837 (Finance and Purchasing) and/or other Knack apps that could be built for various workgroups. The idea would be to build a service for handling the sending of newly entered and freshly completed (closed) Moped projects to the Knack API in an event-driven architecture. Rather than any sort of ongoing batching (ETL) or a one-time script written for the client application (Moped in this case) to do all the work, we could set up a service that is fault-tolerant so we rarely have issues with any kind of synchronization between other applications and Moped. This does also satisfy a future AMD Data Tracker integration because we'll have a "moped_project" object that is sourced from Moped and can be consistently related to other Knack objects in AMD Data Tracker to provide a point of integration.
This service may be able to be re-used for other non-Knack applications and integration points, but I think even a Knack-only service is probably good enough considering you have quite a few Knack developers and there may be workgroups who will benefit from some simple Knack apps that track some granular work we don't want to address in Moped.
See this Miro board for high-level view: https://miro.com/app/board/o9J_lZHCYd4=/
This was covered in #3974.
As a Moped user, I want to easily access my project's Data Tracker work orders so that I can
As a Data Tracker user...
In-scope:
Sending users from within a Moped project to a list of work orders (related to this project) in Data Tracker
Storing a Moped Projects table for AMD-entered projects into an object in AMD Data Tracker, then relating it with AMD Data Tracker Work Orders
Out-of-scope:
Additional notes: Goal is to avoid hitting the Knack API on Data Tracker's side too much; instead, we would only call the Knack Data Tracker API when a new project is added within Moped by an AMD user.