Generated Authorization Schema#

This page renders the exact validation rules from the authz JSON Schema. See the Authorization Schema Reference for guidance, examples, and validation performed by the compiler across schema contributions.

Top-level fields#

schema_version#

The authorization schema format version. Quote this value in YAML so it remains a string.

type

string

examples

1.0

const

1.0

priority#

The precedence used when contributions extend the same role. A higher number takes precedence when extensions conflict.

type

integer

examples

100

permission_categories#

Permission categories contributed by this file. Categories group permissions for display and discovery but do not grant access.

type

array

examples

id

course_content

display_name

Course content

description

Permissions for viewing and editing course content.

icon

Article

minItems

1

permissions#

Static permissions contributed by this file.

type

array

examples

namespace

courses

name

view_course

display_name

View course

description

View course configuration and content.

category

course_content

scopes

course-v1

icon

Visibility

minItems

1

roles#

Static roles contributed by this file.

type

array

examples

id

course_observer

display_name

Course observer

description

Reviews a course without changing it.

scopes

course-v1

permissions

courses.view_course

minItems

1

role_extensions#

Changes to static roles defined in this file or another contribution.

type

array

examples

role

course_editor

add_permissions

courses.export_course

minItems

1

Permission category fields#

Category id#

The global category identifier.

examples

course_content

#/$defs/identifier

Category display_name#

examples

Course content

#/$defs/display_name

Category description#

examples

Permissions for viewing and editing course content.

#/$defs/description

Category icon#

examples

Article

#/$defs/icon

Permission fields#

Permission namespace#

The stable product domain that owns the permission.

examples

courses

#/$defs/identifier

Permission name#

The operation within the product domain, normally beginning with a verb.

examples

view_course

#/$defs/identifier

Permission display_name#

examples

View course

#/$defs/display_name

Permission description#

examples

View course configuration and content.

#/$defs/description

Permission category#

The ID of a permission category in the combined schema.

examples

course_content

#/$defs/identifier

Permission scopes#

The scope namespaces where this permission can apply.

examples

course-v1

#/$defs/scope_list

Permission icon#

examples

Visibility

#/$defs/icon

Role fields#

Role id#

The stable role identifier.

examples

course_observer

#/$defs/identifier

Role display_name#

examples

Course observer

#/$defs/display_name

Role description#

examples

Reviews a course without changing it.

#/$defs/description

Role scopes#

The scope namespaces where this role can be assigned.

examples

course-v1

#/$defs/scope_list

Role permissions#

Every permission assigned to this role. Permissions are not inferred from other permissions.

examples

courses.view_course

#/$defs/permission_list

Role icon#

examples

Visibility

#/$defs/icon

Role hidden#

Whether normal role discovery and selection interfaces omit this role.

type

boolean

examples

False

default

False

Role extension fields#

Extension role#

The ID of the static role to change.

examples

course_editor

#/$defs/identifier

Extension add_permissions#

Complete permission IDs to add to the role.

examples

courses.export_course

#/$defs/permission_list

Extension remove_permissions#

Complete permission IDs to remove from the role.

examples

courses.manage_tags

#/$defs/permission_list

Extension display_name#

A replacement source-language display name.

examples

Course author

#/$defs/display_name

Extension description#

A replacement source-language description.

examples

Creates and exports course content.

#/$defs/description

Extension icon#

A replacement Paragon icon name.

examples

Edit

#/$defs/icon

Extension hidden#

Whether normal role discovery and selection interfaces omit this role.

type

boolean

examples

True