Isaac Manifest Template
Overview
The Isaac Manifest Template provides the foundational structure for the isaac_manifest.json file that serves as the central configuration for cross-platform installer generation. This template ensures consistency and completeness across all project configurations.
Template Structure
Complete Isaac Manifest Template
{
"manifest_version": "1.0.0",
"generated_at": "{{current_timestamp}}",
"generated_by": "I.S.A.A.C. v{{isaac_version}}",
"project": {
"name": "{{project_name}}",
"version": "{{project_version}}",
"description": "{{project_description}}",
"author": "{{project_author}}",
"license": "{{project_license}}",
"homepage": "{{project_homepage}}",
"repository": {
"type": "{{repository_type}}",
"url": "{{repository_url}}"
},
"keywords": [{{#each project_keywords}}"{{this}}"{{#unless @last}},{{/unless}}{{/each}}]
},
"technology_stack": {
"language": "{{detected_language}}",
"version": "{{language_version}}",
"framework": "{{detected_framework}}",
"framework_version": "{{framework_version}}",
"package_manager": "{{detected_package_manager}}",
"build_system": "{{build_system}}",
"runtime_environment": "{{runtime_environment}}",
"additional_tools": [
{{#each additional_tools}}
{
"name": "{{name}}",
"version": "{{version}}",
"required": {{required}}
}{{#unless @last}},{{/unless}}
{{/each}}
]
},
"dependencies": {
"runtime": [
{{#each runtime_dependencies}}
{
"name": "{{name}}",
"version": "{{version}}",
"required": {{required}},
"description": "{{description}}",
"platform_specific": {
"windows": {
"package_name": "{{windows.package_name}}",
"package_manager": "{{windows.package_manager}}",
"install_command": "{{windows.install_command}}",
"verify_command": "{{windows.verify_command}}",
"uninstall_command": "{{windows.uninstall_command}}"
},
"linux": {
"package_name": "{{linux.package_name}}",
"package_manager": "{{linux.package_manager}}",
"install_command": "{{linux.install_command}}",
"verify_command": "{{linux.verify_command}}",
"uninstall_command": "{{linux.uninstall_command}}",
"distributions": {
"ubuntu": {
"package_name": "{{linux.ubuntu.package_name}}",
"install_command": "{{linux.ubuntu.install_command}}"
},
"centos": {
"package_name": "{{linux.centos.package_name}}",
"install_command": "{{linux.centos.install_command}}"
}
}
},
"macos": {
"package_name": "{{macos.package_name}}",
"package_manager": "{{macos.package_manager}}",
"install_command": "{{macos.install_command}}",
"verify_command": "{{macos.verify_command}}",
"uninstall_command": "{{macos.uninstall_command}}"
}
}
}{{#unless @last}},{{/unless}}
{{/each}}
],
"system": [
{{#each system_dependencies}}
{
"name": "{{name}}",
"description": "{{description}}",
"required": {{required}},
"minimum_version": "{{minimum_version}}",
"platform_availability": {
"windows": "{{windows_availability}}",
"linux": "{{linux_availability}}",
"macos": "{{macos_availability}}"
}
}{{#unless @last}},{{/unless}}
{{/each}}
],
"development": [
{{#each development_dependencies}}
{
"name": "{{name}}",
"version": "{{version}}",
"description": "{{description}}",
"optional": {{optional}}
}{{#unless @last}},{{/unless}}
{{/each}}
]
},
"configurable_parameters": [
{{#each configurable_parameters}}
{
"name": "{{name}}",
"type": "{{type}}",
"description": "{{description}}",
"default": {{#if (eq type "string")}}"{{default}}"{{else}}{{default}}{{/if}},
"required": {{required}},
"validation": {
{{#if validation.pattern}}"pattern": "{{validation.pattern}}",{{/if}}
{{#if validation.min}}"min": {{validation.min}},{{/if}}
{{#if validation.max}}"max": {{validation.max}},{{/if}}
{{#if validation.choices}}"choices": [{{#each validation.choices}}"{{this}}"{{#unless @last}},{{/unless}}{{/each}}]{{/if}}
},
"prompt": "{{prompt}}",
"help": "{{help}}",
{{#if depends_on}}"depends_on": "{{depends_on}}",{{/if}}
"category": "{{category}}"
}{{#unless @last}},{{/unless}}
{{/each}}
],
"target_platforms": [
{{#each target_platforms}}
{
"name": "{{name}}",
"display_name": "{{display_name}}",
"architecture": "{{architecture}}",
"os_family": "{{os_family}}",
"shell": "{{shell}}",
"template": "{{template}}",
"package_managers": [{{#each package_managers}}"{{this}}"{{#unless @last}},{{/unless}}{{/each}}],
"service_manager": "{{service_manager}}",
"supported": {{supported}},
"requirements": [{{#each requirements}}"{{this}}"{{#unless @last}},{{/unless}}{{/each}}]
}{{#unless @last}},{{/unless}}
{{/each}}
],
"installation_steps": [
{{#each installation_steps}}
{
"name": "{{name}}",
"description": "{{description}}",
"order": {{order}},
"required": {{required}},
"category": "{{category}}",
{{#if depends_on}}"depends_on": [{{#each depends_on}}"{{this}}"{{#unless @last}},{{/unless}}{{/each}}],{{/if}}
"commands": {
"windows": "{{commands.windows}}",
"linux": "{{commands.linux}}",
"macos": "{{commands.macos}}"
},
"validation": {
"windows": "{{validation.windows}}",
"linux": "{{validation.linux}}",
"macos": "{{validation.macos}}"
},
{{#if rollback}}"rollback": {
"windows": "{{rollback.windows}}",
"linux": "{{rollback.linux}}",
"macos": "{{rollback.macos}}"
},{{/if}}
"timeout": {{timeout}},
"retry_count": {{retry_count}},
"critical": {{critical}}
}{{#unless @last}},{{/unless}}
{{/each}}
],
"configuration": {
"installer_settings": {
"interactive_mode": {{interactive_mode}},
"progress_reporting": {{progress_reporting}},
"log_level": "{{log_level}}",
"backup_existing": {{backup_existing}},
"rollback_on_failure": {{rollback_on_failure}},
"validate_after_install": {{validate_after_install}}
},
"security": {
"require_admin": {{require_admin}},
"verify_signatures": {{verify_signatures}},
"secure_temp_files": {{secure_temp_files}},
"credential_handling": "{{credential_handling}}"
},
"performance": {
"parallel_operations": {{parallel_operations}},
"download_timeout": {{download_timeout}},
"max_retries": {{max_retries}},
"cache_downloads": {{cache_downloads}}
}
},
"metadata": {
"created_at": "{{created_at}}",
"updated_at": "{{updated_at}}",
"isaac_version": "{{isaac_version}}",
"template_version": "{{template_version}}",
"checksum": "{{manifest_checksum}}",
"validation_status": "{{validation_status}}"
}
}Template Variables Reference
Project Information Variables
{{project_name}}- Name of the project/application{{project_version}}- Current version of the project{{project_description}}- Brief description of the project{{project_author}}- Author or organization name{{project_license}}- License type (MIT, Apache, etc.){{project_homepage}}- Project homepage URL{{repository_type}}- Version control system (git, svn, etc.){{repository_url}}- Repository URL{{project_keywords}}- Array of project keywords/tags
Technology Stack Variables
{{detected_language}}- Primary programming language{{language_version}}- Required language version{{detected_framework}}- Main framework used{{framework_version}}- Framework version requirement{{detected_package_manager}}- Package manager (npm, pip, etc.){{build_system}}- Build system (webpack, gradle, etc.){{runtime_environment}}- Runtime environment (node, jvm, etc.)
Dependency Variables
{{runtime_dependencies}}- Array of runtime dependencies{{system_dependencies}}- Array of system-level dependencies{{development_dependencies}}- Array of development dependencies
Configuration Variables
{{configurable_parameters}}- Array of user-configurable parameters{{target_platforms}}- Array of supported target platforms{{installation_steps}}- Array of installation step definitions
Metadata Variables
{{current_timestamp}}- Current timestamp in ISO format{{isaac_version}}- Version of I.S.A.A.C. generating the manifest{{created_at}}- Manifest creation timestamp{{updated_at}}- Last modification timestamp{{manifest_checksum}}- SHA-256 checksum of manifest content
Usage Examples
Basic Node.js Application Manifest
Python Django Application Manifest
Template Customization
Adding Custom Parameters
Platform-Specific Dependencies
Validation Rules
Required Fields
project.name- Must be a valid identifierproject.version- Must follow semantic versioningtechnology_stack.language- Must be a supported languagetarget_platforms- Must include at least one platform
Validation Constraints
Parameter names must be valid environment variable names
Version specifications must follow semantic versioning
Platform-specific commands must be valid for their respective shells
Installation step dependencies must form a valid directed acyclic graph
Best Practices
Manifest Organization
Logical Grouping: Group related parameters by category
Clear Descriptions: Provide helpful descriptions for all parameters
Sensible Defaults: Set appropriate default values for optional parameters
Validation Rules: Include proper validation for all user inputs
Platform Coverage: Ensure all target platforms are properly configured
Parameter Design
User-Friendly Names: Use clear, descriptive parameter names
Type Safety: Specify correct parameter types with validation
Help Text: Provide helpful guidance for complex parameters
Dependencies: Clearly define parameter dependencies
Categories: Organize parameters into logical categories
Maintenance
Version Control: Track manifest changes with version numbers
Documentation: Keep parameter documentation up to date
Testing: Validate manifest with different parameter combinations
Migration: Provide migration paths for manifest updates
Backup: Maintain backups of working manifest configurations
Last updated