Manifest System — Aquilia Documentation
Comprehensive guide and documentation for Manifest System in the Aquilia framework. View API reference, examples, and implementation patterns.
AQUILARY / MANIFEST SYSTEM Manifest Loading & Validation The manifest system provides safe, import-free module discovery. By loading declarations lazily, Aquilia compiles dependency layouts without executing user module imports. ManifestLoader The ManifestLoader class parses manifest specifications from multiple sources. It accepts a list of sources—which can be direct Python manifest classes, absolute/relative paths to Python manifest files, or DSL (YAML/JSON) files: from aquilia.aquilary import ManifestLoader loader = ManifestLoader() # Load multiple modules from mixed sources (safe, no import side effects) manifests = loader.load_manifests( sources=[ "modules/auth/manifest.py", "modules/users/manifest.yaml", # DSL config support ], allow_fs_autodiscovery=True # Scan standard directories ) for m in manifests: print(f"Loaded: v [Origin: ]") Registry Validation Once loaded, the RegistryValidator inspects the manifest declarations. It compiles a validation report covering schema compatibility, route collisions, and duplicate app declarations: from aquilia.aquilary import RegistryValidator, RegistryMode validator = RegistryValidator(mode=RegistryMode.PROD) # Run validations on manifests report = validator.validate_manifests( manifests, config, workspace_modules=workspace_modules_config ) if report.has_errors(): raise Exception(report.to_exception()) Core Validation Rules Validation Code Focus Description DuplicateAppError Uniqueness Triggers if two modules declare the exact same name. RouteConflictError Routing Flags overlapping paths or colliding HTTP endpoint route templates. DependencyCycleError Topology Raised when circular dependencies exist between module imports. Overview Runtime Registry )
Go to Homepage