diff --git a/modules/mesh-delivery-indexer/internal/index/testdata/catalogue-a67f0196-audit-logger.module.json b/modules/mesh-delivery-indexer/internal/index/testdata/catalogue-a67f0196-audit-logger.module.json new file mode 100644 index 0000000..122b94e --- /dev/null +++ b/modules/mesh-delivery-indexer/internal/index/testdata/catalogue-a67f0196-audit-logger.module.json @@ -0,0 +1,69 @@ +{ + "module": "audit-logger", + "version": "1", + "slug": "audit", + "consumes": [ + "**" + ], + "build": { + "artifacts": [ + { + "name": "code", + "kind": "bundle", + "language": "typescript", + "entrypoints": [ + "index.js", + "tools/index.js" + ], + "loads": [ + "index.js", + "tools/index.js" + ], + "env": { + "AUDIT_LOG": "${dir:trail}/audit.log", + "AUDIT_SPOOL": "${dir:spool}" + } + } + ] + }, + "data": { + "own": [ + { + "id": "trail", + "path": "${dir:trail}", + "class": "valuable", + "why": "the audit trail, written nowhere else" + }, + { + "id": "spool", + "path": "${dir:spool}", + "class": "valuable", + "why": "events the trail could not take yet; after the bus gives one up, the only copy" + } + ] + }, + "resources": [ + { + "id": "state", + "type": "directory", + "mode": "0700", + "place": ".", + "unknown": "program" + }, + { + "id": "trail", + "type": "directory", + "mode": "0700", + "unknown": "program" + }, + { + "id": "spool", + "type": "directory", + "mode": "0700", + "unknown": "program" + } + ], + "capabilities": [ + "container-runtime" + ] +} diff --git a/modules/mesh-delivery-indexer/internal/index/testdata/catalogue-a67f0196-avahi.module.json b/modules/mesh-delivery-indexer/internal/index/testdata/catalogue-a67f0196-avahi.module.json new file mode 100644 index 0000000..de99c7c --- /dev/null +++ b/modules/mesh-delivery-indexer/internal/index/testdata/catalogue-a67f0196-avahi.module.json @@ -0,0 +1,43 @@ +{ + "module": "avahi", + "version": "1", + "capabilities": [ + "package-manager", + "service-manager" + ], + "tools": [ + "avahi_status", + "avahi_browse", + "avahi_resolve", + "avahi_services" + ], + "resources": [ + { + "id": "package", + "type": "package", + "package": "avahi" + }, + { + "id": "daemon", + "type": "service", + "unit": "avahi-daemon.service", + "state": "running", + "boot": "enabled" + } + ], + "build": { + "artifacts": [ + { + "name": "tools", + "kind": "bundle", + "language": "go", + "system": "arch", + "from": "cmd/avahi-tools", + "binary": "avahi-tools", + "loads": [ + "avahi-tools" + ] + } + ] + } +} diff --git a/modules/mesh-delivery-indexer/internal/index/testdata/catalogue-a67f0196-ca-trust.module.json b/modules/mesh-delivery-indexer/internal/index/testdata/catalogue-a67f0196-ca-trust.module.json new file mode 100644 index 0000000..b3c9dc9 --- /dev/null +++ b/modules/mesh-delivery-indexer/internal/index/testdata/catalogue-a67f0196-ca-trust.module.json @@ -0,0 +1,66 @@ +{ + "module": "ca-trust", + "version": "1", + "slug": "catrust", + "capabilities": [ + "service-manager" + ], + "requires": [ + "internal-acme-ca" + ], + "seats": [ + { + "name": "the-mesh-trust-anchor", + "scope": "node" + } + ], + "claims": [ + { + "name": "the-mesh-trust-anchor", + "scope": "node" + } + ], + "resources": [ + { + "id": "state", + "type": "directory", + "mode": "0700", + "place": ".", + "unknown": "program" + }, + { + "id": "anchor", + "type": "file", + "path": "${dir:state}/anchor", + "mode": "0755", + "template": "files/anchor" + }, + { + "id": "unit", + "type": "file", + "path": "/etc/systemd/system/mesh-ca-trust.service", + "mode": "0644", + "template": "files/mesh-ca-trust.service" + }, + { + "id": "trust", + "type": "service", + "unit": "mesh-ca-trust.service", + "state": "running", + "boot": "enabled", + "restart-on": [ + "anchor", + "unit" + ] + } + ], + "build": { + "artifacts": [ + { + "name": "files", + "kind": "archive", + "from": "files" + } + ] + } +} diff --git a/modules/mesh-delivery-indexer/internal/index/testdata/catalogue-a67f0196-netcheck.module.json b/modules/mesh-delivery-indexer/internal/index/testdata/catalogue-a67f0196-netcheck.module.json new file mode 100644 index 0000000..ec01003 --- /dev/null +++ b/modules/mesh-delivery-indexer/internal/index/testdata/catalogue-a67f0196-netcheck.module.json @@ -0,0 +1,57 @@ +{ + "module": "netcheck", + "version": "1", + "emits": [ + "tunnel.endpoint-changed", + "tunnel.handshake-stale", + "tunnel.handshake-fresh" + ], + "tools": [ + "netcheck_tunnel", + "netcheck_tcp", + "netcheck_dns", + "netcheck_http", + "netcheck_listening" + ], + "replaces": { + "netcheck_listening": [ + "ss -lunt", + "ss -ltn", + "netstat -lnt" + ], + "netcheck_dns": [ + "dig", + "nslookup" + ], + "netcheck_tunnel": [ + "wg show", + "wg show mesh0 dump" + ] + }, + "build": { + "artifacts": [ + { + "name": "tools-go", + "kind": "bundle", + "language": "go", + "system": "arch", + "from": "cmd/netcheck", + "binary": "netcheck", + "loads": [ + "netcheck" + ] + }, + { + "name": "tools-typescript", + "kind": "bundle", + "language": "typescript", + "entrypoints": [ + "tools/index.js" + ], + "loads": [ + "tools/index.js" + ] + } + ] + } +} diff --git a/modules/mesh-delivery-indexer/internal/index/testdata/controller-f2d7bc94-build-agent.module.json b/modules/mesh-delivery-indexer/internal/index/testdata/controller-f2d7bc94-build-agent.module.json new file mode 100644 index 0000000..5a550ef --- /dev/null +++ b/modules/mesh-delivery-indexer/internal/index/testdata/controller-f2d7bc94-build-agent.module.json @@ -0,0 +1,140 @@ +{ + "module": "build-agent", + "version": "1", + "slug": "agent", + "capabilities": [ + "container-runtime" + ], + "claims": [ + { + "name": "node-build-agent", + "scope": "node", + "serves": ["current", "kill", "pause", "resume"] + } + ], + "reads": [ + "mesh-delivery-gate.pulls", + "mesh-delivery.pulls" + ], + "requires": [ + "artifact-store", + { + "name": "npm-package-registry", + "optional": true + } + ], + "binds": { + "npm-package-registry": "${dir:mesh-state}/package-registry.json" + }, + "secrets": { + "npm-package-registry": "${dir:mesh-state}/package-registry.secret" + }, + "own-secrets": { + "broker": "${dir:mesh-state}/broker", + "genesis-package-registry": { + "path": "${dir:mesh-state}/genesis-package-registry.json", + "issued-by": "outside" + } + }, + "data": { + "own": [ + { + "id": "workspace", + "path": "${dir:workspace}", + "class": "cache", + "why": "a build's working copy, cloned again for every build" + }, + { + "id": "judge-cache", + "path": "${dir:judge-cache}", + "class": "cache", + "why": "the Go cache every merge check's judge is built with and the group judges kept per head; mounted into judge builds only, never into a check's containers (novox/hq ADR 0358 ยง6)" + } + ] + }, + "resources": [ + { + "id": "mesh-state", + "type": "directory", + "mode": "0700", + "place": "mesh" + }, + { + "id": "workspace", + "type": "directory", + "mode": "0700" + }, + { + "id": "judge-cache", + "type": "directory", + "mode": "0700" + }, + { + "id": "agent-env", + "type": "file", + "path": "${dir:mesh-state}/build-agent.env", + "mode": "0600", + "template": "files/build-agent.env" + }, + { + "id": "server", + "type": "container", + "name": "mesh-build-agent", + "artifact": "server", + "env-file": [ + "${dir:mesh-state}/build-agent.env" + ], + "volumes": [ + "${dir:mesh-state}:/run/mesh:ro", + "${dir:workspace}:${dir:workspace}", + "${dir:judge-cache}:${dir:judge-cache}", + "/var/run/docker.sock:/var/run/docker.sock" + ], + "restart-on": [ + "agent-env" + ], + "network": "host", + "health": { + "kind": "exec", + "command": "/usr/local/bin/mesh-builder ready", + "interval": "10s", + "timeout": "5s", + "looks": 3, + "grace": "60s" + }, + "busy": { + "command": "/usr/local/bin/mesh-builder busy" + } + } + ], + "build": { + "artifacts": [ + { + "name": "server", + "kind": "image", + "from": "Dockerfile", + "compiles": "cmd/mesh-builder", + "context": { + "seat": "git", + "repository": "novox/mesh-controller", + "ref": "main" + } + }, + { + "name": "files", + "kind": "archive", + "from": "files" + } + ], + "on": [ + { + "arg": "GO_BASE", + "image": "golang@sha256:8ac98ca534ac3f51e1f420a1dd2c15e74c75cfa0f23f3ad27eb5d7236c349a0c" + }, + { + "arg": "ALPINE_BASE", + "image": "alpine@sha256:d9e853e87e55526f6b2917df91a2115c36dd7c696a35be12163d44e6e2a4b6bc" + } + ] + } +}