Repository navigation
feat(people): organization People page with profiles, reporting lines, and people-data import - #9517
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
[Medium impact] No new blocking issue was found that needs a separate review comment. SummaryAdds an organization People page with profiles, reporting lines, and admin-managed imports.
|
There was a problem hiding this comment.
All reported issues were addressed across 47 files
This PR changes a database schema or migrates data. Ultrareviews find 2.4x more serious bugs than standard reviews. Comment @cubic-dev-ai ultrareview to run one.
Turn on auto-fix | Re-trigger cubic
3291af7 to
9458187
Compare
|
@cubic-dev-ai review this PR |
@waleedlatif1 I have started the AI code review. It will take a few minutes to complete. |
There was a problem hiding this comment.
All reported issues were addressed across 47 files
Reply with feedback, questions, or to request a fix.
Turn on auto-fix | Re-trigger cubic
9458187 to
1e1c830
Compare
|
@cubic-dev-ai review this PR |
@waleedlatif1 I have started the AI code review. It will take a few minutes to complete. |
There was a problem hiding this comment.
All reported issues were addressed across 48 files
Reply with feedback, questions, or to request a fix.
Turn on auto-fix | Re-trigger cubic
1e1c830 to
d7cda90
Compare
|
@cubic-dev-ai review this PR |
@waleedlatif1 I have started the AI code review. It will take a few minutes to complete. |
…, and people-data import
…eet dates and row numbers, loop checks through suspended members
…nambiguous email matching, stricter dates, guarded workbook parsing
…within request limits
d7cda90 to
c9e655a
Compare
|
@cubic-dev-ai review this PR |
@waleedlatif1 I have started the AI code review. It will take a few minutes to complete. |
There was a problem hiding this comment.
No issues found across 48 files
Confidence score: 5/5
- Automated review surfaced no issues in the provided summaries.
- No files require special attention.
You've manually re-run cubic several times on this PR. Each manual re-review checks the full PR again and counts toward your usage quota. To preserve your usage limits, we recommend letting cubic automatically review new commits.
Turn on auto-fix | Re-trigger cubic
Summary
peoplefeature flag (AppConfigorgIds,PEOPLEenv fallback): everyone active in the org with title, department, location, and manager; search, department filter, and keyset paging bound to the active filters/o/<org>/people/<memberId>): details, the reporting chain above (nearest first, stops at suspended or out-of-org managers, cycle-safe and depth-capped), and direct reports below; admins edit via a modal with a searchable manager pickerWork Email,Job Title,Dept,Hire Date,Manager Email,city/state/country→ location). A preview reports every change and per-row issue (non-members, bad emails/dates, duplicates, self-manager, unknown manager, reporting loops) before anything is written; applying re-plans under an org lock against current datamember_profilekeyed onmember.id(ON DELETE CASCADE), withmanager_member_id → member.id(ON DELETE SET NULL) and a not-own-manager check, so leaving the org, moving orgs, or deleting an account cleans up in the database with no per-path hooks. Loops are refused in the app under a transaction-scoped advisory lockorganization.member_directorycapability; imports and edits are admin-only and audited (org_people.imported,org_member.profile_updated)ResourceLoadErrorextracted from Sim Links and reused here; docs page under Sim SearchType of Change
Testing
lib/people/import.test.ts: 29 failure-mode cases for column matching and import planning (aliases, blank-clears vs missing-column-keeps, date formats and impossible dates, duplicates, non-members, self/unknown managers, in-file and stored loops, location parts)scripts/test-people-e2e.ts(wired into thehttp-e2escim group withPEOPLE=true): real HTTP + Postgres. Tenant isolation, admin-only writes, preview writes nothing, apply/idempotency, manager resolution, chain and reports, search/department/cursor, loop/self/foreign-manager refusals with their messages, membership deletion cascading profiles and clearing managers, and exact audit counts (previews unaudited). JSON report viaPEOPLE_E2E_REPORT_PATHcheck:api-validation:strict,check:boundaries,check:unused-exports,check:migrations, drizzle-kit generate clean, schema mock regeneratedChecklist
test-auditauthoring gate)