Skip to main content

Built-in Modules

The repository already contains a small built-in module set focused on packaging and publishing.

These modules are useful as reference implementations and as a base for more domain-specific project modules.

Built-in jobs

Packaging jobs

The following built-in packaging jobs are present:

  • ZipPackageFile
  • ZipPackageDirectory
  • RarPackageFile
  • RarPackageDirectory

These jobs accept either a file or a directory category and produce the archive item type.

They are intended for packaging outputs before transfer, release, or downstream consumption.

Publishing jobs

The following built-in publishing jobs are present:

  • PublishHttpPostFile
  • PublishHttpPostDirectory
  • PublishScpFile
  • PublishScpDirectory

These jobs publish artifacts through HTTP POST or SCP-style transfer.

The HTTP publishing jobs use PublishHttpPostConf, which currently exposes a server URL parameter.

The SCP publishing jobs use PublishScpConf, which currently exposes:

  • server IP
  • user
  • password

Built-in item types

The built-in module package also defines several artifact types that APIS can reason about.

Examples already present in the codebase include:

  • archive
  • post
  • scp
  • executable
  • model-3D
  • documentation
  • schema-pcb
  • bom-pcb
  • cpl-pcb
  • gerber-pcb
  • image

These item types map domain outputs into categories that APIS can connect inside a dependency graph.

What this means in practice

Even this early built-in module set already shows the intended APIS pattern:

  1. define artifact types
  2. define jobs that transform or publish them
  3. connect those jobs into a project flow
  4. let APIS keep downstream repositories synchronized with current outputs

For many projects, the next step will be adding custom modules for company-specific build steps, validation jobs, CAD exports, hardware deliverables, or release pipelines.