in-fin-neat / in-fin-neat-core

Personal Finances tool
1 stars 0 forks source link

Allow bank authorization through browser #40

Open diegotsutsumi opened 2 months ago

diegotsutsumi commented 2 months ago

User Story

As a python cli infineat user using fetch_transactions to download transactions into my local machine, I want to be able to authorize banks through my mobile browser, so that I can easily open my bank apps to perform the authorization. Also so that I can call fetch_transactions from multiple machines without having to re-authorize.

Acceptance Criteria

  1. A browser page with a single button "Authorize my banks". This button will trigger the authorization process for the banks configured previously.
  2. Bank tokens and other information needed to access bank data, are stored in the cloud.
  3. Python commands that communicates with the bank, are now retrieving bank tokens and other bank information from the cloud, rather than from the local user storage.

Tech Tasks

  1. Auth API tasks:
    1. Specification
    2. CDK Infrastructure
    3. Generate bank token endpoint
    4. Retrieve bank token endpoint
    5. Validate bank token endpoint
  2. Front End tasks:
    1. Typescript Auth API client
    2. New front end page with the "Authorize My Banks" button.
    3. Show clickable bank authorization URL in new front end page.
  3. Python CLI tasks:
    1. Python Auth API client
    2. Switch all python cli commands, requiring bank authorization, to fetch bank authorization information from the new Auth API cloud endpoints.

Task blockers

auth_delivery_blockers

auth_initiation_blockers