Files
hq/04-ISSUES/168-a-setting-reaches-every-file-and-contribution/00-report.md
T
jschoubben 49b1136ded Issues 164-168: found provisioning every dependency on ace
164 a credential that must be accepted is minted anyway
165 one accepted value must be accepted once per consumer
166 a requirement cannot be optional
167 code several modules share has no home
168 a setting reaches every file and every contribution
2026-09-30 13:28:53 +02:00

1.5 KiB

status, opened, located-in, fixed-by, amended-design
status opened located-in fixed-by amended-design
open 2026-09-30
mesh-controller internal/catalogue/settings.go (settle
every key but `ports` merges into every mergeable file and every contribution)
mesh-controller internal/catalogue/declaration.go (a provider's settings are laid over what it serves)

168 — A setting reaches every file and every contribution

What was observed

Settings merge key by key into every "merge": "json" file of a module and every contribution it makes; a provider's settings are also laid over what it serves. Seen on ace:

  • searxng's endpoints and a route label land in searxng's own settings.yml; nodered's timeZone and mqtt keys land in mosquitto's grants file; keycloak's issuer lands in its postgres-database and route contributions.
  • every consumer's plex-api binding carries plex's endpoints and expose settings — and a provider setting named port would silently redirect every consumer.
  • a module cannot have two configurable files: searxng's sidecar config had to stop being mergeable so searxng's keys would not reach it.

Harmless today only because every receiver happens to ignore unknown keys.

What would be right

A setting is aimed: at a file (by resource id), at a contribution (by requirement), or at what the module serves — declared settable by the module (ADR 0046 already says settings drive "the fields the manifest marks") — and an unaimed key is refused like any unknown setting.