Jesús Pérez 6a59d34bb1
chore: update provisioning configuration and documentation
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.
2025-12-11 21:50:42 +00:00

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"
]
}