What is a channel?
A channel is a standalone educational content collection with:- Hierarchical content structure - Content organized in a tree of topics and resources
- Metadata and branding - Name, description, thumbnail, and language settings
- Version control - Track changes and publish new versions
- Access control - Manage editors and viewers with role-based permissions
- Publishing workflow - Separate staging and published versions
Channel model fields
TheChannel model defined in /models.py:1004 contains the following key fields:
Basic metadata
Content trees
Channels maintain multiple content trees for different purposes:Each tree serves a specific purpose:
- main_tree - The working version of your channel content
- staging_tree - Content prepared for publishing
- trash_tree - Deleted content (recoverable)
- previous_tree - Previous published version
- chef_tree - Content imported via ricecooker
- clipboard_tree - Temporary storage for copy/paste operations
Permissions
Publishing and versioning
Published metadata
These fields are calculated when a channel is published:Channel lifecycle
Creating a channel
When a channel is created (models.py:1235):
- A unique UUID is generated as the channel ID
- A
main_treeroot node is created automatically - A
trash_treeis created for deleted content - Content defaults are initialized from user preferences
Staging vs. published
Edit in main_tree
Content creators work in the
main_tree, making changes without affecting the published version.Prepare for publishing
Content is copied to
staging_tree when you initiate publishing. This allows validation before making content live.Publish
The staging tree is exported to a SQLite database and made available for Kolibri instances to import.
Channel versioning
Each time you publish a channel, the version number increments:ChannelVersion model (models.py:1548) tracks version-specific metadata:
Secret tokens
Channels use secret tokens for secure distribution:models.py:1394):
- Primary token - A human-readable proquint string (e.g., “lusab-babad”)
- Channel ID token - The channel UUID itself
Public vs. private channels
- Private channels - Only visible to editors and viewers
- Public channels - Listed in the public library, discoverable by anyone
Channel storage
Channels track storage usage for quota management:Related models
- Content nodes - The tree structure within channels
- Content types - Different kinds of resources
- Licensing - License requirements for channel content
Next steps
Content nodes
Learn about the MPTT tree structure for organizing content
Creating channels
Step-by-step guide to creating your first channel
