James
4758bafdb7
Comprehensive test suite: orgs, requests import, RBAC super_admin, domain validation
...
New tests added:
- lib/types_test.go: OrgData, DealOrgData, RequestData, WorkstreamData JSON marshal tests
- lib/rbac_test.go additions: TestSuperAdminBypassesCheckAccess, TestIsSuperAdmin, TestIsSuperAdminRevokedGrant, TestSuperAdminCanGrantAnyRole
- api/orgs_test.go: TestCreateOrg, TestCreateOrgEmptyDomains, TestCreateOrgMissingDomains, TestListOrgs, TestSuperAdminCanListAllOrgs, TestGetOrg, TestUpdateOrg, and more
- api/requests_test.go: TestImportRequestsCSV, TestImportRequestsXLSX, TestImportSmartHeaderDetection, TestImportModeReplace, TestImportModeAdd, TestListRequests, TestPriorityNormalization, and more
- api/integration_test.go additions: TestFullDealWorkflow, TestSuperAdminSeeAllProjects
Total: 33 new test functions, all passing
2026-02-28 07:20:09 -05:00
James
45ee8d0e4b
Port diligence request model + CSV/XLSX import from old dealroom
...
- Add RequestData and WorkstreamData types to lib/types.go
- Add excelize/v2 dependency for XLSX parsing
- Add GET /api/projects/{projectID}/requests endpoint (lists requests grouped by section)
- Add POST /api/projects/{projectID}/requests/import endpoint with:
- Smart header detection (scans first 12 rows for keyword matches)
- CSV and XLSX support (detects by extension + magic bytes)
- Priority mapping (high/critical/urgent→high, low/nice/optional→low)
- Mode: add or replace existing requests
- Optional section_filter parameter
- Optional create_workstreams=true to create workstreams from sections
- Update project.html template:
- Requests tab calls /api/projects/{id}/requests
- Results grouped by section with collapsible headers
- Shows item_number, title, priority badge (colored dot), status badge
- Import button opens modal with file upload, mode selector, options
2026-02-28 07:13:29 -05:00
James
202bac8693
Initial Go foundation
...
Complete project structure with FIPS 140-3 crypto (AES-256-GCM + HKDF-SHA256),
entry-based data model, three RBAC choke points (EntryRead/EntryWrite/EntryDelete),
optimistic locking, soft delete, blind indexes for search, embedded website,
and deployed to muskepo.com.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-28 04:25:57 -05:00