The database is a PostgreSQL instance running inside a Docker container.
Port 5432 is exposed to the Docker host, so you can connect to the DB using the tool of your choice. Username and password can be found in docker-compose.yml.
API and Link Identifiers are crucial for maintaining a scalable and stable integration. Occasionally, an Institution error may occur due to a bank issue, or a live product pull may fail on request. To resolve these types of issues, Plaid Identifiers are required to open a Support ticket in the Dashboard.
access_tokens
and item_ids
are the core identifiers that map end-users to their financial institutions.
As such, we are storing them in the database associated with our application users.
These identifiers should never be exposed client-side.
Plaid returns a unique request_id
in all server-side responses and Link callbacks.
A link_session_id
is also returned in Link callbacks.
These values can be used for identifying the specific network request or Link session for a user, and associating that request or session with other events in your application.
We store these identifiers in database tables used for logging Plaid API requests, as they can be useful for troubleshooting.
For more information, see the docs page on storing Plaid API identifiers.
The *.sql
scripts in the init
directory are used to initialize the database if the data directory is empty (i.e. on first run, after manually clearing the db by running make clear-db
, or after modifying the scripts in the init
directory).
See the create.sql initialization script to see some brief notes for and the schemas of the tables used in this application. While most of them are fairly self-explanitory, we've added some additional notes for some of the tables below.
This table stores responses from the Plaid API for client requests to the Plaid Link client.
User flows that this table captures (based on the client implementation, which hooks into the onExit
and onSuccess
Link callbacks):
- User opens Link, closes without trying to connect an account.
This will have type
exit
but no request_id, error_type, or error_code. - User tries to connect an account, fails, and closes link.
This will have type
exit
and will have a request_id, error_type, and error_code. - User successfully connects an account.
This will have type
success
but no request_id, error_type, or error_code.
This table stores responses from the Plaid API for server requests to the Plaid client. The server stores the responses for all of the requests it makes to the Plaid API. Where applicable, it also maps the response to an item. If the request returned an error, the error_type and error_code columns will be populated.
In a real-world application, you might want to map some of these requests to a user or a session, if they were initiated in response to a client request. Since this demo app doesn't have the concept of a session, we did not incorporate that into these logs.