configuration PK: id 9 required 1 unique

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.

13
Attributes
2
Indexes
5
Validation Rules
5
CRUD Operations

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
btree

Columns: organization_id

idx_external_resource_links_org_active_order
btree

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
on_create

All resource link URLs must use HTTPS. HTTP URLs are rejected to prevent mixed-content issues and protect users.

org_scoped_visibility
always

A peer mentor or coordinator may only see links belonging to their own organization.

active_links_only_for_mobile
always

The mobile app fetches only records where is_active = true. Inactive records are admin-visible only.

role_filtered_delivery
always

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
on_create

An organization may not configure more than 50 active external resource links to prevent screen overflow.

Storage Configuration

Storage Type
primary_table
Location
main_db
Partitioning
No Partitioning
Retention
Permanent Storage