Chris Chen
1a8002015a
feat(1099): seed Form1099Box catalog and default subcategory mappings
...
Adds Form1099BoxSeed (NEC-1, MISC-1) and Form1099SubMappingSeed
(6 service/rent subcategories), SeedForm1099BoxesAsync method with
null-fill idempotency (never clobbers admin edits), and wires it into
SeedAsync after SeedForm990ExpenseLinesAsync.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-25 17:13:44 -07:00
Chris Chen
609ce6a439
WIP
ci-cd-vm / ci-cd (push) Successful in 1m49s
2026-06-24 21:47:22 -07:00
Chris Chen
46a4298a71
WIP
2026-06-24 21:37:41 -07:00
Chris Chen
1353b5571f
feat(finance): add Form 990 report DTOs and permission module
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-06-24 19:23:05 -07:00
Chris Chen
4e83f27703
feat(seed): default Administration ministry to Management & General
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-24 19:21:04 -07:00
Chris Chen
d5e1732505
feat(seed): seed Form 990 line catalog and default subcategory mappings
2026-06-24 19:17:51 -07:00
Chris Chen
6e04b64466
feat(seed): add IT/Professional/Finance categories and rename overlapping subcategories
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-06-24 19:12:57 -07:00
Chris Chen
9dbb1d38d8
WIP
2026-06-24 18:45:22 -07:00
Chris Chen
e88ea7917f
add church profile.
ci-cd-vm / ci-cd (push) Successful in 2m31s
2026-06-24 08:21:31 -07:00
Chris Chen
62592c29ae
Add audit logs.
ci-cd-vm / ci-cd (push) Successful in 4m2s
2026-06-23 12:13:47 -07:00
Chris Chen
870eeec82a
Add role control
2026-06-23 07:19:08 -07:00
Chris Chen
3558c67fd7
WIP
2026-06-20 17:51:33 -07:00
Chris Chen
b3eb9d297a
feat(expense): add expense category entities + seed (11 groups / 38 subs)
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-29 18:08:12 -07:00
Chris Chen
f6f06d841c
feat(ministry): add Ministry entity, seed (10), and read endpoint
2026-05-29 18:03:28 -07:00
Chris Chen
577ae1aabe
refactor(giving): use AnyAsync in category seed (code-review minor)
2026-05-28 16:21:32 -07:00
Chris Chen
e20964ae0d
feat(giving): seed default giving categories
2026-05-28 16:19:44 -07:00
Chris Chen
8b86bd573e
Tasks 7-9: AuthController, appsettings, Program.cs
...
Task 7 – AuthController (POST /api/auth/login|refresh|logout)
- Refresh token in HttpOnly; Secure; SameSite=Strict cookie (rolac_rt)
- Cookie Path scoped to /api/auth; cleared on logout/invalid refresh
Task 8 – appsettings.json (non-secret JWT values + CORS origins)
- appsettings.Development.json carries connection string + JWT secret
(file is gitignored)
Task 9 – Program.cs wiring
- EF Core + Npgsql, ASP.NET Core Identity, JWT Bearer auth
- RoleClaimType=role matches the short JWT claim name written by TokenService
- CORS: AllowCredentials for Angular app
- Swagger UI with Bearer security definition
- Startup: MigrateAsync + DbSeeder.SeedAsync (roles + dev admin)
- DbSeeder: added SeedAsync(IServiceProvider) entry point
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-26 17:40:52 -07:00
Chris Chen
a66a3f7cb0
feat: add AppDbContext (Identity + RefreshTokens) and DbSeeder (13 roles + dev admin)
2026-05-25 19:05:02 -07:00