Skip to content

feat: SIS deep-link from student detail view (#78)#95

Merged
William-Hill merged 15 commits intomainfrom
feature/sis-deep-link
Apr 2, 2026
Merged

feat: SIS deep-link from student detail view (#78)#95
William-Hill merged 15 commits intomainfrom
feature/sis-deep-link

Conversation

@William-Hill
Copy link
Copy Markdown
Collaborator

@William-Hill William-Hill commented Apr 2, 2026

Summary

  • Add FERPA-compliant "Open in SIS" button to the student detail page that constructs a deep-link URL to the institution's SIS server-side — the SIS student ID never reaches the browser
  • New guid_sis_map table + seed script with 20 demo mappings for POC/demo purposes
  • New API route GET /api/students/[guid]/sis-link with role gating (admin/advisor/ir), server-side URL construction, and fire-and-forget audit logging
  • Button shows three states: clickable (mapping exists), disabled with tooltip (no mapping), or hidden (unauthorized/feature disabled)
  • Feature controlled by SIS_BASE_URL env var — leave blank to disable entirely

Test plan

  • Set SIS_BASE_URL=https://sis-demo.example.com/students and SIS_ID_PARAM=id in .env.local
  • Run python -m operations.seed_guid_sis_map to create table and seed demo data
  • Navigate to a seeded student — verify "Open in SIS" button is clickable and opens demo URL in new tab
  • Navigate to a non-seeded student — verify button is disabled with tooltip
  • Log in as faculty/leadership role — verify button is hidden
  • Remove SIS_BASE_URL from env, restart — verify button is hidden entirely
  • Check logs/query-history.jsonl for sis_link_accessed audit entries (GUID + role only, no SIS ID)

Closes #78

@William-Hill William-Hill merged commit b9cbe63 into main Apr 2, 2026
3 checks passed
@William-Hill William-Hill deleted the feature/sis-deep-link branch April 2, 2026 17:17
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

feat: SIS deep-link from student detail view (FERPA-compliant identity resolution)

1 participant