From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from gate001.proxmox.com (gate001.proxmox.com [45.144.208.40]) by lore.proxmox.com (Postfix) with ESMTPS id BB4671FF09D for ; Sun, 01 Nov 2026 22:39:20 +0100 (CET) Received: from gate001.proxmox.com (localhost.localdomain [127.0.0.1]) by gate001.proxmox.com (Proxmox) with ESMTP id C9531216D8; Sun, 01 Nov 2026 22:38:52 +0100 (CET) From: Thomas Lamprecht To: pve-devel@lists.proxmox.com Subject: [PATCH common 02/10] schema: allow marking properties as sensitive Date: Sun, 1 Nov 2026 22:34:51 +0100 Message-ID: <20261101213835.353604-3-t.lamprecht@proxmox.com> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20261101213835.353604-1-t.lamprecht@proxmox.com> References: <20261101213835.353604-1-t.lamprecht@proxmox.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Bm-Milter-Handled: 55990f41-d878-4baa-be0a-ee34c49e34d2 X-Bm-Transport-Timestamp: 1793569120884 X-SPAM-LEVEL: Spam detection results: 0 AWL 0.420 Adjusted score from AWL reputation of From: address DMARC_MISSING 0.1 Missing DMARC policy KAM_DMARC_STATUS 0.01 Test Rule for DKIM or SPF Failure with Strict Alignment (newer systems) RCVD_IN_DNSWL_MED -2.3 Sender listed at https://www.dnswl.org/, medium trust SPF_HELO_NONE 0.001 SPF: HELO does not publish an SPF Record SPF_PASS -0.001 SPF: sender matches SPF record Message-ID-Hash: MZE3DFBTOULWC4SU2LF7XF6XQNQUNAJ3 X-Message-ID-Hash: MZE3DFBTOULWC4SU2LF7XF6XQNQUNAJ3 X-MailFrom: t.lamprecht@proxmox.com X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; loop; banned-address; emergency; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header X-Mailman-Version: 3.3.10 Precedence: list List-Id: Proxmox VE development discussion List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: Credentials such as cloud-init passwords and SDN API tokens are stored inline in configs, and from there end up in places with a wider audience, like the system report, which only requires Sys.Audit. Code that needs to treat such values specially currently has to know their property names, as the cipassword masking in qemu-server does. The new flag lets the schema declare a value as a secret, so generic code can recognize it. It does not affect validation or how a value is stored. It can be set on any property schema, including the keys of property-string formats. The meta schema is only checked by the verifyapi commands, so older versions of this package do not break at runtime when they see the flag. Signed-off-by: Thomas Lamprecht --- src/PVE/JSONSchema.pm | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/PVE/JSONSchema.pm b/src/PVE/JSONSchema.pm index 34f2949..e4225df 100644 --- a/src/PVE/JSONSchema.pm +++ b/src/PVE/JSONSchema.pm @@ -1791,6 +1791,14 @@ my $default_schema_noref = { optional => 1, default => 0, }, + sensitive => { + type => "boolean", + description => + "Whether the value is a secret or derived from one, like a password, a" + . " password hash or an API token.", + optional => 1, + default => 0, + }, properties => { type => "object", description => "This is a definition for the properties of an object value", -- 2.47.3