Rusty Beam Schema Registry

This registry contains all microdata schemas used by Rusty Beam for configuration validation, plugin definitions, and data structures. Schemas use the https://rustybeam.net/schema/ namespace and support inheritance for extensibility.

Schema Types: Base Foundation schemas • Plugin Plugin configurations • Config Server configuration • Data Data structures • DataType Basic data types • Meta Schema definitions

38
Total Schemas
16
Plugin Schemas
7
Data Types
Inheritance Support

Base Schemas

Base

Plugin

Base schema for all Rusty Beam plugins. Defines core properties like library path and plugin name.

• library (URL, required)
• name (Text, optional)
Base schema (no parent)
Base

AuthPlugin

Base schema for authentication plugins. Extends Plugin with auth-specific properties.

• authfile (URL)
Inherits from: Plugin
Base

HandlerPlugin

Base schema for request handler plugins that process HTTP requests.

• root_dir (Text)
Inherits from: Plugin
Base

UtilityPlugin

Base schema for utility plugins that provide supporting functionality.

• enabled (Boolean)
Inherits from: Plugin

Plugin Schemas

Plugin

OAuth2Plugin

OAuth2 authentication plugin for user login via OAuth2 providers.

• client_id (Text)
• client_secret (Text)
• authorization_url (Text)
• token_url (Text)
• redirect_uri (Text)
• scope (Text)
Inherits from: AuthPluginPlugin
Plugin

BasicAuthPlugin

HTTP Basic Authentication plugin for simple username/password auth.

• challenge (Text)
Inherits from: AuthPluginPlugin
Plugin

AuthorizationPlugin

Role-based access control plugin for managing user permissions.

• authfile (URL)
Inherits from: Plugin
Plugin

FileHandlerPlugin

Static file serving plugin with directory browsing support.

• index_file (Text)
• hide_dotfiles (Text)
Inherits from: HandlerPluginPlugin
Plugin

SelectorHandlerPlugin

CSS selector-based HTML manipulation via HTTP Range headers.

• root_dir (Text)
Inherits from: HandlerPluginPlugin
Plugin

DirectoryPlugin

Directory listing and browsing plugin with customizable templates.

• directory (Text)
• nested_plugins (Text)
Inherits from: Plugin
Plugin

WebSocketPlugin

WebSocket support plugin for real-time bidirectional communication.

• max_connections (Number)
• ping_interval (Number)
• message_size_limit (Number)
• broadcast_buffer_size (Number)
Inherits from: Plugin
Plugin

RedirectPlugin

URL redirection plugin with pattern matching and response code triggers.

• config_file (URL)
Inherits from: Plugin
Plugin

ErrorHandlerPlugin

Custom error page plugin for handling HTTP error responses.

• error_404 (Text)
• error_403 (Text)
• error_500 (Text)
• error_502 (Text)
• error_503 (Text)
• log_errors (Boolean)
Inherits from: Plugin
Plugin

CorsPlugin

Cross-Origin Resource Sharing (CORS) support plugin.

• allowed_origins (Text)
• allowed_methods (Text)
• allowed_headers (Text)
• exposed_headers (Text)
• max_age (Number)
• allow_credentials (Boolean)
Inherits from: Plugin
Plugin

SecurityHeadersPlugin

Security headers plugin for CSP, HSTS, and other security policies.

• csp_policy (Text)
• hsts_max_age (Number)
• hsts_include_subdomains (Boolean)
• hsts_preload (Boolean)
• x_frame_options (Text)
• x_content_type_options (Boolean)
Inherits from: Plugin
Plugin

RateLimitPlugin

Token bucket rate limiting plugin for API protection.

• requests_per_minute (Number)
• burst_size (Number)
• per_ip (Text)
• whitelist (Text)
• blacklist (Text)
Inherits from: Plugin
Plugin

HealthCheckPlugin

Health check endpoint plugin for monitoring and load balancers.

• path (Text)
• response_body (Text)
• response_code (Text)
• check_interval (Text)
• detailed_checks (Boolean)
• check_disk_space (Boolean)
• min_disk_space_mb (Number)
Inherits from: UtilityPluginPlugin
Plugin

CompressionPlugin

Response compression plugin supporting gzip and deflate.

• types (Text)
• min_size (Number)
• max_size (Number)
• compression_level (Number)
Inherits from: Plugin
Plugin

AccessLogPlugin

Request logging plugin in Apache/NCSA Combined Log Format.

• logfile (URL)
• format (Text)
Inherits from: UtilityPluginPlugin
Plugin

ConfigReloadPlugin

Configuration hot-reload plugin via SIGHUP signal.

Inherits from: UtilityPluginPlugin

Configuration Schemas

Config

ServerConfig

Main server configuration including bind address, port, and daemon settings.

• serverRoot (Text)
• bindAddress (Text)
• bindPort (Number)
• daemonUser (Text)
• daemonGroup (Text)
• daemonPidFile (Text)
• daemonChownPidFile (Boolean)
Config

HostConfig

Virtual host configuration with hostname and plugin pipeline.

• hostname (Text)
• aliases (Text)
• hostRoot (Text)
• plugin (Plugin)
Config

PluginConfig

Container for plugin-specific configuration data.

• pluginName (Text)

Data Structure Schemas

Data

Credential

Authentication credentials for Basic Auth users.

• username (Text)
• password (Text)
• encryption (Text)
• role (Text, 0..n)
Data

AuthorizationRule

Access control rule defining paths, methods, and permissions.

• path (Text)
• method (Text)
• role (Text)
• username (Text)
• selector (Text)
• action (Permission)
Data

RedirectRule

URL redirection rule with pattern matching and status codes.

• from (Text)
• to (Text)
• status (Number)
Data

StreamItem

Activity stream item for logging and audit trails.

• method (Text)
• url (URL)
• timestamp (Text)
• body (Text)

Data Type Schemas

DataType

Text

Basic text string data type.

• Pattern: .*
• Base type: text
DataType

Number

Numeric data type for integers and decimals.

• Pattern: ^-?(?:0|[1-9]\d*)(?:\.\d+)?(?:[eE][+-]?\d+)?$
• Base type: number
DataType

Boolean

Boolean true/false data type.

• Pattern: ^(true|false|1|0|yes|no|on|off)$
• Base type: boolean
• Case insensitive
DataType

URL

URL/URI data type for web addresses.

• Pattern: validates URL format
• Base type: url
DataType

DateTime

ISO 8601 date and time data type.

• Pattern: ISO 8601 format
• Base type: datetime
DataType

Cardinal

Cardinality constraint data type.

• Pattern: ^(1|0\.\.1|0\.\.n|1\.\.n)$
• Base type: text
• Values: 1, 0..1, 0..n, 1..n
DataType

Permission

Permission action data type.

• Pattern: ^(?i)(allow|deny)$
• Base type: text
• Values: Allow, Deny
• Case insensitive

Meta Schemas

Meta

Schema

Meta-schema for defining schemas themselves.

• id (URL)
• name (Text)
• description (Text)
• property (Property, 0..n)
• parent (URL)
Meta

Property

Schema property definition including type and cardinality.

• name (Text)
• type (URL)
• cardinality (Cardinal)
• required (Boolean)
• description (Text)
Meta

DataType

Meta-schema for defining basic data types.

• id (URL)
• name (Text)
• baseType (Text)
• validationPattern (Text)
• constraints (Text, 0..n)
• description (Text)

Schema Usage Example

<!-- Credential with roles -->
<div itemscope itemtype="https://rustybeam.net/schema/Credential">
    <span itemprop="username">alice</span>
    <span itemprop="password">$2b$10$...</span>
    <span itemprop="encryption">bcrypt</span>
    <span itemprop="role">admin</span>
    <span itemprop="role">user</span>
</div>

<!-- Plugin configuration with inheritance -->
<td itemprop="plugin" itemscope itemtype="https://rustybeam.net/schema/BasicAuthPlugin">
    <span itemprop="library">file://./plugins/librusty_beam_basic_auth.so</span>
    <span itemprop="challenge">Please authenticate</span>
</td>