Last active
November 7, 2025 21:49
-
-
Save Stroniax/b0e3d0bb24818e0243d72b6aa21d5611 to your computer and use it in GitHub Desktop.
powerschool-schemas
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| { | |
| "$schema": "https://json-schema.org/draft/2020-12/schema", | |
| "$id": "https://example.com/navigation-pages.schema.json", | |
| "title": "Navigation Pages Schema", | |
| "type": "object", | |
| "properties": { | |
| "pages": { | |
| "type": "array", | |
| "description": "Root element, expected to exist by the parser. Holds all Navigation/PageCatalog JSON elements.", | |
| "items": { "$ref": "#/$defs/page" } | |
| } | |
| }, | |
| "required": ["pages"], | |
| "$defs": { | |
| "page": { | |
| "type": "object", | |
| "properties": { | |
| "htmlID": { | |
| "type": "string", | |
| "description": "The ID included on the element in the HTML. Must be unique across all records in the DB." | |
| }, | |
| "title": { | |
| "type": "string", | |
| "description": "The name of the page, will be the text displayed in the link in the UI." | |
| }, | |
| "iconName": { | |
| "type": ["string", "null"], | |
| "description": "Name of the PDS icon to be displayed for the Category. (App Nav view only)" | |
| }, | |
| "sortOrder": { | |
| "type": "integer", | |
| "description": "Used to order the links in the navigation. Core links start at 100 and increment by 100." | |
| }, | |
| "pageURL": { | |
| "type": ["string", "null"], | |
| "pattern": "^/admin.*", | |
| "description": "The URL to the Page. Must begin with '/admin'. PS-HTML tags are supported." | |
| }, | |
| "originalParentUrl": { | |
| "type": ["string", "null"], | |
| "description": "URL(s) of the original parent link(s) from older navigation structure." | |
| }, | |
| "districtLevelContext": { | |
| "type": ["integer", "null"], | |
| "enum": [0, 1, 2], | |
| "description": "0 = both School and District, 1 = School only, 2 = District only. Default is 0." | |
| }, | |
| "contextType": { | |
| "type": ["string", "null"], | |
| "enum": ["main", "student", "staff"], | |
| "description": "Determines the Navigation Context. Supported: main, student, staff." | |
| }, | |
| "requiredContext": { | |
| "type": ["string", "null"], | |
| "enum": ["student", "staff"], | |
| "description": "Specifies whether a context selection is required before visiting the page." | |
| }, | |
| "version": { | |
| "type": "string", | |
| "pattern": "^\\d+\\.\\d+\\.\\d+(?:\\.\\d+)?$", | |
| "description": "Version of the link, e.g. '23.5.0.1'. Used to determine updates." | |
| }, | |
| "children": { | |
| "type": "array", | |
| "items": { "$ref": "#/$defs/page" }, | |
| "description": "Array of child Navigation/PageCatalog elements." | |
| }, | |
| "parentHTMLID": { | |
| "type": ["string", "null"], | |
| "description": "htmlID of an existing Category this link belongs to. Not used if defined within a parent’s children array." | |
| }, | |
| "isNewTab": { | |
| "type": ["boolean", "null"], | |
| "description": "If true, opens the page in a new browser tab." | |
| }, | |
| "isLandingPage": { | |
| "type": ["boolean", "null"], | |
| "description": "If true, page acts as a landing page containing links to child pages." | |
| }, | |
| "checkParams": { | |
| "type": ["boolean", "null"], | |
| "description": "If true, query parameters are included in the active link check." | |
| } | |
| }, | |
| "required": ["htmlID", "title", "sortOrder", "version"], | |
| "additionalProperties": false | |
| } | |
| } | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment