Artifact (kind: artifact)

A pinnable, named reference to something external strata doesn’t fetch or deploy itself — a container image today, possibly other identifiers later. Referenced by identity from anywhere in the solution: a store: artifact variable (an external provisioner’s own input) or a module service’s image (once that binding is wired up).

Schema

  • spec.image_name — the container image path (e.g. int-docker-test/src/acme.dispatcher.api) — identity, never overridden by a version pin

  • spec.image_tag — the tag/digest to deploy; may be blank until a real image exists. Overridden by kind: version’s spec.pins.artifacts[name] when set

  • spec.registry — free-text registry host, documentation only — not a remote reference (strata never fetches an image; the runtime pulls it at deploy time)

  • spec.integration — optional integration (capability: sources) providing registry credentials

  • spec.properties / spec.configuration / spec.custom — free-form/passthrough data, never merged

Example

apiVersion: strata.huybrechts.xyz/v2
kind: artifact
meta:
  name: dispatcher-api
spec:
  image_name: int-docker-test/src/acme.dispatcher.api
  image_tag: "1.4.2"
  registry: cdn-feeds.acme.com

Referenced from an environment’s variables:

variables:
  - key: DISPATCHER_API_IMAGE_TAG
    store: artifact
    value: dispatcher-api

Notes

  • Deliberately not built on SourceModel despite the surface similarity to its chart mode — a remote’s fetch describes who materializes bytes on disk, and strata never fetches a container image (the registry pulls it at deploy time, not strata at build time).

  • No chart mode: a chart pin already targets a real module document’s own spec.source.chart_version — fully served by the existing mechanism, not a gap this kind covers.