ניהול מסכות עדכון

כשמעדכנים משאבים (בקשות PATCH), Cloud de Confiance by S3NS ממשקי API משתמשים לעיתים קרובות במסכת עדכון (com.google.protobuf.FieldMask). המסכה הזו מציינת לשרת בדיוק אילו שדות אתם רוצים לעדכן, וכך מונעת החלפה לא מכוונת של שדות אחרים.

אם לא מציינים מסכה, חלק מממשקי ה-API מעדכנים את כל השדות ומאפסים את השדות החסרים לערכי ברירת המחדל.

יצירת FieldMask

import com.google.cloud.secretmanager.v1.Secret;
import com.google.cloud.secretmanager.v1.SecretManagerServiceClient;
import com.google.cloud.secretmanager.v1.UpdateSecretRequest;
import com.google.protobuf.FieldMask;

try (SecretManagerServiceClient client = SecretManagerServiceClient.create()) {
    // Prepare the resource with NEW values
    Secret secret = Secret.newBuilder()
        .setName("projects/my-project/secrets/my-secret")
        .putLabels("env", "production") // We only want to update this field
        .build();

    // Create the FieldMask
    // Paths MUST match the protobuf field names (snake_case)
    FieldMask updateMask = FieldMask.newBuilder()
        .addPaths("labels")
        .build();

    // Prepare the Request object
    UpdateSecretRequest request = UpdateSecretRequest.newBuilder()
        .setSecret(secret)
        .setUpdateMask(updateMask)
        .build();

    // Call the API
    client.updateSecret(request);
}