Skip to content

Remove customers: tags replaced them - #11

Merged
bencode merged 1 commit into
mainfrom
no-customers
Oct 5, 2026
Merged

bencode merged 1 commit into
mainfrom
no-customers

Conversation

@bencode

@bencode bencode commented Oct 5, 2026

Copy link
Copy Markdown
Contributor

Removes the customer grouping, which tags replaced (#6). Unlike the rest of the protocol's history this is a deliberate removal, agreed after the structural review.

Removed

  • Protocol: Overview.customers, CustomerOverview, HostView.customer, CustomerId.
  • Configuration: [[customers]] (ServerConfig.customers, Customer) and a host's customer, with their validation.
  • Server: the per-customer grouping built in views::overview, which also had an always-empty endpoints.
  • Agent: customer: None in the local status view.

Behaviour

  • Old configuration. A server.toml that still has [[customers]] or a host customer fails to load:
    [[customers]] and a host's customer are no longer read: tag the hosts instead (tags = ["<customer>"]).
    The check reads only the top-level customers key and customer directly inside a host, so app, probe or mute keys are never matched. It runs after the normal parse has succeeded, so syntax errors keep their line-only, secret-free message.
  • Banner. The view's "server is older than this view" banner now fires on an overview with no hosts and no problems but a status other than ok. A current server cannot produce that: with no hosts, its status is the rollup of its problems.
  • Compatibility.
    • An older skym-view still parses the new overview (customers was serde(default)).
    • A new view ignores an older server's customers.
    • Agents never sent customers.

Verification

  • 258 tests pass; clippy and fmt are clean.
  • cargo-mutants on the diff: 7 mutants, none missed.
  • The production server.toml loads with the new binary, which reached listening.
  • A configuration with [[customers]] is rejected with the message above.
  • An independent review found nothing material. It checked completeness, false positives and negatives of the check, the banner condition, and compatibility.

Upgrade

Server, then skym-view. Agents are unchanged. The production configuration needs no edit.

Overview.customers, CustomerOverview, HostView.customer and CustomerId go
from the protocol; ServerConfig.customers, Customer and a host's customer
from the configuration, with the per-customer grouping. A server.toml that
still has [[customers]] or a host's customer does not load, and says to tag
the hosts instead.

The view's "server is older than this view" banner no longer needs
customers: an overview with no hosts and no problems yet a status other than
ok can only come from a server older than both.
@bencode
bencode merged commit 1cf1ef3 into main Oct 5, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant