283 lines
12 KiB
JSON
283 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": "1e8d009",
|
|
"acceptanceLevel": "dev_artifact_publish",
|
|
"devOnly": true,
|
|
"prodDisabled": true,
|
|
"sourceContract": {
|
|
"status": "pass",
|
|
"documents": [
|
|
"docs/dev-acceptance-matrix.md",
|
|
"docs/m0-contract-audit.md",
|
|
"docs/artifact-catalog.md",
|
|
"docs/dev-artifact-publish.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 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": "pass",
|
|
"requirements": [
|
|
"Registry prefix is localhost or private/internal only.",
|
|
"Environment remains dev and namespace remains hwlab-dev.",
|
|
"PROD profile remains disabled.",
|
|
"No secret or token material is required by this workflow."
|
|
],
|
|
"summary": "Fatal DEV-only artifact preconditions passed."
|
|
},
|
|
"blockers": [
|
|
{
|
|
"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."
|
|
},
|
|
{
|
|
"type": "runtime_blocker",
|
|
"scope": "hwlab-cli",
|
|
"status": "open",
|
|
"summary": "tools/hwlab-cli declares bin/hwlab-cli.mjs but the bin file is absent; a health-only placeholder image was not built as a real CLI artifact."
|
|
}
|
|
],
|
|
"artifactPublish": {
|
|
"issue": "pikasTech/HWLAB#35",
|
|
"status": "blocked",
|
|
"mode": "publish",
|
|
"repo": "pikasTech/HWLAB",
|
|
"sourceCommitId": "1e8d009e9531d71cef0762998663b4e3731032c6",
|
|
"registryPrefix": "127.0.0.1:5000/hwlab",
|
|
"baseImage": "node:22-bookworm-slim",
|
|
"environment": "dev",
|
|
"serviceCount": 13,
|
|
"builtCount": 9,
|
|
"publishedCount": 9,
|
|
"generatedAt": "2026-05-21T16:39:23.804Z",
|
|
"services": [
|
|
{
|
|
"serviceId": "hwlab-cloud-api",
|
|
"status": "published",
|
|
"image": "127.0.0.1:5000/hwlab/hwlab-cloud-api:1e8d009",
|
|
"imageTag": "1e8d009",
|
|
"digest": "sha256:daa3e09996209242ae409f21802757cfab20fe80adfdcc729dc7144a0758a067",
|
|
"repositoryDigest": "127.0.0.1:5000/hwlab/hwlab-cloud-api@sha256:daa3e09996209242ae409f21802757cfab20fe80adfdcc729dc7144a0758a067",
|
|
"runtimeKind": "node-command",
|
|
"implementationState": "repo-entrypoint",
|
|
"entrypoint": "cmd/hwlab-cloud-api/main.mjs",
|
|
"localImageId": "sha256:cfa8de38b9113365764a2a7dffb8732e7049d77ba83329eb5f7f29167dfa13e9"
|
|
},
|
|
{
|
|
"serviceId": "hwlab-cloud-web",
|
|
"status": "published",
|
|
"image": "127.0.0.1:5000/hwlab/hwlab-cloud-web:1e8d009",
|
|
"imageTag": "1e8d009",
|
|
"digest": "sha256:267de8af9ef4ff2bc60e197ca37f266ab49e75d49cce91909dda64715d47c0c8",
|
|
"repositoryDigest": "127.0.0.1:5000/hwlab/hwlab-cloud-web@sha256:267de8af9ef4ff2bc60e197ca37f266ab49e75d49cce91909dda64715d47c0c8",
|
|
"runtimeKind": "cloud-web",
|
|
"implementationState": "static-web-wrapper",
|
|
"entrypoint": "web/hwlab-cloud-web/index.html",
|
|
"localImageId": "sha256:d4bd2ef29fda976ad162092cd95197e130a7ade811aa11784b8396c0ef979884"
|
|
},
|
|
{
|
|
"serviceId": "hwlab-agent-mgr",
|
|
"status": "published",
|
|
"image": "127.0.0.1:5000/hwlab/hwlab-agent-mgr:1e8d009",
|
|
"imageTag": "1e8d009",
|
|
"digest": "sha256:12510042c5ab96419b4eafa52314ad58e17e1d1c5a0fbebe4cb6cd50e8935a5a",
|
|
"repositoryDigest": "127.0.0.1:5000/hwlab/hwlab-agent-mgr@sha256:12510042c5ab96419b4eafa52314ad58e17e1d1c5a0fbebe4cb6cd50e8935a5a",
|
|
"runtimeKind": "node-command",
|
|
"implementationState": "repo-entrypoint",
|
|
"entrypoint": "cmd/hwlab-agent-mgr/main.mjs",
|
|
"localImageId": "sha256:58ac216ee9faee27e1bcb569d5ce36166d8344aab24c7e4ab69781ef4356e70d"
|
|
},
|
|
{
|
|
"serviceId": "hwlab-agent-worker",
|
|
"status": "published",
|
|
"image": "127.0.0.1:5000/hwlab/hwlab-agent-worker:1e8d009",
|
|
"imageTag": "1e8d009",
|
|
"digest": "sha256:1cbfd4840ca567539f5eab5df2e301b4c1e263555b1a1f160900996bc6895c07",
|
|
"repositoryDigest": "127.0.0.1:5000/hwlab/hwlab-agent-worker@sha256:1cbfd4840ca567539f5eab5df2e301b4c1e263555b1a1f160900996bc6895c07",
|
|
"runtimeKind": "node-command",
|
|
"implementationState": "repo-entrypoint",
|
|
"entrypoint": "cmd/hwlab-agent-worker/main.mjs",
|
|
"localImageId": "sha256:44fad5f75ce63c82e052827c4536be1c70b08a48d8962da78094a29a6822070e"
|
|
},
|
|
{
|
|
"serviceId": "hwlab-gateway",
|
|
"status": "published",
|
|
"image": "127.0.0.1:5000/hwlab/hwlab-gateway:1e8d009",
|
|
"imageTag": "1e8d009",
|
|
"digest": "sha256:b6e6213e03773539ab21691bdee973338e270cf639b1deccb8c6d904278a43d8",
|
|
"repositoryDigest": "127.0.0.1:5000/hwlab/hwlab-gateway@sha256:b6e6213e03773539ab21691bdee973338e270cf639b1deccb8c6d904278a43d8",
|
|
"runtimeKind": "node-command",
|
|
"implementationState": "repo-entrypoint",
|
|
"entrypoint": "cmd/hwlab-gateway/main.mjs",
|
|
"localImageId": "sha256:ea0301dd293a71de84642b1d21682e8575219e08c221ccfb637bef7a1ce39c52"
|
|
},
|
|
{
|
|
"serviceId": "hwlab-gateway-simu",
|
|
"status": "published",
|
|
"image": "127.0.0.1:5000/hwlab/hwlab-gateway-simu:1e8d009",
|
|
"imageTag": "1e8d009",
|
|
"digest": "sha256:8d54ea760cdad2a418660e7d6293ae493d86b2173db0ec0be00ad49d63bb7aaf",
|
|
"repositoryDigest": "127.0.0.1:5000/hwlab/hwlab-gateway-simu@sha256:8d54ea760cdad2a418660e7d6293ae493d86b2173db0ec0be00ad49d63bb7aaf",
|
|
"runtimeKind": "node-command",
|
|
"implementationState": "repo-entrypoint",
|
|
"entrypoint": "cmd/hwlab-gateway-simu/main.mjs",
|
|
"localImageId": "sha256:38736ba8ca348d8c7527a94378b509be879ce338f36596be91f756c88a78ff96"
|
|
},
|
|
{
|
|
"serviceId": "hwlab-box-simu",
|
|
"status": "published",
|
|
"image": "127.0.0.1:5000/hwlab/hwlab-box-simu:1e8d009",
|
|
"imageTag": "1e8d009",
|
|
"digest": "sha256:e18223e56d7b443dd0d5b3bccbd1ebc7964ef188c39d85750c1d82659634d861",
|
|
"repositoryDigest": "127.0.0.1:5000/hwlab/hwlab-box-simu@sha256:e18223e56d7b443dd0d5b3bccbd1ebc7964ef188c39d85750c1d82659634d861",
|
|
"runtimeKind": "node-command",
|
|
"implementationState": "repo-entrypoint",
|
|
"entrypoint": "cmd/hwlab-box-simu/main.mjs",
|
|
"localImageId": "sha256:7e9db37e7ad184c8fea659675385dc5dc1078c29e4108cf9e605495699570c8c"
|
|
},
|
|
{
|
|
"serviceId": "hwlab-patch-panel",
|
|
"status": "published",
|
|
"image": "127.0.0.1:5000/hwlab/hwlab-patch-panel:1e8d009",
|
|
"imageTag": "1e8d009",
|
|
"digest": "sha256:2cbf98f534cd31f86df9d656f40fb883bf40582dae4a4b3615c8c0db187d85fc",
|
|
"repositoryDigest": "127.0.0.1:5000/hwlab/hwlab-patch-panel@sha256:2cbf98f534cd31f86df9d656f40fb883bf40582dae4a4b3615c8c0db187d85fc",
|
|
"runtimeKind": "node-command",
|
|
"implementationState": "repo-entrypoint",
|
|
"entrypoint": "cmd/hwlab-patch-panel/main.mjs",
|
|
"localImageId": "sha256:b7d11cf5683a3fc1a54029ecfd13bbf05353a33b2038ffa8a968f596c54bc864"
|
|
},
|
|
{
|
|
"serviceId": "hwlab-router",
|
|
"status": "blocked_missing_runtime",
|
|
"image": "127.0.0.1:5000/hwlab/hwlab-router:1e8d009",
|
|
"imageTag": "1e8d009",
|
|
"digest": "not_published",
|
|
"repositoryDigest": null,
|
|
"runtimeKind": "health-placeholder",
|
|
"implementationState": "missing-runtime-entrypoint",
|
|
"entrypoint": null
|
|
},
|
|
{
|
|
"serviceId": "hwlab-tunnel-client",
|
|
"status": "blocked_missing_runtime",
|
|
"image": "127.0.0.1:5000/hwlab/hwlab-tunnel-client:1e8d009",
|
|
"imageTag": "1e8d009",
|
|
"digest": "not_published",
|
|
"repositoryDigest": null,
|
|
"runtimeKind": "health-placeholder",
|
|
"implementationState": "missing-runtime-entrypoint",
|
|
"entrypoint": null
|
|
},
|
|
{
|
|
"serviceId": "hwlab-edge-proxy",
|
|
"status": "blocked_missing_runtime",
|
|
"image": "127.0.0.1:5000/hwlab/hwlab-edge-proxy:1e8d009",
|
|
"imageTag": "1e8d009",
|
|
"digest": "not_published",
|
|
"repositoryDigest": null,
|
|
"runtimeKind": "health-placeholder",
|
|
"implementationState": "missing-runtime-entrypoint",
|
|
"entrypoint": null
|
|
},
|
|
{
|
|
"serviceId": "hwlab-cli",
|
|
"status": "blocked_missing_runtime",
|
|
"image": "127.0.0.1:5000/hwlab/hwlab-cli:1e8d009",
|
|
"imageTag": "1e8d009",
|
|
"digest": "not_published",
|
|
"repositoryDigest": null,
|
|
"runtimeKind": "cli",
|
|
"implementationState": "library-only",
|
|
"entrypoint": "tools/hwlab-cli/lib/cli.mjs"
|
|
},
|
|
{
|
|
"serviceId": "hwlab-agent-skills",
|
|
"status": "published",
|
|
"image": "127.0.0.1:5000/hwlab/hwlab-agent-skills:1e8d009",
|
|
"imageTag": "1e8d009",
|
|
"digest": "sha256:46c3c8e24c3f696931599e40c21c66de98f1caf431a992f0a02e19dde67529b2",
|
|
"repositoryDigest": "127.0.0.1:5000/hwlab/hwlab-agent-skills@sha256:46c3c8e24c3f696931599e40c21c66de98f1caf431a992f0a02e19dde67529b2",
|
|
"runtimeKind": "skills-bundle",
|
|
"implementationState": "repo-bundle",
|
|
"entrypoint": "skills/hwlab-agent-runtime/SKILL.md",
|
|
"localImageId": "sha256:33d64850cc7dd4b86ca136ba7b8d6ff79cdffab1d30f2c90cd16693976739050"
|
|
}
|
|
],
|
|
"blockers": [
|
|
{
|
|
"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."
|
|
},
|
|
{
|
|
"type": "runtime_blocker",
|
|
"scope": "hwlab-cli",
|
|
"status": "open",
|
|
"summary": "tools/hwlab-cli declares bin/hwlab-cli.mjs but the bin file is absent; a health-only placeholder image was not built as a real CLI artifact.",
|
|
"next": "Add tools/hwlab-cli/bin/hwlab-cli.mjs that calls tools/hwlab-cli/lib/cli.mjs."
|
|
}
|
|
]
|
|
},
|
|
"notes": "DEV-only artifact report. Do not treat runtime placeholder images as real service implementations."
|
|
}
|