{ "schemaVersion": 2, "kind": "ci-artifact-catalog", "purpose": "CI artifact catalog only. This file describes build inputs and image artifact naming; it does not describe runtime topology and does not replace deploy.json, config.json, or runtime manifests.", "summaryContract": { "requiredOnSuccess": [ "serviceId", "sourceCommit", "sourceRepo", "dockerfile", "imageRef", "tag", "digest", "digestRef" ], "fieldSemantics": { "serviceId": "Stable UniDesk service id for the artifact.", "sourceCommit": "Full 40-character Git commit used as the source and tag.", "sourceRepo": "Git repository URL used to materialize the source.", "dockerfile": "Repo-relative Dockerfile path used by CI.", "imageRef": "Commit-tagged image reference pushed by CI.", "tag": "Commit-pinned image tag; mutable tags such as latest are not valid.", "digest": "Registry manifest digest for the pushed image.", "digestRef": "Immutable image reference in repository@digest form." } }, "defaults": { "producer": "D601 Tekton CI", "registry": "127.0.0.1:5000", "tagTemplate": "{{sourceCommit}}", "mutableTagsAllowed": false, "runtimeFieldsForbidden": [ "providerId", "namespace", "ports", "composeService", "kubernetesService", "healthPath", "replicas", "env", "volumes" ] }, "artifacts": [ { "serviceId": "backend-core", "kind": "source-build", "status": "supported", "producer": "ci publish-backend-core", "source": { "repo": "https://github.com/pikasTech/unidesk", "dockerfile": "src/components/backend-core/Dockerfile" }, "image": { "repository": "unidesk/backend-core" }, "notes": "Rust backend-core image creation is CI producer only. It is limited to dev image validation and artifact publication; this catalog does not authorize prod deployment verification." }, { "serviceId": "frontend", "kind": "source-build", "status": "supported", "producer": "ci publish-user-service", "source": { "repo": "https://github.com/pikasTech/unidesk", "dockerfile": "src/components/frontend/Dockerfile" }, "image": { "repository": "unidesk/frontend" } }, { "serviceId": "baidu-netdisk", "kind": "source-build", "status": "supported", "producer": "ci publish-user-service", "source": { "repo": "https://github.com/pikasTech/unidesk", "dockerfile": "src/components/microservices/baidu-netdisk/Dockerfile" }, "image": { "repository": "unidesk/baidu-netdisk" } }, { "serviceId": "decision-center", "kind": "source-build", "status": "supported", "producer": "ci publish-user-service", "source": { "repo": "https://github.com/pikasTech/unidesk", "dockerfile": "src/components/microservices/decision-center/Dockerfile" }, "image": { "repository": "unidesk/decision-center" } }, { "serviceId": "project-manager", "kind": "source-build", "status": "supported", "producer": "ci publish-user-service", "source": { "repo": "https://github.com/pikasTech/unidesk", "dockerfile": "src/components/microservices/project-manager/Dockerfile" }, "image": { "repository": "unidesk/project-manager" } }, { "serviceId": "oa-event-flow", "kind": "source-build", "status": "supported", "producer": "ci publish-user-service", "source": { "repo": "https://github.com/pikasTech/unidesk", "dockerfile": "src/components/microservices/oa-event-flow/Dockerfile" }, "image": { "repository": "unidesk/oa-event-flow" } }, { "serviceId": "todo-note", "kind": "source-build", "status": "supported", "producer": "ci publish-user-service", "source": { "repo": "https://gitee.com/Lyon1998/todo_note", "dockerfile": "Dockerfile" }, "image": { "repository": "unidesk/todo-note" }, "notes": "External Gitee source repo. CI must fetch https://gitee.com/Lyon1998/todo_note at the requested commit and build that repo's Dockerfile; UniDesk only owns the runtime consumer metadata and Compose integration." }, { "serviceId": "code-queue-mgr", "kind": "source-build", "status": "supported", "producer": "ci publish-user-service", "source": { "repo": "https://github.com/pikasTech/unidesk", "dockerfile": "src/components/microservices/code-queue-mgr/Dockerfile" }, "image": { "repository": "unidesk/code-queue-mgr" }, "notes": "Main-server internal sidecar artifact producer. Dev artifact consumer validation is supported; prod live apply is supervisor-gated by the deploy/artifact-registry consumer." }, { "serviceId": "findjob", "kind": "source-build", "status": "supported", "producer": "ci publish-user-service", "source": { "repo": "https://gitee.com/Lyon1998/findjob", "dockerfile": "Dockerfile" }, "image": { "repository": "unidesk/findjob" }, "notes": "D601 direct Compose artifact consumer is implemented for plan/dry-run and dev validation. Live deploy requires a pre-existing labeled registry artifact for this external repo." }, { "serviceId": "pipeline", "kind": "source-build", "status": "supported", "producer": "ci publish-user-service", "source": { "repo": "https://github.com/pikasTech/pipeline", "dockerfile": "Dockerfile" }, "image": { "repository": "unidesk/pipeline" }, "notes": "D601 direct Compose artifact consumer is implemented for plan/dry-run and dev validation. Live deploy requires a pre-existing labeled registry artifact for this external repo." }, { "serviceId": "met-nonlinear", "kind": "source-build", "status": "supported", "producer": "ci publish-user-service", "source": { "repo": "https://github.com/pikasTech/met_nonlinear", "dockerfile": "docker/unidesk/Dockerfile.ml" }, "image": { "repository": "unidesk/met-nonlinear" }, "notes": "D601 direct Compose artifact consumer is plan/dry-run only until the long-running met-nonlinear-ts artifact contract is separated from the ML image Dockerfile." }, { "serviceId": "k3sctl-adapter", "kind": "source-build", "status": "supported", "producer": "ci publish-user-service", "source": { "repo": "https://github.com/pikasTech/unidesk", "dockerfile": "src/components/microservices/k3sctl-adapter/Dockerfile" }, "image": { "repository": "unidesk/k3sctl-adapter" }, "notes": "D601 direct Compose artifact consumer exposes plan/dry-run only; real prod deployment requires supervisor confirmation." }, { "serviceId": "mdtodo", "kind": "source-build", "status": "supported", "producer": "ci publish-user-service", "source": { "repo": "https://github.com/pikasTech/unidesk", "dockerfile": "src/components/microservices/mdtodo/Dockerfile" }, "image": { "repository": "unidesk/mdtodo" }, "notes": "D601 k3s-managed user-service artifact. Dev consumer targets unidesk-dev/mdtodo-dev; prod consumer targets unidesk/mdtodo." }, { "serviceId": "claudeqq", "kind": "source-build", "status": "supported", "producer": "ci publish-user-service", "source": { "repo": "https://gitee.com/lyon1998/agent_skills", "dockerfile": "claudeqq/Dockerfile" }, "image": { "repository": "unidesk/claudeqq" }, "notes": "External Gitee source repo. CI exports the claudeqq/ subtree and overlays the UniDesk Dockerfile plus adapter before building." }, { "serviceId": "code-queue", "kind": "source-build", "status": "supported", "producer": "ci publish-user-service", "source": { "repo": "https://github.com/pikasTech/unidesk", "dockerfile": "src/components/microservices/code-queue/Dockerfile" }, "image": { "repository": "unidesk/code-queue" }, "notes": "Artifact producer is allowed for dev image validation only. The CD consumer for code-queue is dev-only; production artifact deploy, rollout and manifest mutation remain unsupported." }, { "serviceId": "filebrowser", "kind": "upstream-image", "status": "blocked", "producer": "ci publish-user-service", "upstream": { "imageRef": "docker.io/filebrowser/filebrowser:v2.63.3", "digestRef": "docker.io/filebrowser/filebrowser@sha256:289c5dd677c56662440f26eeb44266ed9746fe563d2e9100f546bff558534d70", "sourceRepo": "https://github.com/filebrowser/filebrowser", "sourceRevision": "ca5e249e3c0c94159c2136a0cd431a424eb18472", "mirrorRepository": "upstream/filebrowser/filebrowser", "mirrorTag": "upstream-v2.63.3", "mirrorDigestRef": "127.0.0.1:5000/upstream/filebrowser/filebrowser@{{digest}}" }, "blockedReason": "File Browser uses an upstream image and must not be modeled as a UniDesk Dockerfile source build. Add a future upstream mirror producer before publishing it through CI." }, { "serviceId": "filebrowser-d601", "kind": "upstream-image", "status": "blocked", "producer": "ci publish-user-service", "upstream": { "imageRef": "docker.io/filebrowser/filebrowser:v2.63.3", "digestRef": "docker.io/filebrowser/filebrowser@sha256:289c5dd677c56662440f26eeb44266ed9746fe563d2e9100f546bff558534d70", "sourceRepo": "https://github.com/filebrowser/filebrowser", "sourceRevision": "ca5e249e3c0c94159c2136a0cd431a424eb18472", "mirrorRepository": "upstream/filebrowser/filebrowser", "mirrorTag": "upstream-v2.63.3", "mirrorDigestRef": "127.0.0.1:5000/upstream/filebrowser/filebrowser@{{digest}}" }, "blockedReason": "File Browser D601 uses the same pinned upstream image as filebrowser and must not be modeled as a UniDesk Dockerfile source build. Add a future upstream mirror producer before publishing it through CI." } ] }