Commit Graph
100 Commits
Author SHA1 Message Date
Stevan Freeborn 559908a150 fix(infra): update transaction amount handling to use CanonicalAmount and ensure negative values in transaction tests 2026-03-11 20:01:23 -05:00
Stevan Freeborn e3acb2166d fix(api): update PlaidClientOptions to set environment to Production 2026-03-11 19:46:47 -05:00
Stevan Freeborn e6f70f4ab4 fix(api): update PlaidClientOptions to set environment to Development in production 2026-03-11 19:41:49 -05:00
Stevan Freeborn 6c8ee3e203 feat(api): enhance PlaidException for detailed error logging and improve GlobalExceptionHandler for specific Plaid errors 2026-03-11 19:28:15 -05:00
Stevan Freeborn cb7ed41296 fix(api): ensure exception handling middleware is correctly registered 2026-03-11 19:12:19 -05:00
Stevan Freeborn a168d318b2 chore: add SEQ_SERVER_URL and SEQ_API_KEY_HEADER to deployment environment variables 2026-03-11 18:58:39 -05:00
Stevan Freeborn 839d17de0d fix(web): remove disabled state styles for add institution button 2026-03-11 18:53:11 -05:00
Stevan Freeborn 9e1d04da80 feat(web): add styles for add account and institution buttons with disabled state 2026-03-11 18:52:33 -05:00
Stevan Freeborn a721c60ad9 feat(api,infra): implement GlobalExceptionHandler and enhance PlaidException for detailed error handling 2026-03-11 18:52:23 -05:00
Stevan Freeborn 64c64e8d95 feat(servicedefaults): add SeqOptions configuration and integrate with OpenTelemetry logging and tracing 2026-03-11 18:52:05 -05:00
Stevan Freeborn e30f19e939 fix(project): set appsettings.json as optional in Program.cs 2026-03-11 13:12:26 -05:00
Stevan Freeborn d33b1d28dd fix(editorconfig): disable CA1873 diagnostic severity 2026-03-11 12:55:11 -05:00
Stevan Freeborn 36e2f70da2 refactor(docker): remove unnecessary global.json copy from Dockerfile.api 2026-03-11 12:51:53 -05:00
Stevan Freeborn 9572097d38 refactor(docker): streamline Dockerfile by removing redundant .editorconfig copies and simplifying restore commands 2026-03-11 12:49:16 -05:00
Stevan Freeborn ff4d10edcc feat(docker): add .editorconfig files for API and AdminCLI projects 2026-03-11 12:41:54 -05:00
Stevan Freeborn 379f975e7f Merge pull request #17 from StevanFreeborn/stevanfreeborn/feat/display-transactions-in-web
feat: display transactions on the web
2026-03-11 12:32:41 -05:00
Stevan Freeborn 6bf7499981 feat(docker): update web service port mapping and remove api service port configuration 2026-03-11 12:31:24 -05:00
Stevan Freeborn cd69cea2ac refactor: remove Playwright dependencies and configuration, update test cases, and clean up code formatting
- Removed Playwright test dependencies from package.json and deleted playwright.config.ts.
- Updated LoginForm component and its tests for improved readability and consistency.
- Cleaned up App.vue and PublicLayout.vue by adjusting import formatting.
- Fixed missing newlines in CSS and other files for better formatting.
- Updated userStore to ensure proper object syntax.
- Refactored LoginView to enhance code clarity and maintainability.
2026-03-11 12:13:53 -05:00
Stevan Freeborn e3a75ccbc6 feat(api,web): update account and institution handling to use provider identifiers and enhance UI components for account addition 2026-03-11 10:51:28 -05:00
Stevan Freeborn 5eda5fbb76 feat(web): try to make pretty 2026-03-11 05:47:34 -05:00
Stevan Freeborn 4d1c01776f feat(web): enhance transaction display and account management features 2026-03-10 17:46:21 -05:00
Stevan Freeborn 3408f6ea4f feat(api,web): retrieve and display transactions 2026-03-10 07:42:51 -05:00
Stevan Freeborn e2d2058960 chore: update preferences for lambas 2026-03-10 07:42:15 -05:00
Stevan Freeborn 02147cffdb chore: add new test project to solution 2026-03-10 07:42:03 -05:00
Stevan Freeborn e13c83013b refactor(infra.tests): moved builders to common project 2026-03-10 07:41:43 -05:00
Stevan Freeborn c713a5448d tests(tests.common): add class library for sharing code amongst test projects 2026-03-10 07:41:23 -05:00
Stevan Freeborn 091fa6f01c feat: allow users to logout 2026-03-09 05:58:04 -05:00
Stevan Freeborn c8505081a5 chore: enable aspire to run with made mode 2026-03-09 05:58:04 -05:00
Stevan Freeborn 7afe0cf6c1 chore: add coverage directory to .gitignore 2026-03-09 04:29:01 -05:00
Stevan Freeborn 9e656b7745 refactor: remove unused using directive for Going.Plaid.Transactions in PlaidTransactionProcessorTests 2026-03-09 04:29:01 -05:00
Stevan Freeborn 76df36b18f tests(infra.tests): enhance AccountBuilder with metadata handling and expand PlaidTransactionSyncerTests 2026-03-09 04:29:01 -05:00
Stevan Freeborn 98d56fefd7 tests(infra,api): refactor to allow further config of TestApi 2026-03-09 04:29:01 -05:00
Stevan Freeborn df697ed37c tests(infra.tests): added builder classes for creating test entities 2026-03-09 04:29:01 -05:00
Stevan Freeborn 659b2bbf19 tests(infra.tests): wip on builder apis for test data 2026-03-09 04:29:01 -05:00
Stevan Freeborn 0bc810cab6 feat: implement transaction handling and add integration tests for Plaid transaction handlers 2026-03-09 04:29:01 -05:00
Stevan Freeborn 62a7dde443 feat: update account handling in add endpoint and tests 2026-03-09 04:29:01 -05:00
Stevan Freeborn 3866030eae feat: continued wip on supporting transactions 2026-03-09 04:29:01 -05:00
Stevan Freeborn 8d68bfc22a fix(infra): don't advance account cursor unless all transactions proceed successfully 2026-03-09 04:29:01 -05:00
Stevan Freeborn 8222698fa8 refactor(core): make parameters non-nullable 2026-03-09 04:29:01 -05:00
Stevan Freeborn 2a378f098d tests(api.tests): fix methods broken in refactor 2026-03-09 04:29:01 -05:00
Stevan Freeborn 00e54c27c6 feat: rename transaction table to transactions and update related references 2026-03-09 04:29:01 -05:00
Stevan Freeborn a9f1ced0d5 feat: add Plaid transaction handling and async queue processing
- introduced new migration to add Cursor column to AccountMetadata.
- updated AppDbContext model snapshot to reflect changes in the database schema.
- implemented async queue processing with ChannelAsyncQueue and AsyncQueueHostedService.
- created Plaid transaction handlers for added, modified, and removed transactions.
- developed PlaidTransactionService and PlaidTransactionSyncer for syncing transactions.
- added SyncUpdatesProcessor to handle sync updates from Plaid.
- updated tests to accommodate changes in institution and account metadata handling.
2026-03-09 04:29:01 -05:00
Stevan Freeborn 48e95e5242 refactor(api.tests): updated model names 2026-02-24 06:55:37 -06:00
Stevan Freeborn d0b0097032 feat(web): handle adding accounts to institution 2026-02-24 06:55:37 -06:00
Stevan Freeborn 81c45350e8 feat(api): include accounts in institution dto 2026-02-24 06:55:37 -06:00
Stevan Freeborn 2fa34fe5ab feat(infra): updated modeling to reflect new navigation property 2026-02-24 06:55:37 -06:00
Stevan Freeborn 0815620028 feat(core): added navigation property to institution for accounts 2026-02-24 06:55:37 -06:00
Stevan Freeborn d5b6fb3a38 tests(apphost.tests): added support for end to end testing using playwright 2026-02-23 05:56:34 -06:00
Stevan Freeborn fd2cd68d73 feat(web,api): added ability to add and then display list of institutions 2026-02-22 06:53:13 -06:00
Stevan Freeborn b4fbf16869 feat(web): finish implementing login 2026-02-21 07:32:28 -06:00
Stevan Freeborn d9130e75a4 feat(web): make things work
- setup basic login form
- setup basic add institution functionality
2026-02-21 07:32:28 -06:00
Stevan Freeborn e2537d77c4 feat(web): working on login style 2026-02-21 07:32:28 -06:00
Stevan Freeborn fcbc9e78c2 style(web): add fonts 2026-02-21 07:32:28 -06:00
Stevan Freeborn 9042cd4ead feat(web): use user store and auth service to handle logging in and persistenting user state 2026-02-21 07:32:28 -06:00
Stevan Freeborn 1c3de212ff chore(web): configure prettier to my preferences 2026-02-21 07:32:28 -06:00
Stevan Freeborn 72a534a8e0 feat(web): add composable for creating auth service 2026-02-21 07:32:28 -06:00
Stevan Freeborn 74e55b2f48 feat(web): implement user store 2026-02-21 07:32:28 -06:00
Stevan Freeborn a3dc58d19b feat(web): implement auth service 2026-02-21 07:32:28 -06:00
Stevan Freeborn 5a878bf4b3 feat(web): add small http client implementation around fetch 2026-02-21 07:32:28 -06:00
Stevan Freeborn dee331fb0d feat(web): implement initial logic to handle protected vs public routing 2026-02-21 07:32:28 -06:00
Stevan Freeborn df859b91b0 feat: add frontend with aspire integration 2026-02-17 06:19:05 -06:00
Stevan Freeborn d77e5d45f6 feat: aspirify the solution 2026-02-15 08:16:47 -06:00
Stevan Freeborn 2cca5c15a0 chore: run dotnet format 2026-02-15 08:16:47 -06:00
Stevan Freeborn ab88656c1e feat(api): implement endpoint for creating link tokens 2026-02-15 07:02:01 -06:00
Stevan Freeborn 6b2b19cb5b feat(infra): add create link token to plaid service 2026-02-15 07:02:01 -06:00
Stevan Freeborn 9c0f642f90 feat(api): support passing and persistenting currency code for balances 2026-02-14 06:46:05 -06:00
Stevan Freeborn 701b89d704 feat(infra): added modeling and migrations for currency code prop 2026-02-14 06:46:05 -06:00
Stevan Freeborn 49e4288eba feat(core): extend balance model to store currency code 2026-02-14 06:46:05 -06:00
Stevan Freeborn 497dedf6ac feat(api): return balance info to frontend 2026-02-14 06:46:05 -06:00
Stevan Freeborn 29d8758ede feat(infra): add extensions members for plaid accounts 2026-02-14 06:46:05 -06:00
Stevan Freeborn 6190470fe2 feat(api): initialize account with starting balance 2026-02-14 06:46:05 -06:00
Stevan Freeborn ed7e25961c feat(infra): add modeling to dbcontext for balance model with migrations 2026-02-14 06:46:05 -06:00
Stevan Freeborn e331030bb0 feat(core): add balance model 2026-02-14 06:46:05 -06:00
Stevan Freeborn 3b7830b1bc refactor(api): introduce DTOs for institutional account discovery
- Replace raw Plaid entity response with a dedicated Response wrapper
- Map Plaid accounts to AccountDto to decouple API from external SDK
models
- Update integration tests to assert against the new response structure
- Add JsonConstructors to DTO records for reliable deserialization
2026-02-14 06:46:05 -06:00
Stevan Freeborn dad2ceb450 feat(api,core,infra): refactor endpoint routing and add institution account discovery
- Move login and refresh endpoints under a unified /auth route group
- Relocate institution connection logic from /accounts to /institutions
- Implement GET /institutions/{id}/available to fetch real-time Plaid
accounts
- Introduce HttpRequestBuilder utility to streamline integration testing
- Enhance PlaidService with GetAccountsAsync to support account fetching
- Clean up global usings and project structure for better domain
isolation
2026-02-14 06:46:05 -06:00
Stevan Freeborn 32cf48bf36 refactor(infra,api.tests): fix my null lies 2026-02-13 12:38:18 -06:00
Stevan Freeborn 502f6f61c1 feat(api): validate account institution is connected and allow adding new account 2026-02-13 12:38:18 -06:00
Stevan Freeborn 6ca90ed25a refactor(api.tests): rename variable 2026-02-13 12:38:18 -06:00
Stevan Freeborn 5192c06627 refactor(api): use convenience methods 2026-02-13 12:38:18 -06:00
Stevan Freeborn 2fd55a55cd fix(infra): update db model to address property name correction 2026-02-13 12:38:18 -06:00
Stevan Freeborn a2e9fc3f30 fix(core): fix incorrectly named property 2026-02-13 12:38:18 -06:00
Stevan Freeborn a83dbbcc54 feat(api): add validation to prevent duplicate accounts from being added 2026-02-13 12:38:18 -06:00
Stevan Freeborn a07fd24ee9 feat(infra): added plaid specific metadata and updated context to model account 2026-02-13 12:38:18 -06:00
Stevan Freeborn 2fdb849142 feat(core): add models for account 2026-02-13 12:38:18 -06:00
Stevan Freeborn 1a41c3c0b6 feat(api): implement storing connected insitution in db 2026-02-13 04:37:47 -06:00
Stevan Freeborn c4a8aada6b feat(infra): implement plaid service 2026-02-13 04:37:47 -06:00
Stevan Freeborn dd08eee5a3 refactor(infra): remove unneeded qualifiers 2026-02-13 04:37:47 -06:00
Stevan Freeborn 7cdf87b860 tests(api.tests): pass cancellation token through delegate 2026-02-13 04:37:47 -06:00
Stevan Freeborn 8663daabae chore(api.tests): add example test settings file 2026-02-13 04:37:47 -06:00
Stevan Freeborn 0b7c33a024 fix(core): pass name of null param 2026-02-13 04:37:47 -06:00
Stevan Freeborn 823ba4dc5a chore: update example appsettings file 2026-02-13 04:37:47 -06:00
Stevan Freeborn 1d661ac409 feat(api): prevent user from connecting to same institution twice 2026-02-13 04:37:47 -06:00
Stevan Freeborn 069d019d80 feat(infra): update db context with modeling for institution and relationships 2026-02-13 04:37:47 -06:00
Stevan Freeborn 3f62a246ee feat(core): add models for institution 2026-02-13 04:37:47 -06:00
Stevan Freeborn 5da1f1decf refactor(api.tests): check for correct status code first in assertion 2026-02-13 04:37:47 -06:00
Stevan Freeborn 1f5e4a319a fix(api.tests): use a serializable dictionary for xunit test case data 2026-02-13 04:37:47 -06:00
Stevan Freeborn 683ca3fac4 feat(api): add validation for connect account request 2026-02-13 04:37:47 -06:00
Stevan Freeborn e88adfd2a7 refactor(api): derive field name from property being validated 2026-02-13 04:37:47 -06:00
Stevan Freeborn 6fc8bd0366 refactor(api): rename type 2026-02-13 04:37:47 -06:00
Stevan Freeborn ab23593359 refactor(api): remove whitespace 2026-02-13 04:37:47 -06:00