-
Notifications
You must be signed in to change notification settings - Fork 2.5k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Basic Plaid Integration #1433
Merged
Merged
Basic Plaid Integration #1433
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR introduces a basic Plaid integration for our hosted app offering, which includes:
Below are some details of the changes and implementation.
Institution UI
Previously, we had an "Institutions" UI that allowed users to add accounts to "institutions" (which were really just "groups"). This feature was confusing (as reported by several users), and therefore, this PR removes it entirely. Now, users will see all manually tracked accounts in a single group and Plaid institutions in their own groups:
Syncable Concern
I've reworked
Syncable
so that theFamily
,PlaidItem
, andAccount
can all be "synced". Each "syncable" is expected to implement it's own implementation ofsync_data
:This method will be called by
Sync
, which is a generic model that performs a "sync" against a specific model and handles errors:Initial Plaid Implementation
The Plaid domain consists of the following classes:
A
PlaidItem
maps 1:1 with Plaid Items while aPlaidAccount
maps 1:1 with Plaid Accounts. These classes useProvider::Plaid
through thePlaidable
concern in order to fetch Plaid data. These classes are then responsible for providing mappings and transformations required prior to loading data to theAccount
(Maybe domain).An
Account
can optionally belong to aPlaidItem
. In this case, it is a "linked account" and will be synced at both thePlaidItem
level (fetching and storing Plaid data) and theAccount
level (syncing balances and holdings).If an
Account
does not belong_to aPlaidItem
, it is considered a "manually tracked account".