Invowkmod Schema Reference
:::warning Alpha — Schema May Change The invowkmod schema is still evolving. Fields, types, and validation rules may change between releases as we stabilize the format. Always check the changelog when upgrading. :::
Complete reference for invowkmod.cue, the module metadata file. Module metadata is validated as a closed struct, so unknown fields cause a validation error.
Root Structure
Every module must include an invowkmod.cue file with this structure:
#Invowkmod: {
module: string // Required - module identifier
version: string // Required - semver version (e.g., "1.0.0")
description?: string // Optional - module description
author?: string // Optional - author or maintainer
license?: string // Optional - SPDX license identifier
repository?: string // Optional - canonical source URL
requires?: [...#ModuleRequirement] // Optional - dependencies
}
module
Type: string (pattern: ^[a-zA-Z][a-zA-Z0-9]*(\.[a-zA-Z][a-zA-Z0-9]*)*$)
Required: Yes
The module identifier. It must match the folder name prefix (before .invowkmod).
module: "mytools"
module: "com.company.devtools"
module: "io.github.username.cli"
version
Type: string (pattern: ^(0|[1-9][0-9]*)\.(0|[1-9][0-9]*)\.(0|[1-9][0-9]*)(-[0-9a-zA-Z-]+(\.[0-9a-zA-Z-]+)*)?$)
Required: Yes
Module version in semver format (e.g., "1.0.0", "2.1.0-beta.1").
description
Type: string
Required: No
A short summary of the module's purpose.
author
Type: string
Required: No
Module author or maintainer (free-form text, typically "Name <email>" or organization name).
license
Type: string
Required: No
Module license using an SPDX identifier (e.g., "MIT", "Apache-2.0", "MPL-2.0").
repository
Type: string (pattern: ^(https://|git@|ssh://))
Required: No
Canonical source URL for this module. Only https://, git@, and ssh:// schemes are accepted.
requires
Type: [...#ModuleRequirement]
Required: No
List of module dependencies from Git repositories.
requires: [
{
git_url: "https://github.com/example/common.invowkmod.git"
version: "^1.0.0"
alias: "common"
},
]
ModuleRequirement
Defines a single dependency entry:
#ModuleRequirement: {
git_url: string
version: string
alias?: string
path?: string
}
git_url
Type: string
Required: Yes
Git repository URL. Accepted forms: HTTPS (https://...), SSH shorthand (git@...), or SSH URI (ssh://...). The repository must contain a module.
version
Type: string
Required: Yes
Semantic version constraint used to resolve a Git tag.
alias
Type: string
Required: No
Overrides the default namespace for this dependency (must follow module naming rules).
path
Type: string
Required: No
Subdirectory within the repository that contains the module. Must be relative and cannot contain path traversal sequences.