Module Manifest (.imodspec)
Every Module requires a Manifest .imodspec
file that contains module metadata needed for it to be consumed by Intent Architect.
This file is automatically generated and managed (for the most part) by the Module Builder. However, developers may wish to make changes in this file (e.g. add additional dependencies
, files
, etc.).
Manifest Metadata
The following table provides high level information on each of the tags in the .imodspec
file:
Tag | Description |
---|---|
id | The module identifier. This must be a unique string. |
version | The version of this module. If this value is changed, the Module Builder will only update it if the value specified in its metadata is higher. |
supportedClientVersions | The range of versions of Intent Architect that support this module. |
summary | A brief summary of what this module does. This is displayed in the Modules manager. |
description | A more detailed description of the module. |
authors | The authors of this module. |
iconUrl | The icon URL or base64 encoded image for the Module. |
projectUrl | The project URL for this module. |
tags | Tags that can be used for searching for this module. Note that this is currently not respected but will be in a later release of Intent Architect. |
releaseNotes | The inline release-notes or relative path to a file (e.g. release-notes.md ). Markdown is supported. The release notes can be viewed within Intent Architect in the Module details panel in the Modules manager. |
templates | The manifest of Templates contained in this module. |
decorators | The manifest of Decorators contained in this module. |
factoryExtensions | The manifest of Software Factory Extensions contained in this module. |
dependencies | The module dependencies and their minimum versions. The Module Builder will ignore any added dependencies or version updates that are higher than what the Module Builder is applying. A metadataOnly attribute with a value of true can be added to have the referenced module and its dependencies installed with the Install metadata only option set, dependencies which were already installed without the option set will not have the option changed. |
files | The executable .dll files that must be included in this module. If using an external library of framework, those executables will need to be registered here. |
metadata | Metadata (e.g. packages and designer settings) that must be included in this module. |
moduleSettings | Module settings that must be installed into the Settings page for the application. |
moduleSettingsExtensions | Extensions to existing Module settings that must be installed. |
Example Manifest .imodspec
file
An example .imodspec
file (tags with ...
indicate that their metadata has been excluded for brevity):
<?xml version="1.0" encoding="utf-8"?>
<package>
<id>Intent.AspNetCore.Controllers</id>
<version>3.3.6</version>
<supportedClientVersions>[3.3.0-pre.0, 4.0.0)</supportedClientVersions>
<summary>A generic controller pattern implementation using ASP.NET Core.</summary>
<description>A generic controller pattern implementation using ASP.NET Core.</description>
<authors>Intent Architect</authors>
<iconUrl>...</iconUrl>
<projectUrl>https://intentarchitect.com/</projectUrl>
<tags>AspNetCore Controllers</tags>
<releaseNotes>release-notes.md</release-notes>
<templates>
...
</templates>
<decorators>
...
<factoryExtensions></factoryExtensions>
<dependencies>
<dependency id="Intent.AspNetCore" version="3.3.6" />
<dependency id="Intent.Metadata.WebApi" version="3.3.4" metadataOnly="true" />
<dependency id="Intent.Modelers.Services" version="3.3.3" />
<dependency id="Intent.OutputManager.RoslynWeaver" version="3.3.2" />
</dependencies>
<files>
<file src="$outDir$/$id$.dll" />
<file src="$outDir$/$id$.pdb" />
</files>
<metadata>
...
</metadata>
<moduleSettings/>
<moduleSettingsExtensions />
</package>