GithubHelp home page GithubHelp logo

infindi-backend's People

Contributors

brenmcnamara avatar

Watchers

 avatar  avatar

infindi-backend's Issues

Firebase Types

Does flow-typed have firebase types?

If not, should create some automatic way of referencing firebase types for project

Create Job Pinger

  • Need a way to quickly know that job requests are being listened to by worker

  • Should be able to send a ping from the command line that gets a response from a worker if it's listening

  • Ping from command line

  • Worker detects the ping and just marks the job as complete without doing anything else

  • Detect the change in the job we sent and if it gets mark as complete, then we are golden!!

Fix Open Request Check

  • Currently, when creating a new request, we check if the device id exists for an open request

  • Should change this check for device id and bundle identifier combination so that we can have multiple apps with sessions and we can have a debug and production build with open sessions

  • If there are more than X number of open requests with the same device id and bundle identifier, don't let user create a new one

    • Need to create some buffer for abandoned sessions to get picked up by the session cleanup job. This will probably start-off running about once an hour

Handle non-responsive session

When creating a new session, we need to check for non-responsive sessions with the same device id and do something about them.

Detailed webhook logging

  • Need to know precise payload that is getting passed to the webhook every time

  • Need to know the IP Address it's coming from

  • Need to see the headers

Removed X-Powered-By

Express responses return with a header "X-Powered-By": "express". We don't want people knowing what we are using in the backend, since it may give them some clues on how to exploit the system. This header should not be returned.

Structured and detailed logs

  • Each service should have structured and detailed logs
  • Logs should include severity (info, warning, error), topics, routes, etc...

Script to report new download requests

After deploying our services, we need a way to make sure that download requests are being worked on.

One solution is to write a quick script that detects changes to download requests and reports status updates:

(<id 1>): (null) -> NOT_INITIALIZED
(<id 2>): (null) -> NOT_INITIALIZED
(<id 1>): NOT_INITIALIZED -> IN_PROGRESS
...

Update-All caveats

Calling update all has a couple of caveats:

  1. Should NEVER be run alongside anything that is writing to user data, there can be race conditions. Need a good solution for this.
  2. Due to Firebase batch limit of 500 updates, this can result in an error if trying to update too much data. (Can fix this by running a set of batches instead of a single batch)

Update metrics when accounts are added

  • Should send the job to update the metrics when accounts are added via plaid.

  • Should have some load indicator to show that metrics are in the middle of an update. In the data model, should just have a flag to indicate if a job is in the middle of updating the metrics.

Runtime errors not always handled for jobs

Some runtime errors that happen when a job is running result in a crash without getting caught and handled by the error-handling code. Need to figure out why this happens and fix it.

Losing account data on failed logins

When attempting to login with a user, we replace the current yodlee provider account with the next one. The problem is that if the login is a failure, then we fail to login. I also suspect we will lose transaction data, even on a successful login, need to think through the user flow for this.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.