OBS4: artifact-store-tools, mesh-watcher, minio and nfs-server ask findings and finding-events in requires

Builds: design 47 G §529, §387

Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
This commit is contained in:
2026-11-11 15:48:35 +01:00
parent 76be864bff
commit 26c82a507a
5 changed files with 93 additions and 48 deletions
@@ -480,8 +480,13 @@ func TestTheToolsServedAreTheToolsTheManifestNames(t *testing.T) {
}
// The operator, 2026-11-04 (issue 1966): it reaches the store through the registry seats' verbs, and requires no
// provision artifact-store.
if len(m.Requires) != 0 {
t.Errorf("requires %v, want nothing: the store is reached through the registry seats", m.Requires)
// What it requires is its finding state and stream alone, in their template form (design 47 G §529).
var required []string
for _, r := range m.Requires {
required = append(required, fmt.Sprint(r.(map[string]any)["name"]))
}
if !reflect.DeepEqual(required, []string{"findings", "finding-events"}) {
t.Errorf("requires %v, want its findings and finding-events alone: the store is reached through the registry seats", m.Requires)
}
// Its address file is filled from the image seat holder's listen (ADR 0632 §1), never by the retired provision.
address, err := os.ReadFile("../../files/store-address")
+22 -12
View File
@@ -42,9 +42,6 @@
"mesh-delivery-indexer.views.manifests",
"mesh-conditions.findings-asked"
],
"state": [
"findings"
],
"tools": [
"artifact_store_repositories",
"artifact_store_usage",
@@ -86,14 +83,6 @@
"template": "files/store-address"
}
],
"streams": [
{
"name": "artifact-store-tools-findings",
"events": ["finding-written.*", "finding-cleared.*", "findings-stated.*"],
"max-age-days": 7,
"max-mib": 16
}
],
"build": {
"artifacts": [
{
@@ -117,5 +106,26 @@
"from": "files"
}
]
}
},
"requires": [
{
"name": "findings",
"storage": "key-value",
"template": "state"
},
{
"name": "finding-events",
"storage": "stream",
"template": "events",
"options": {
"events": [
"finding-written.*",
"finding-cleared.*",
"findings-stated.*"
],
"max-age-days": 7,
"max-mib": 16
}
}
]
}
+22 -12
View File
@@ -12,9 +12,6 @@
"mesh-watcher.watcher_ping",
"seat:mesh-hand-acts.hand-act"
],
"state": [
"findings"
],
"own-secrets": {
"telegram-token": "${dir:state}/telegram-token"
},
@@ -54,14 +51,6 @@
"template": "files/settings.json"
}
],
"streams": [
{
"name": "mesh-watcher-findings",
"events": ["finding-written.*", "finding-cleared.*", "findings-stated.*"],
"max-age-days": 7,
"max-mib": 16
}
],
"build": {
"artifacts": [
{
@@ -85,5 +74,26 @@
"from": "files"
}
]
}
},
"requires": [
{
"name": "findings",
"storage": "key-value",
"template": "state"
},
{
"name": "finding-events",
"storage": "stream",
"template": "events",
"options": {
"events": [
"finding-written.*",
"finding-cleared.*",
"findings-stated.*"
],
"max-age-days": 7,
"max-mib": 16
}
}
]
}
+20 -12
View File
@@ -19,7 +19,26 @@
}
],
"requires": [
"route"
"route",
{
"name": "findings",
"storage": "key-value",
"template": "state"
},
{
"name": "finding-events",
"storage": "stream",
"template": "events",
"options": {
"events": [
"finding-written.*",
"finding-cleared.*",
"findings-stated.*"
],
"max-age-days": 7,
"max-mib": 16
}
}
],
"seats": [
{
@@ -47,9 +66,6 @@
"mesh-delivery-assigner.views.seat-holders",
"mesh-conditions.findings-asked"
],
"state": [
"findings"
],
"contributes": {
"route": {
"api": {
@@ -193,14 +209,6 @@
"package": "minio-client"
}
],
"streams": [
{
"name": "minio-findings",
"events": ["finding-written.*", "finding-cleared.*", "findings-stated.*"],
"max-age-days": 7,
"max-mib": 16
}
],
"build": {
"artifacts": [
{
+22 -10
View File
@@ -48,8 +48,7 @@
"name": "exports",
"ttl-seconds": 120,
"per-machine": true
},
"findings"
}
],
"reads": [
"disk-load.readings",
@@ -172,14 +171,6 @@
"template": "files/shares.conf"
}
],
"streams": [
{
"name": "nfs-server-findings",
"events": ["finding-written.*", "finding-cleared.*", "findings-stated.*"],
"max-age-days": 7,
"max-mib": 16
}
],
"build": {
"artifacts": [
{
@@ -207,5 +198,26 @@
"consumes": [
"mesh-delivery-assigner.views.seat-holders",
"mesh-conditions.findings-asked"
],
"requires": [
{
"name": "findings",
"storage": "key-value",
"template": "state"
},
{
"name": "finding-events",
"storage": "stream",
"template": "events",
"options": {
"events": [
"finding-written.*",
"finding-cleared.*",
"findings-stated.*"
],
"max-age-days": 7,
"max-mib": 16
}
}
]
}