From 684b9853ada98e152beff718a6f391c52e427666 Mon Sep 17 00:00:00 2001 From: jochen Date: Thu, 1 Oct 2026 00:01:42 +0200 Subject: [PATCH] An access has an id, and its mounts name it (issue 153) Ten definitions name each access by id; the path stays as the default an assignment may replace, and the host side of every mount says ${access:}. Resolved with no placement, every definition names exactly the paths it named before (TestPlacedDirectoriesKeepTheirPaths, extended). On an adopted machine the assignment now says `accesses: {: }` and the mount follows. Needs the controller that knows an access id (mesh-controller #176); the running one refuses the field at registration. --- modules/bazarr/module.json | 12 ++++++++---- modules/bookshelf/module.json | 6 ++++-- modules/lidarr/module.json | 6 ++++-- modules/nats/module.json | 3 ++- modules/nzbget/module.json | 3 ++- modules/plex/module.json | 15 ++++++++++----- modules/qbittorrent/module.json | 3 ++- modules/radarr/module.json | 6 ++++-- modules/route-adapter/module.json | 3 ++- modules/sonarr/module.json | 9 ++++++--- 10 files changed, 44 insertions(+), 22 deletions(-) diff --git a/modules/bazarr/module.json b/modules/bazarr/module.json index 83da4b3..7f454c6 100644 --- a/modules/bazarr/module.json +++ b/modules/bazarr/module.json @@ -22,18 +22,22 @@ ], "accesses": [ { + "id": "movies", "path": "/services/media/movies", "mode": "read-write" }, { + "id": "series", "path": "/services/media/series", "mode": "read-write" }, { + "id": "anime", "path": "/services/media/anime", "mode": "read-write" }, { + "id": "downloads", "path": "/services/media/downloads", "mode": "read" } @@ -67,10 +71,10 @@ ], "volumes": [ "/services/bazarr/config:/config", - "/services/media/movies:/movies", - "/services/media/series:/series", - "/services/media/anime:/anime", - "/services/media/downloads:/downloads" + "${access:movies}:/movies", + "${access:series}:/series", + "${access:anime}:/anime", + "${access:downloads}:/downloads" ] }, { diff --git a/modules/bookshelf/module.json b/modules/bookshelf/module.json index caf9bba..2b9003b 100644 --- a/modules/bookshelf/module.json +++ b/modules/bookshelf/module.json @@ -24,10 +24,12 @@ ], "accesses": [ { + "id": "books", "path": "/services/media/books", "mode": "read-write" }, { + "id": "downloads", "path": "/services/media/downloads", "mode": "read-write" } @@ -61,8 +63,8 @@ ], "volumes": [ "/services/bookshelf/config:/config", - "/services/media/books:/books", - "/services/media/downloads:/downloads" + "${access:books}:/books", + "${access:downloads}:/downloads" ] }, { diff --git a/modules/lidarr/module.json b/modules/lidarr/module.json index d69c43e..a74d4b6 100644 --- a/modules/lidarr/module.json +++ b/modules/lidarr/module.json @@ -23,10 +23,12 @@ ], "accesses": [ { + "id": "music", "path": "/services/media/music", "mode": "read-write" }, { + "id": "downloads", "path": "/services/media/downloads", "mode": "read-write" } @@ -60,8 +62,8 @@ ], "volumes": [ "/services/lidarr/config:/config", - "/services/media/music:/music", - "/services/media/downloads:/downloads" + "${access:music}:/music", + "${access:downloads}:/downloads" ] }, { diff --git a/modules/nats/module.json b/modules/nats/module.json index 57e5493..4da1e3a 100644 --- a/modules/nats/module.json +++ b/modules/nats/module.json @@ -62,13 +62,14 @@ "volumes": [ "/var/lib/mesh-broker-nats:/data", "/var/lib/nats-module/conf:/etc/nats:ro", - "/var/lib/mesh-broker-tls:/tls:ro" + "${access:tls}:/tls:ro" ], "artifact": "server" } ], "accesses": [ { + "id": "tls", "path": "/var/lib/mesh-broker-tls", "mode": "read" } diff --git a/modules/nzbget/module.json b/modules/nzbget/module.json index 2510513..7f27951 100644 --- a/modules/nzbget/module.json +++ b/modules/nzbget/module.json @@ -24,6 +24,7 @@ ], "accesses": [ { + "id": "downloads", "path": "/services/media/downloads", "mode": "read-write" } @@ -57,7 +58,7 @@ ], "volumes": [ "/services/nzbget/config:/config", - "/services/media/downloads:/downloads" + "${access:downloads}:/downloads" ] }, { diff --git a/modules/plex/module.json b/modules/plex/module.json index b60d682..b126cf7 100644 --- a/modules/plex/module.json +++ b/modules/plex/module.json @@ -27,22 +27,27 @@ ], "accesses": [ { + "id": "movies", "path": "/services/media/movies", "mode": "read" }, { + "id": "series", "path": "/services/media/series", "mode": "read" }, { + "id": "anime", "path": "/services/media/anime", "mode": "read" }, { + "id": "music", "path": "/services/media/music", "mode": "read" }, { + "id": "audiobooks", "path": "/services/media/audiobooks", "mode": "read" } @@ -82,11 +87,11 @@ "volumes": [ "/services/plex/config:/config", "/services/plex/transcode:/transcode", - "/services/media/movies:/movies", - "/services/media/series:/series", - "/services/media/anime:/anime", - "/services/media/music:/music", - "/services/media/audiobooks:/audiobooks" + "${access:movies}:/movies", + "${access:series}:/series", + "${access:anime}:/anime", + "${access:music}:/music", + "${access:audiobooks}:/audiobooks" ] }, { diff --git a/modules/qbittorrent/module.json b/modules/qbittorrent/module.json index 317501c..d36a672 100644 --- a/modules/qbittorrent/module.json +++ b/modules/qbittorrent/module.json @@ -25,6 +25,7 @@ ], "accesses": [ { + "id": "downloads", "path": "/services/media/downloads", "mode": "read-write" } @@ -58,7 +59,7 @@ ], "volumes": [ "/services/qbittorrent/config:/config", - "/services/media/downloads:/downloads" + "${access:downloads}:/downloads" ] }, { diff --git a/modules/radarr/module.json b/modules/radarr/module.json index e719942..2e5c2b3 100644 --- a/modules/radarr/module.json +++ b/modules/radarr/module.json @@ -23,10 +23,12 @@ ], "accesses": [ { + "id": "movies", "path": "/services/media/movies", "mode": "read-write" }, { + "id": "downloads", "path": "/services/media/downloads", "mode": "read-write" } @@ -60,8 +62,8 @@ ], "volumes": [ "/services/radarr/config:/config", - "/services/media/movies:/movies", - "/services/media/downloads:/downloads" + "${access:movies}:/movies", + "${access:downloads}:/downloads" ] }, { diff --git a/modules/route-adapter/module.json b/modules/route-adapter/module.json index 144019b..658b8db 100644 --- a/modules/route-adapter/module.json +++ b/modules/route-adapter/module.json @@ -19,6 +19,7 @@ }, "accesses": [ { + "id": "dynamic", "path": "/services/traefik/dynamic", "mode": "read-write" } @@ -53,7 +54,7 @@ "volumes": [ "${dir:routes-dir}/mesh.json:${dir:routes-dir}/mesh.json:ro", "${dir:state}/config.json:/run/config/config.json:ro", - "/services/traefik/dynamic:/services/traefik/dynamic" + "${access:dynamic}:/services/traefik/dynamic" ], "env": { "MESH_RECEIVES": "${dir:routes-dir}/mesh.json", diff --git a/modules/sonarr/module.json b/modules/sonarr/module.json index 4677c20..7dfee83 100644 --- a/modules/sonarr/module.json +++ b/modules/sonarr/module.json @@ -23,14 +23,17 @@ ], "accesses": [ { + "id": "series", "path": "/services/media/series", "mode": "read-write" }, { + "id": "anime", "path": "/services/media/anime", "mode": "read-write" }, { + "id": "downloads", "path": "/services/media/downloads", "mode": "read-write" } @@ -64,9 +67,9 @@ ], "volumes": [ "/services/sonarr/config:/config", - "/services/media/series:/series", - "/services/media/anime:/anime", - "/services/media/downloads:/downloads" + "${access:series}:/series", + "${access:anime}:/anime", + "${access:downloads}:/downloads" ] }, {