GCC Build OSv0
/api

WorkstreamPackWorkstreamPack

retention: provenance

An installed instance of a versioned, opinionated bundle of workstreams + questions + suggested decisions + maturity rubric. Records WHICH pack was installed, at what version, against which registry hash (I14). Packs reference but cannot extend the central node-type vocabulary (I10).

RACI requirements

decision_maker
n/a
approver
n/a
reviewer
n/a
contributor
n/a
informed
n/a

JSON Schema

{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://gcc.bootminds.com/ontology/node-types/workstream_pack.json",
  "title": "WorkstreamPack",
  "description": "An installed instance of a versioned, opinionated bundle of workstreams + questions + suggested decisions + maturity rubric. Records WHICH pack was installed, at what version, against which registry hash (I14). Packs reference but cannot extend the central node-type vocabulary (I10).",
  "type": "object",
  "x-node-type": "WorkstreamPack",
  "x-lifecycle-state-machine": null,
  "x-raci-requirements": {
    "decision_maker": "n/a",
    "approver": "n/a",
    "reviewer": "n/a",
    "contributor": "n/a",
    "informed": "n/a"
  },
  "x-retention-class": "provenance",
  "required": [
    "node_id",
    "node_type",
    "tenant_id",
    "attributes",
    "state",
    "created_at",
    "created_by"
  ],
  "properties": {
    "node_id": {
      "type": "string",
      "format": "uuid"
    },
    "node_type": {
      "const": "WorkstreamPack"
    },
    "tenant_id": {
      "type": "string",
      "format": "uuid"
    },
    "state": {
      "type": "string",
      "enum": [
        "installed",
        "upgraded",
        "uninstalled"
      ],
      "description": "Pack installation lifecycle. 'upgraded' is transient (recorded at the moment a major-version migration runs); steady-state is 'installed' or 'uninstalled'. A formal pack-lifecycle state machine may emerge later."
    },
    "attributes": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "pack_id",
        "pack_version",
        "priority",
        "license",
        "registry_version_hash",
        "installed_at",
        "installed_by"
      ],
      "properties": {
        "pack_id": {
          "type": "string",
          "minLength": 1,
          "description": "Registry identifier of the pack (e.g., 'bootminds.it.v1', 'bootminds.pmo.v1'). NOT the per-instance node UUID."
        },
        "pack_version": {
          "type": "string",
          "pattern": "^\\d+\\.\\d+\\.\\d+(-[A-Za-z0-9.-]+)?$",
          "description": "Semver of the installed pack version."
        },
        "priority": {
          "type": "integer",
          "minimum": 0,
          "description": "Q10: pack-pack default precedence priority. Higher integers win on collision; ties resolve to install order; collisions emit PackCollisionDetected event."
        },
        "license": {
          "type": "string",
          "enum": [
            "proprietary",
            "BSL-1.1",
            "Apache-2.0",
            "MIT",
            "source-available-other"
          ],
          "description": "License declared in the pack manifest. Q5: IT pack proprietary for 12 months; PMO + Legal source-available (BSL) from launch; glide path to Apache by month 18."
        },
        "registry_version_hash": {
          "type": "string",
          "minLength": 1,
          "description": "I14: hash of the central node/edge/event/state-machine registry version that this pack was validated against at install time. Required for replay-safe pack uninstall across registry versions."
        },
        "installed_at": {
          "type": "string",
          "format": "date-time",
          "description": "Wall-clock time at which the pack was committed (post dry-run) into this tenant."
        },
        "installed_by": {
          "type": "string",
          "format": "uuid",
          "description": "Stakeholder UUID of the user who committed the pack install (typically a Tenant Admin or Bootminds Staff)."
        },
        "r2_artifact_key": {
          "type": "string",
          "description": "Optional R2 object key of the immutable pack artifact in the pack catalog. Provenance pointer to the exact bytes installed."
        },
        "upgrade_from_version": {
          "type": [
            "string",
            "null"
          ],
          "pattern": "^\\d+\\.\\d+\\.\\d+(-[A-Za-z0-9.-]+)?$",
          "description": "If this row records an upgrade, the prior semver. Null on initial install."
        }
      }
    },
    "created_at": {
      "type": "string",
      "format": "date-time"
    },
    "created_by": {
      "type": "string",
      "format": "uuid"
    },
    "updated_at": {
      "type": "string",
      "format": "date-time"
    }
  }
}