Update configuration files, templates, and internal documentation for the provisioning repository system. Configuration Updates: - KMS configuration modernization - Plugin system settings - Service port mappings - Test cluster topologies - Installation configuration examples - VM configuration defaults - Cedar authorization policies Documentation Updates: - Library module documentation - Extension API guides - AI system documentation - Service management guides - Test environment setup - Plugin usage guides - Validator configuration documentation All changes are backward compatible.
84 lines
3.2 KiB
Plaintext
84 lines
3.2 KiB
Plaintext
"""
|
|
KCL Version Management Schema for Provisioning System
|
|
Provides type-safe version definitions with GitHub release integration
|
|
"""
|
|
|
|
schema Version:
|
|
"""Version information for a component with optional GitHub integration"""
|
|
current: str # Version number (e.g., "1.31.0") or "latest"
|
|
source?: str # GitHub releases URL for automated checking
|
|
tags?: str # GitHub tags URL (alternative source)
|
|
site?: str # Official project website
|
|
check_latest?: bool = False # Enable automatic latest version checking
|
|
grace_period?: int = 86400 # Cache duration in seconds (24h default)
|
|
|
|
check:
|
|
len(current) > 0, "Version current field cannot be empty"
|
|
current == "latest" or current == "" or len(current.split(".")) >= 1, "Version must be semantic (x.y.z), 'latest', or empty"
|
|
|
|
schema TaskservVersion:
|
|
"""Complete taskserv version configuration with dependency tracking"""
|
|
name: str # Taskserv name (must match directory)
|
|
version: Version # Primary version configuration
|
|
dependencies?: [str] # Other taskservs this component depends on
|
|
profiles?: {str: Version} # Profile-specific version overrides
|
|
|
|
check:
|
|
len(name) > 0, "Taskserv name cannot be empty"
|
|
name == name.lower(), "Taskserv name must be lowercase"
|
|
|
|
schema VersionCache:
|
|
"""Cache structure for latest version lookups"""
|
|
version: str # Resolved version string
|
|
fetched_at: str # ISO timestamp of last fetch
|
|
source: str # Source URL used for resolution
|
|
ttl: int = 86400 # Time-to-live in seconds
|
|
|
|
check:
|
|
len(version) > 0, "Cached version cannot be empty"
|
|
len(source) > 0, "Cache source URL cannot be empty"
|
|
|
|
# Package metadata for core provisioning KCL module
|
|
schema PackageMetadata:
|
|
"""Core package metadata for distribution"""
|
|
name: str # Package name
|
|
version: str # Package version
|
|
api_version: str # API compatibility version
|
|
build_date: str # Build timestamp
|
|
kcl_min_version: str # Minimum KCL version required
|
|
kcl_max_version: str # Maximum KCL version supported
|
|
dependencies: {str: str} # External dependencies
|
|
features: {str: bool} # Feature flags
|
|
schema_exports: [str] # Available schema exports
|
|
|
|
check:
|
|
len(name) > 0, "Package name cannot be empty"
|
|
len(version) > 0, "Package version cannot be empty"
|
|
|
|
# Default package metadata
|
|
package_metadata: PackageMetadata = {
|
|
name = "provisioning"
|
|
version = "0.1.0"
|
|
api_version = "v1"
|
|
build_date = "2025-09-28"
|
|
kcl_min_version = "0.11.0"
|
|
kcl_max_version = "0.12.0"
|
|
dependencies = {}
|
|
features = {
|
|
server_management = True
|
|
cluster_orchestration = True
|
|
provider_abstraction = True
|
|
workflow_automation = True
|
|
batch_operations = True
|
|
}
|
|
schema_exports = [
|
|
"Settings"
|
|
"Server"
|
|
"Cluster"
|
|
"Provider"
|
|
"Workflow"
|
|
"BatchWorkflow"
|
|
"Version"
|
|
"PackageMetadata"
|
|
]
|
|
} |