Metadata
Metadata is the foundation of content management in Bosca. It can reference internal or external content, serve as a container for content, all of which also serves for Workflow operations. Whether dealing with structured or unstructured data, Metadata provides the framework to manage and deliver this content effectively.
Core Metadata Features
Language Variants
Metadata supports language variants through the parent-child relationship model. A parent metadata item can have multiple
child variants, each representing the same content in different languages. This is implemented through the parent_id
field,
which links variant metadata to its parent.
Key characteristics of language variants:
- Each variant has its own unique ID but shares a common parent ID
- Variants are identified by their
language_tag
field - The
metadata_type
field distinguishes between standard metadata and variants - Workflows can be configured to automatically create or update variants when the parent content changes
Labels and Attributes
Metadata includes several ways to categorize, describe, and enhance content:
Labels
The labels
field allows for flexible tagging of metadata with arbitrary strings. Labels can be used for:
- Content categorization
- Filtering and searching
- Feature flagging
- Workflow triggers
Attributes
Metadata supports three types of attributes:
- General Attributes (
attributes
field): Custom JSON data specific to the content - System Attributes (
system_attributes
field): System-managed properties that control behavior - Item Attributes (
item_attributes
field): Properties specific to the content item type
These attribute systems provide a flexible way to extend metadata with custom properties without changing the core schema.
External Source Integration
Metadata can link to external content sources through:
source_id
: Unique identifier for the external source systemsource_identifier
: Content identifier within the external systemsource_url
: Direct URL to the content in the external system
This allows Bosca to integrate with and reference content from external systems while maintaining its own metadata layer.
Security Model
Permissions
Metadata implements a comprehensive permission system based on Bosca's security model:
- Permissions are assigned to Groups
- Principals (users) are assigned to Groups
- Metadata can have specific permissions for viewing, editing, managing, and deleting
This allows for fine-grained access control to metadata and its associated content.
Public Access Permutations
Metadata supports different levels of public access through three boolean flags:
public
: When true, allows unauthenticated access to metadata propertiespublic_content
: When true, allows unauthenticated access to the primary contentpublic_supplementary
: When true, allows unauthenticated access to supplementary content
These flags can be combined to create various access scenarios:
- Metadata only: Only basic information is publicly accessible
- Full content: Both metadata and primary content are publicly accessible
- Complete access: Metadata, primary content, and supplementary content are all publicly accessible
Public access is only granted when the metadata is in a published
state, which is controlled through workflows.
Content Types Built on Metadata
Bosca extends the Metadata model to support various specialized content types:
Documents
Documents extend Metadata to allow for quickly building structured, user-facing content, such as articles, videos, blog posts or other content designed for web pages or apps. Documents leverage content blocks that can be organized flexibly to control the ordering and flow of content. These blocks can include media ( video/audio), formatted text, images, and more.
Guides
Guides extend Metadata to support building cyclical or repeatable content experiences. Guides can be linear or calendar based. They leverage similar content blocks to documents and also include formats for creating engaging, short-form visual content like shorts or stories. Guides are ideal for multi-day studies, plans, devotionals, and daily story experiences.
Supplementary Content
In addition to primary content, Metadata supports Supplementary Content—auxiliary content generated by workflows. For example, if Metadata refers to an audio or video file, a Workflow can create a transcription of the content, which can then be stored as Supplementary Content within the Metadata system.
Workflow Integration
Metadata serves as the foundation for Workflows in Bosca. The Metadata model includes a workflow
field
that helps make the state of the metadata more known.
Workflows can be triggered automatically based on content traits or manually initiated. They can also manage state transitions for content, such as moving from draft to published status.
See the full schema: Full Schema