Skip to main content

Seed Project

Overview

A seed project has separate settings for the product, the CLI, and packaging:

File Description
package.json Product name, version, description, dependencies, and NPM scripts.
config/iocd.cli.config.json Components, app processing, license handling, and code signing.
config/forge.config.js Electron Forge makers, publishers, and packaging hooks.
config/iocd.license.key License key for io.Connect Desktop.

Platform settings belong in the modifications applied to the downloaded components. The CLI configuration controls how the project is prepared and built.

Basic Settings

The create command populates the product metadata in package.json. To change it, edit the corresponding fields:

{
    "name": "my-product-slug",
    "version": "1.0.0",
    "description": "My product description.",
    "productName": "My Product Name",
    "author": "My Company"
}
Property Type Description
"author" string Company name, also used to generate copyright information.
"description" string Product description in installers and metadata.
"name" string Product slug used for the executable and package names.
"productName" string Product name displayed to users.
"version" string Version of your platform distribution.

CLI Configuration

The iocd.cli.config.json file is located in the /config folder. The following example demonstrates how to select a component store and request the latest iocd component:

{
    "$schema": "../node_modules/@interopio/iocd-cli/dist/schemas/iocd.cli.config.schema.json",
    "components": {
        "store": {
            "github": {
                "repo": "interopio/iocd-components/releases"
            }
        },
        "list": {
            "iocd": "latest"
        }
    }
}

The "$schema" property enables completion and validation in editors that support JSON schemas. The schema is distributed in the /node_modules/@interopio/iocd-cli/dist/schemas folder.

ℹ️ For details on stores, versions, and component commands, see the Components section.

License Key

io.Connect Desktop requires a valid license key. The CLI prompts for the key during project creation and saves it to config/iocd.license.key. Replace the contents of this file when renewing or changing the license.

ℹ️ For details on obtaining a license key, contact us.

⚠️ Note that you must never commit iocd.license.key to your repository. Generated projects exclude this file via .gitignore.

For automation, supply the key via the IOCD_LICENSE_KEY environment variable. Store the value in the secret storage of your CI provider and make it available to the setup, test, and build steps that require it.

By default, the CLI writes the key to a license.key file in the resources folder of the iocd component when preparing the platform for development, testing, or a build, so the built packages include the license. To exclude the license from the packages, set the "copyLicenseToOutput" property of the "license" object in config/iocd.cli.config.json to false, then provide the license to users in another supported way. This setting also stops the copy in development mode:

{
    "license": {
        "copyLicenseToOutput": false
    }
}

ℹ️ For details on the generated workflow, see the Building for Production > CI/CD Automation section.