Files
pikasTech-HWLAB/reports/dev-gate/dev-artifacts.json
T
2026-05-21 16:56:23 +00:00

303 lines
12 KiB
JSON

{
"$schema": "https://hwlab.pikastech.local/schemas/dev-artifact-publish.schema.json",
"$id": "https://hwlab.pikastech.local/reports/dev-gate/dev-artifacts.json",
"reportVersion": "v1",
"issue": "pikasTech/HWLAB#31",
"taskId": "dev-artifact-publish",
"commitId": "ad903a7",
"acceptanceLevel": "dev_artifact_publish",
"devOnly": true,
"prodDisabled": true,
"sourceContract": {
"status": "blocked",
"documents": [
"docs/dev-acceptance-matrix.md",
"docs/m0-contract-audit.md",
"docs/artifact-catalog.md",
"docs/dev-artifact-publish.md",
"docs/dev-base-image-preflight.md"
],
"summary": "DEV artifact publish evidence for pikasTech/HWLAB#35, stored in the DEV gate report envelope."
},
"validationCommands": [
"node --check scripts/dev-artifact-publish.mjs",
"node --check scripts/preflight-dev-base-image.mjs",
"node --check scripts/src/dev-base-image-preflight.mjs",
"node scripts/preflight-dev-base-image.mjs",
"node scripts/dev-artifact-publish.mjs --preflight --no-report",
"node --check scripts/validate-dev-gate-report.mjs",
"node scripts/validate-dev-gate-report.mjs"
],
"localSmoke": {
"status": "not_run",
"commands": [
"node scripts/m1-contract-smoke.mjs"
],
"evidence": [
"This report records artifact build/publish state only; local smoke remains a separate gate."
],
"summary": "Local smoke is not implied by artifact publication."
},
"dryRun": {
"status": "not_run",
"commands": [
"node tools/hwlab-cli/bin/hwlab-cli.mjs test e2e --env dev --mvp --dry-run"
],
"evidence": [
"This report records DEV artifact build/publish state only; deployment dry-run remains separate."
],
"summary": "DEV deploy dry-run is not implied by artifact publication."
},
"devPreconditions": {
"status": "blocked",
"requirements": [
"Registry prefix is localhost or private/internal only.",
"DEV builder base image preflight returns ready before build or publish.",
"Environment remains dev and namespace remains hwlab-dev.",
"PROD profile remains disabled.",
"No secret or token material is required by this workflow."
],
"summary": "Fatal preconditions blocked a full DEV artifact publish."
},
"blockers": [
{
"type": "environment_blocker",
"scope": "base-image",
"status": "open",
"summary": "HWLAB_DEV_BASE_IMAGE is not set and no local node:20-* image was found in the Docker image cache."
},
{
"type": "runtime_blocker",
"scope": "hwlab-router",
"status": "open",
"summary": "hwlab-router has no cmd/hwlab-router/main.mjs runtime entrypoint; a health-only placeholder image was not built as a real implementation."
},
{
"type": "runtime_blocker",
"scope": "hwlab-tunnel-client",
"status": "open",
"summary": "hwlab-tunnel-client has no cmd/hwlab-tunnel-client/main.mjs runtime entrypoint; a health-only placeholder image was not built as a real implementation."
},
{
"type": "runtime_blocker",
"scope": "hwlab-edge-proxy",
"status": "open",
"summary": "hwlab-edge-proxy has no cmd/hwlab-edge-proxy/main.mjs runtime entrypoint; a health-only placeholder image was not built as a real implementation."
}
],
"artifactPublish": {
"issue": "pikasTech/HWLAB#35",
"status": "blocked",
"mode": "preflight",
"repo": "pikasTech/HWLAB",
"sourceCommitId": "ad903a76e93bc8fab5c95138df15bfcb852bc339",
"registryPrefix": "127.0.0.1:5000/hwlab",
"baseImage": null,
"baseImagePreflight": {
"status": "blocked",
"imageSource": "none",
"requestedImage": null,
"localTag": null,
"imageId": null,
"repoDigests": [],
"publishUsable": false,
"blockers": [
"HWLAB_DEV_BASE_IMAGE is not set and no local node:20-* image was found in the Docker image cache."
],
"nextSteps": [
"Set HWLAB_DEV_BASE_IMAGE to an approved local DEV builder base image, or preload a local node:20-* image such as node:20-bookworm-slim.",
"Rerun this preflight and require status=ready before #35 artifact publish.",
"Do not use UniDesk runtime, Code Queue runner, backend-core, provider-gateway, or microservice-proxy images as substitutes."
],
"containerEngine": {
"command": "docker",
"available": true,
"version": "Docker version 26.1.5+dfsg1, build a72d7cd",
"errorCode": null,
"stderr": ""
}
},
"environment": "dev",
"serviceCount": 13,
"builtCount": 0,
"publishedCount": 0,
"generatedAt": "2026-05-21T16:53:05.962Z",
"services": [
{
"serviceId": "hwlab-cloud-api",
"status": "preflight_only",
"image": "127.0.0.1:5000/hwlab/hwlab-cloud-api:ad903a7",
"imageTag": "ad903a7",
"digest": "not_published",
"repositoryDigest": null,
"runtimeKind": "node-command",
"implementationState": "repo-entrypoint",
"entrypoint": "cmd/hwlab-cloud-api/main.mjs"
},
{
"serviceId": "hwlab-cloud-web",
"status": "preflight_only",
"image": "127.0.0.1:5000/hwlab/hwlab-cloud-web:ad903a7",
"imageTag": "ad903a7",
"digest": "not_published",
"repositoryDigest": null,
"runtimeKind": "cloud-web",
"implementationState": "static-web-wrapper",
"entrypoint": "web/hwlab-cloud-web/index.html"
},
{
"serviceId": "hwlab-agent-mgr",
"status": "preflight_only",
"image": "127.0.0.1:5000/hwlab/hwlab-agent-mgr:ad903a7",
"imageTag": "ad903a7",
"digest": "not_published",
"repositoryDigest": null,
"runtimeKind": "node-command",
"implementationState": "repo-entrypoint",
"entrypoint": "cmd/hwlab-agent-mgr/main.mjs"
},
{
"serviceId": "hwlab-agent-worker",
"status": "preflight_only",
"image": "127.0.0.1:5000/hwlab/hwlab-agent-worker:ad903a7",
"imageTag": "ad903a7",
"digest": "not_published",
"repositoryDigest": null,
"runtimeKind": "node-command",
"implementationState": "repo-entrypoint",
"entrypoint": "cmd/hwlab-agent-worker/main.mjs"
},
{
"serviceId": "hwlab-gateway",
"status": "preflight_only",
"image": "127.0.0.1:5000/hwlab/hwlab-gateway:ad903a7",
"imageTag": "ad903a7",
"digest": "not_published",
"repositoryDigest": null,
"runtimeKind": "node-command",
"implementationState": "repo-entrypoint",
"entrypoint": "cmd/hwlab-gateway/main.mjs"
},
{
"serviceId": "hwlab-gateway-simu",
"status": "preflight_only",
"image": "127.0.0.1:5000/hwlab/hwlab-gateway-simu:ad903a7",
"imageTag": "ad903a7",
"digest": "not_published",
"repositoryDigest": null,
"runtimeKind": "node-command",
"implementationState": "repo-entrypoint",
"entrypoint": "cmd/hwlab-gateway-simu/main.mjs"
},
{
"serviceId": "hwlab-box-simu",
"status": "preflight_only",
"image": "127.0.0.1:5000/hwlab/hwlab-box-simu:ad903a7",
"imageTag": "ad903a7",
"digest": "not_published",
"repositoryDigest": null,
"runtimeKind": "node-command",
"implementationState": "repo-entrypoint",
"entrypoint": "cmd/hwlab-box-simu/main.mjs"
},
{
"serviceId": "hwlab-patch-panel",
"status": "preflight_only",
"image": "127.0.0.1:5000/hwlab/hwlab-patch-panel:ad903a7",
"imageTag": "ad903a7",
"digest": "not_published",
"repositoryDigest": null,
"runtimeKind": "node-command",
"implementationState": "repo-entrypoint",
"entrypoint": "cmd/hwlab-patch-panel/main.mjs"
},
{
"serviceId": "hwlab-router",
"status": "preflight_only",
"image": "127.0.0.1:5000/hwlab/hwlab-router:ad903a7",
"imageTag": "ad903a7",
"digest": "not_published",
"repositoryDigest": null,
"runtimeKind": "health-placeholder",
"implementationState": "missing-runtime-entrypoint",
"entrypoint": null
},
{
"serviceId": "hwlab-tunnel-client",
"status": "preflight_only",
"image": "127.0.0.1:5000/hwlab/hwlab-tunnel-client:ad903a7",
"imageTag": "ad903a7",
"digest": "not_published",
"repositoryDigest": null,
"runtimeKind": "health-placeholder",
"implementationState": "missing-runtime-entrypoint",
"entrypoint": null
},
{
"serviceId": "hwlab-edge-proxy",
"status": "preflight_only",
"image": "127.0.0.1:5000/hwlab/hwlab-edge-proxy:ad903a7",
"imageTag": "ad903a7",
"digest": "not_published",
"repositoryDigest": null,
"runtimeKind": "health-placeholder",
"implementationState": "missing-runtime-entrypoint",
"entrypoint": null
},
{
"serviceId": "hwlab-cli",
"status": "preflight_only",
"image": "127.0.0.1:5000/hwlab/hwlab-cli:ad903a7",
"imageTag": "ad903a7",
"digest": "not_published",
"repositoryDigest": null,
"runtimeKind": "cli",
"implementationState": "repo-entrypoint",
"entrypoint": "tools/hwlab-cli/bin/hwlab-cli.mjs"
},
{
"serviceId": "hwlab-agent-skills",
"status": "preflight_only",
"image": "127.0.0.1:5000/hwlab/hwlab-agent-skills:ad903a7",
"imageTag": "ad903a7",
"digest": "not_published",
"repositoryDigest": null,
"runtimeKind": "skills-bundle",
"implementationState": "repo-bundle",
"entrypoint": "skills/hwlab-agent-runtime/SKILL.md"
}
],
"blockers": [
{
"type": "environment_blocker",
"scope": "base-image",
"status": "open",
"summary": "HWLAB_DEV_BASE_IMAGE is not set and no local node:20-* image was found in the Docker image cache.",
"next": "Set HWLAB_DEV_BASE_IMAGE to an approved local DEV builder base image, or preload a local node:20-* image such as node:20-bookworm-slim. Rerun this preflight and require status=ready before #35 artifact publish. Do not use UniDesk runtime, Code Queue runner, backend-core, provider-gateway, or microservice-proxy images as substitutes."
},
{
"type": "runtime_blocker",
"scope": "hwlab-router",
"status": "open",
"summary": "hwlab-router has no cmd/hwlab-router/main.mjs runtime entrypoint; a health-only placeholder image was not built as a real implementation.",
"next": "Add cmd/hwlab-router/main.mjs or a dedicated Dockerfile for hwlab-router."
},
{
"type": "runtime_blocker",
"scope": "hwlab-tunnel-client",
"status": "open",
"summary": "hwlab-tunnel-client has no cmd/hwlab-tunnel-client/main.mjs runtime entrypoint; a health-only placeholder image was not built as a real implementation.",
"next": "Add cmd/hwlab-tunnel-client/main.mjs or a dedicated Dockerfile for hwlab-tunnel-client."
},
{
"type": "runtime_blocker",
"scope": "hwlab-edge-proxy",
"status": "open",
"summary": "hwlab-edge-proxy has no cmd/hwlab-edge-proxy/main.mjs runtime entrypoint; a health-only placeholder image was not built as a real implementation.",
"next": "Add cmd/hwlab-edge-proxy/main.mjs or a dedicated Dockerfile for hwlab-edge-proxy."
}
]
},
"notes": "DEV-only artifact report. Do not treat runtime placeholder images as real service implementations."
}