Search Results for

    Show / Hide Table of Contents

    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. See Dependency Installation Attributes for optional dependency installation behavior.
    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. An optional inspect attribute can be set to false to prevent Intent Architect from inspecting the DLL for Intent-related content and components.
    interoperability Defines integration rules that automatically install complementary modules when specific modules are detected. When a module with a matching detect ID is installed, the specified packages are automatically installed to provide interoperability between independent modules.
    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.

    Dependency Installation Attributes

    The dependencies element supports optional attributes to control how dependent modules are installed:

    • metadataOnly="true": Installs the referenced module and its dependencies with only module metadata being installed. Dependencies already installed without this option set will not be changed.
    • includeAssets="...": Installs the referenced module with a semicolon-separated list of installation assets.

    Valid includeAssets values are:

    • factoryExtensions
    • applicationSettings
    • designerMetadata
    • designers
    • templateOutputs

    These values align with the Installation Settings options described in About Modules.

    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>
      <interoperability>
        <detect id="Intent.DomainEvents">
          <install>
            <package id="Intent.EntityFrameworkCore.Interop.DomainEvents" version="4.1.0" />
          </install>
        </detect>
        <detect id="Intent.Entities">
          <install>
            <package id="Intent.Entities" version="4.4.2" />
          </install>
        </detect>
      </interoperability>
      <moduleSettings/>
      <moduleSettingsExtensions />
    </package>
    
    • Edit this page
    ☀
    ☾
    In this article
    Back to top Copyright © 2017-, Intent Architect Holdings Ltd