External Resource Link
Data Entity
Description
Organization-configured curated links to external resources, websites, and tools displayed to peer mentors and coordinators in the mobile app's External Resource Links screen.
Data Structure
| Name | Type | Description | Constraints |
|---|---|---|---|
id |
uuid |
Primary key | PKrequiredunique |
organization_id |
uuid |
Organization that owns this resource link | required |
title |
string |
Display title shown to users | required |
url |
string |
Full URL of the external resource (https only) | required |
description |
text |
Optional short description shown below the title | - |
category |
enum |
Grouping category for display organization | - |
sort_order |
integer |
Display order within the organization's list | required |
is_active |
boolean |
Whether the link is visible to end users | required |
target_roles |
json |
Array of role slugs this link is visible to (e.g. ["peer_mentor", "coordinator"]). Empty array means visible to all roles. | - |
icon_url |
string |
Optional URL to a favicon or icon image for the link | - |
created_by |
uuid |
User ID of the admin who created the record | required |
created_at |
datetime |
Record creation timestamp | required |
updated_at |
datetime |
Last modification timestamp | required |
Database Indexes
idx_external_resource_links_org_id
Columns: organization_id
idx_external_resource_links_org_active_order
Columns: organization_id, is_active, sort_order
Validation Rules
title_required_non_empty
error
Validation failed
url_format_valid
error
Validation failed
sort_order_non_negative
error
Validation failed
target_roles_valid_values
error
Validation failed
description_max_length
error
Validation failed
Business Rules
https_only_urls
All resource link URLs must use HTTPS. HTTP URLs are rejected to prevent mixed-content issues and protect users.
org_scoped_visibility
A peer mentor or coordinator may only see links belonging to their own organization.
active_links_only_for_mobile
The mobile app fetches only records where is_active = true. Inactive records are admin-visible only.
role_filtered_delivery
If target_roles is non-empty, only users whose role matches one of the values receive the link. Empty target_roles means all roles see the link.
max_links_per_org
An organization may not configure more than 50 active external resource links to prevent screen overflow.