From: Thomas Lamprecht <t.lamprecht@proxmox.com>
To: pdm-devel@lists.proxmox.com
Subject: [PATCH datacenter-manager v4 00/10] subscription key pool registry
Date: Thu, 21 May 2026 21:20:28 +0200 [thread overview]
Message-ID: <20260522085128.2678090-1-t.lamprecht@proxmox.com> (raw)
v4 of the Subscription Registry. Addresses all review feedback on v3
from Wolfgang and Lukas, and drops the trailing RFC wizard per the
consensus on v3-0012.
For the v2 -> v3 changelog and the original design discussion see the
v3 cover at:
https://lore.proxmox.com/pdm-devel/20260515074623.766766-1-t.lamprecht@proxmox.com
Notable v3 -> v4 (see per-patch notes for details):
* RFC wizard (v3-0012) dropped per consensus on the review thread.
* v4-0009 bundles Adopt Key + Adopt All (was v3-0009 + v3-0010) into
one commit since they share the dropdown filter and Source column.
* Net series count: 12 -> 10.
* All of Lukas's cover-level UI nits closed: Assign-Key remote/node
filters, Key column font-size in proposal/preview tables, per-node
Assign dialog footer padding. Verified live on a real fleet.
* All of Wolfgang's inline review nits applied.
* Internal: `invalidate_subscription_info_for_remote` ported to the
new api_cache abstraction on master.
R-b and T-b trailers picked up via `b4 trailers -u $msgid`, for patch
v4-0004 and v4-0005 I skipped applying the Tested-by from Lukas, as
there was a bit more churn there since the revision that was tested.
For the record, but IMO no blockers for the initial MVP, the open
follow-ups, still not in this series:
* A few UI/UX improvements, like multi-select on auto-import to allow
skipping a few remote/nodes - that shouldn't be to hard, but I just
wanted to get the v4 out now.
* Atomic clear-and-assign as one queued change (today swapping a key
on a node is Clear / Apply / Assign / Apply; the canonical case is
an Expired live subscription that the operator wants to replace).
* Shop-side full reissue, so PDM can drive the actual key rotation
rather than just freeing the pool binding via Clear Key.
* Shop-bundle import path; the on-disk shadow-file plumbing already
accommodates the signed SubscriptionInfo blob.
* Per-row Auto-Assign overrides for pinning a specific key to a node.
* Status column filter on the node-status tree.
Thomas Lamprecht (10):
api types: subscription level: render full names
pdm-client: add wait_for_local_task helper
subscription: pool: add data model and config layer
subscription: api: add key pool and node status endpoints
ui: registry: add view with key pool and node status
cli: client: add subscription key pool management subcommands
docs: add subscription registry chapter
subscription: add Clear Key action and per-node revert
subscription: add Adopt Key action for foreign live subscriptions
subscription: add Check Subscription action
Cargo.toml | 4 +-
cli/client/src/subscriptions.rs | 401 ++-
docs/index.rst | 1 +
docs/subscription-registry.rst | 84 +
lib/pdm-api-types/Cargo.toml | 1 +
lib/pdm-api-types/src/subscription.rs | 493 +++-
lib/pdm-api-types/tests/test_import.rs | 367 +++
lib/pdm-client/Cargo.toml | 3 +
lib/pdm-client/src/lib.rs | 330 ++-
lib/pdm-config/src/lib.rs | 1 +
lib/pdm-config/src/setup.rs | 7 +
lib/pdm-config/src/subscriptions.rs | 118 +
server/src/api/mod.rs | 2 +
server/src/api/resources.rs | 34 +-
server/src/api/subscriptions/mod.rs | 2310 +++++++++++++++++
server/src/context.rs | 7 +
server/src/pbs_client.rs | 31 +
ui/src/configuration/mod.rs | 3 +
ui/src/configuration/subscription_assign.rs | 336 +++
ui/src/configuration/subscription_keys.rs | 583 +++++
ui/src/configuration/subscription_registry.rs | 1469 +++++++++++
ui/src/dashboard/subscriptions_list.rs | 18 +-
ui/src/main_menu.rs | 10 +
ui/src/widget/pve_node_selector.rs | 91 +-
ui/src/widget/remote_selector.rs | 28 +-
25 files changed, 6665 insertions(+), 67 deletions(-)
create mode 100644 docs/subscription-registry.rst
create mode 100644 lib/pdm-api-types/tests/test_import.rs
create mode 100644 lib/pdm-config/src/subscriptions.rs
create mode 100644 server/src/api/subscriptions/mod.rs
create mode 100644 ui/src/configuration/subscription_assign.rs
create mode 100644 ui/src/configuration/subscription_keys.rs
create mode 100644 ui/src/configuration/subscription_registry.rs
--
2.47.3
next reply other threads:[~2026-05-22 8:51 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-05-21 19:20 Thomas Lamprecht [this message]
2026-05-21 19:20 ` [PATCH datacenter-manager v4 01/10] api types: subscription level: render full names Thomas Lamprecht
2026-05-21 19:20 ` [PATCH datacenter-manager v4 02/10] pdm-client: add wait_for_local_task helper Thomas Lamprecht
2026-05-21 19:20 ` [PATCH datacenter-manager v4 03/10] subscription: pool: add data model and config layer Thomas Lamprecht
2026-05-21 19:20 ` [PATCH datacenter-manager v4 04/10] subscription: api: add key pool and node status endpoints Thomas Lamprecht
2026-05-21 19:20 ` [PATCH datacenter-manager v4 05/10] ui: registry: add view with key pool and node status Thomas Lamprecht
2026-05-22 13:16 ` Dominik Csapak
2026-05-21 19:20 ` [PATCH datacenter-manager v4 06/10] cli: client: add subscription key pool management subcommands Thomas Lamprecht
2026-05-21 19:20 ` [PATCH datacenter-manager v4 07/10] docs: add subscription registry chapter Thomas Lamprecht
2026-05-21 19:20 ` [PATCH datacenter-manager v4 08/10] subscription: add Clear Key action and per-node revert Thomas Lamprecht
2026-05-21 19:20 ` [PATCH datacenter-manager v4 09/10] subscription: add Adopt Key action for foreign live subscriptions Thomas Lamprecht
2026-05-21 19:20 ` [PATCH datacenter-manager v4 10/10] subscription: add Check Subscription action Thomas Lamprecht
2026-05-22 9:34 ` [PATCH datacenter-manager v4 00/10] subscription key pool registry Dominik Csapak
2026-05-22 13:30 ` Shannon Sterz
2026-05-22 13:32 ` Shannon Sterz
2026-05-23 23:26 ` superseded: " Thomas Lamprecht
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20260522085128.2678090-1-t.lamprecht@proxmox.com \
--to=t.lamprecht@proxmox.com \
--cc=pdm-devel@lists.proxmox.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox