This PR will automatically generate the Plaid client from their OpenAPI spec.
Why? I have a few follow-up changes that require some of the new fields that have been added to the Plaid transactions API since the old client was generated. This seemed better than editing the existing generated code. The first change I have in mind is to allow more than 90 days of history to be requested when first syncing a new account (Plaid API used to do this by default, but not anymore). There are also a few newer fields present on Plaid transactions that I'd like to pass-through and capture in Firefly.
Things of note:
I didn't take the absolute newest Plaid OpenAPI spec. This version is a few weeks old. The absolute newest Plaid OpenAPI spec removes the "development" endpoints. I'm under the impression that the Plaid development endpoints are shut-down, but I haven't actually confirmed that they no longer work.
I added unit tests to validate the client's behavior in some detail. The tests pass against both the old client and the new client. I feel pretty good that these tests demonstrate that there is no change in behavior between the old client and the new auto-generated client.
The latest Plaid API adds a ton of new stuff. Aside from new fields/enums on the models that we're already using, the majority of the new stuff is probably irrelevant. The amount of new stuff here did require me to increase the memory allocated to the compiler from the default of 512MB. I bumped it to 3GB, but I haven't yet seen the process climb above 2GB of actual usage. We're still well within the amount allocated to the Github action runner.
This PR will automatically generate the Plaid client from their OpenAPI spec.
Why? I have a few follow-up changes that require some of the new fields that have been added to the Plaid transactions API since the old client was generated. This seemed better than editing the existing generated code. The first change I have in mind is to allow more than 90 days of history to be requested when first syncing a new account (Plaid API used to do this by default, but not anymore). There are also a few newer fields present on Plaid transactions that I'd like to pass-through and capture in Firefly.
Things of note: