MCP Tools Reference: dataform.googleapis.com

Alat: update_repository

Perbarui properti repositori Dataform yang ada, seperti setelan Git jarak jauh, penggantian kompilasi ruang kerja, atau akun layanan default.

Prasyarat: Gunakan alat get_repository untuk membaca status repositori saat ini sebelum memperbarui.

Jika nilai parameter update_mask tidak ada, semua kolom yang dapat diubah akan diganti dengan nilai yang diberikan dalam nilai parameter repository. Untuk mengubah hanya kolom tertentu tanpa menghapus kolom lainnya, cantumkan kolom tersebut di update_mask.

Nilai parameter repository.name harus dalam format projects/{project_id}/locations/{location}/repositories/{repository}.

Contoh kode berikut menunjukkan cara menggunakan curl untuk memanggil alat MCP update_repository.

Permintaan Curl
curl --location 'https://dataform.googleapis.com/mcp' \
--header 'content-type: application/json' \
--header 'accept: application/json, text/event-stream' \
--data '{
  "method": "tools/call",
  "params": {
    "name": "update_repository",
    "arguments": {
      // Provide these details according to the MCP tool specification.
    }
  },
  "jsonrpc": "2.0",
  "id": 1
}'

Skema Input

Pesan permintaan UpdateRepository.

UpdateRepositoryRequest

Representasi JSON
{
  "updateMask": string,
  "repository": {
    object (Repository)
  }
}
Kolom
updateMask

string (FieldMask format)

Opsional. Menentukan kolom yang akan diperbarui di repositori. Jika tidak disetel, semua kolom akan diperbarui.

Ini adalah comma-separated list berisi nama kolom yang sepenuhnya memenuhi syarat. Contoh: "user.displayName,photo".

repository

object (Repository)

Wajib. Repositori yang akan diperbarui.

FieldMask

Representasi JSON
{
  "paths": [
    string
  ]
}
Kolom
paths[]

string

Kumpulan jalur mask kolom.

Repositori

Representasi JSON
{
  "name": string,
  "createTime": string,
  "displayName": string,
  "gitRemoteSettings": {
    object (GitRemoteSettings)
  },
  "npmrcEnvironmentVariablesSecretVersion": string,
  "workspaceCompilationOverrides": {
    object (WorkspaceCompilationOverrides)
  },
  "labels": {
    string: string,
    ...
  },
  "setAuthenticatedUserAdmin": boolean,
  "serviceAccount": string,
  "kmsKeyName": string,
  "dataEncryptionState": {
    object (DataEncryptionState)
  },

  // Union field _containing_folder can be only one of the following:
  "containingFolder": string
  // End of list of possible types for union field _containing_folder.

  // Union field _team_folder_name can be only one of the following:
  "teamFolderName": string
  // End of list of possible types for union field _team_folder_name.

  // Union field _internal_metadata can be only one of the following:
  "internalMetadata": string
  // End of list of possible types for union field _internal_metadata.
}
Kolom
name

string

ID. Nama repositori.

createTime

string (Timestamp format)

Hanya output. Stempel waktu saat repositori dibuat.

Menggunakan RFC 3339 yang outputnya akan selalu dinormalisasi Z dan menggunakan 0, 3, 6, atau 9 digit pecahan. Offset selain "Z" juga diterima. Contoh: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z", atau "2014-10-02T15:01:23+05:30".

displayName

string

Opsional. Nama repositori yang mudah digunakan.

gitRemoteSettings

object (GitRemoteSettings)

Opsional. Jika disetel, mengonfigurasi repositori ini agar ditautkan ke Git jarak jauh.

npmrcEnvironmentVariablesSecretVersion

string

Opsional. Nama versi secret Secret Manager yang akan digunakan untuk menginterpolasi variabel ke dalam file .npmrc untuk operasi penginstalan paket. Harus dalam format projects/*/secrets/*/versions/*. File itu sendiri harus dalam format JSON.

workspaceCompilationOverrides

object (WorkspaceCompilationOverrides)

Opsional. Jika disetel, kolom workspace_compilation_overrides akan menggantikan setelan kompilasi default yang ditentukan dalam dataform.json saat membuat hasil kompilasi cakupan ruang kerja. Lihat dokumentasi untuk WorkspaceCompilationOverrides untuk mengetahui informasi selengkapnya.

labels

map (key: string, value: string)

Opsional. Label pengguna repositori.

Objek yang berisi daftar pasangan "key": value. Contoh: { "name": "wrench", "mass": "1.3kg", "count": "3" }.

setAuthenticatedUserAdmin

boolean

Opsional. Hanya input. Jika disetel ke benar (true), pengguna yang diautentikasi akan diberi peran roles/dataform.admin di repositori yang dibuat. Untuk mengubah akses ke repositori yang dibuat nanti, terapkan setIamPolicy dari https://cloud.google.com/dataform/reference/rest#rest-resource:-v1beta1.projects.locations.repositories

serviceAccount

string

Opsional. Akun layanan yang akan menjalankan pemanggilan alur kerja.

kmsKeyName

string

Opsional. Referensi ke kunci enkripsi KMS. Jika disediakan, kunci ini akan digunakan untuk mengenkripsi data pengguna di repositori dan semua resource turunan. Kunci enkripsi tidak dapat ditambahkan atau diperbarui setelah repositori dibuat. Contoh: projects/{kms_project}/locations/{location}/keyRings/{key_location}/cryptoKeys/{key}

dataEncryptionState

object (DataEncryptionState)

Hanya output. Status enkripsi data repositori Git jika Repositori ini dilindungi oleh kunci KMS.

Kolom union _containing_folder.

_containing_folder hanya dapat berupa salah satu dari hal berikut:

containingFolder

string

Opsional. Nama folder yang berisi repositori. Kolom ini tidak dapat diubah dan dapat diubah melalui operasi MoveRepository. Format: projects/*/locations/*/folders/*. atau projects/*/locations/*/teamFolders/*.

Kolom union _team_folder_name.

_team_folder_name hanya dapat berupa salah satu dari hal berikut:

teamFolderName

string

Hanya output. Nama resource TeamFolder yang terkait dengan Repositori ini. Formatnya adalah: projects/{project}/locations/{location}/teamFolders/{teamFolder}. Jika tidak disetel, Repositori tidak dikaitkan dengan TeamFolder.

Kolom union _internal_metadata.

_internal_metadata hanya dapat berupa salah satu dari hal berikut:

internalMetadata

string

Hanya output. Semua informasi metadata yang digunakan secara internal untuk menayangkan resource. Misalnya: stempel waktu, tanda, kolom status, dll. Format kolom ini adalah string JSON.

Stempel waktu

Representasi JSON
{
  "seconds": string,
  "nanos": integer
}
Kolom
seconds

string (int64 format)

Mewakili detik waktu UTC sejak epoch Unix 1970-01-01T00:00:00Z. Harus antara -62135596800 dan 253402300799 inklusif (yang sesuai dengan 0001-01-01T00:00:00Z hingga 9999-12-31T23:59:59Z).

nanos

integer

Pecahan detik non-negatif pada resolusi nanodetik. Kolom ini adalah bagian nanodetik dari durasi, bukan alternatif untuk detik. Nilai detik negatif dengan pecahan harus tetap memiliki nilai nanos non-negatif yang dihitung maju dalam waktu. Harus antara 0 dan 999.999.999 inklusif.

GitRemoteSettings

Representasi JSON
{
  "url": string,
  "defaultBranch": string,
  "effectiveDefaultBranch": string,
  "authenticationTokenSecretVersion": string,
  "sshAuthenticationConfig": {
    object (SshAuthenticationConfig)
  },
  "tokenStatus": enum (TokenStatus),

  // Union field _git_repository_link can be only one of the following:
  "gitRepositoryLink": string
  // End of list of possible types for union field _git_repository_link.
}
Kolom
url

string

Wajib. URL Git remote.

defaultBranch

string

Opsional. Nama cabang default Git remote. Jika tidak disetel, main akan digunakan.

effectiveDefaultBranch

string

Hanya output. Nama cabang default efektif Git remote. Ini adalah nama cabang default dari Git remote jika ditetapkan, atau main jika tidak ditetapkan.

authenticationTokenSecretVersion

string

Opsional. Nama versi secret Secret Manager yang akan digunakan sebagai token autentikasi untuk operasi Git. Harus dalam format projects/*/secrets/*/versions/*.

sshAuthenticationConfig

object (SshAuthenticationConfig)

Opsional. Kolom autentikasi untuk URI jarak jauh menggunakan protokol SSH.

tokenStatus
(deprecated)

enum (TokenStatus)

Hanya output. Tidak digunakan lagi: Kolom tidak berisi informasi status token apa pun. Sebagai gantinya, gunakan https://cloud.google.com/dataform/reference/rest/v1beta1/projects.locations.repositories/computeAccessTokenStatus

Kolom union _git_repository_link.

_git_repository_link hanya dapat berupa salah satu dari hal berikut:

gitRepositoryLink

string

Opsional. Nama resource untuk GitRepositoryLink yang digunakan untuk kredensial mesin. Harus dalam format projects/*/locations/*/connections/*/gitRepositoryLinks/*

SshAuthenticationConfig

Representasi JSON
{
  "userPrivateKeySecretVersion": string,
  "hostPublicKey": string
}
Kolom
userPrivateKeySecretVersion

string

Wajib. Nama versi secret Secret Manager yang akan digunakan sebagai kunci pribadi SSH untuk operasi Git. Harus dalam format projects/*/secrets/*/versions/*.

hostPublicKey

string

Wajib. Konten kunci SSH publik untuk memverifikasi identitas host Git jarak jauh.

WorkspaceCompilationOverrides

Representasi JSON
{
  "defaultDatabase": string,
  "schemaSuffix": string,
  "tablePrefix": string
}
Kolom
defaultDatabase

string

Opsional. Database default (ID project Google Cloud).

schemaSuffix

string

Opsional. Sufiks yang harus ditambahkan ke semua nama skema (ID set data BigQuery).

tablePrefix

string

Opsional. Awalan yang harus ditambahkan ke semua nama tabel.

LabelsEntry

Representasi JSON
{
  "key": string,
  "value": string
}
Kolom
key

string

value

string

DataEncryptionState

Representasi JSON
{
  "kmsKeyVersionName": string
}
Kolom
kmsKeyVersionName

string

Wajib. Nama versi kunci KMS yang digunakan untuk mengenkripsi data resource.

TokenStatus

Status token autentikasi.

Enum
TOKEN_STATUS_UNSPECIFIED Nilai default. Nilai ini tidak digunakan.
NOT_FOUND Token tidak dapat ditemukan di Secret Manager (atau Akun Layanan Dataform tidak memiliki izin untuk mengaksesnya).
INVALID Token tidak dapat digunakan untuk melakukan autentikasi terhadap remote Git.
VALID Token berhasil digunakan untuk mengautentikasi terhadap remote Git.

Skema Output

Menampilkan repositori Git Dataform.

Repositori

Representasi JSON
{
  "name": string,
  "createTime": string,
  "displayName": string,
  "gitRemoteSettings": {
    object (GitRemoteSettings)
  },
  "npmrcEnvironmentVariablesSecretVersion": string,
  "workspaceCompilationOverrides": {
    object (WorkspaceCompilationOverrides)
  },
  "labels": {
    string: string,
    ...
  },
  "setAuthenticatedUserAdmin": boolean,
  "serviceAccount": string,
  "kmsKeyName": string,
  "dataEncryptionState": {
    object (DataEncryptionState)
  },

  // Union field _containing_folder can be only one of the following:
  "containingFolder": string
  // End of list of possible types for union field _containing_folder.

  // Union field _team_folder_name can be only one of the following:
  "teamFolderName": string
  // End of list of possible types for union field _team_folder_name.

  // Union field _internal_metadata can be only one of the following:
  "internalMetadata": string
  // End of list of possible types for union field _internal_metadata.
}
Kolom
name

string

ID. Nama repositori.

createTime

string (Timestamp format)

Hanya output. Stempel waktu saat repositori dibuat.

Menggunakan RFC 3339 yang outputnya akan selalu dinormalisasi Z dan menggunakan 0, 3, 6, atau 9 digit pecahan. Offset selain "Z" juga diterima. Contoh: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z", atau "2014-10-02T15:01:23+05:30".

displayName

string

Opsional. Nama repositori yang mudah digunakan.

gitRemoteSettings

object (GitRemoteSettings)

Opsional. Jika disetel, mengonfigurasi repositori ini agar ditautkan ke Git jarak jauh.

npmrcEnvironmentVariablesSecretVersion

string

Opsional. Nama versi secret Secret Manager yang akan digunakan untuk menginterpolasi variabel ke dalam file .npmrc untuk operasi penginstalan paket. Harus dalam format projects/*/secrets/*/versions/*. File itu sendiri harus dalam format JSON.

workspaceCompilationOverrides

object (WorkspaceCompilationOverrides)

Opsional. Jika disetel, kolom workspace_compilation_overrides akan menggantikan setelan kompilasi default yang ditentukan dalam dataform.json saat membuat hasil kompilasi cakupan ruang kerja. Lihat dokumentasi untuk WorkspaceCompilationOverrides untuk mengetahui informasi selengkapnya.

labels

map (key: string, value: string)

Opsional. Label pengguna repositori.

Objek yang berisi daftar pasangan "key": value. Contoh: { "name": "wrench", "mass": "1.3kg", "count": "3" }.

setAuthenticatedUserAdmin

boolean

Opsional. Hanya input. Jika disetel ke benar (true), pengguna yang diautentikasi akan diberi peran roles/dataform.admin di repositori yang dibuat. Untuk mengubah akses ke repositori yang dibuat nanti, terapkan setIamPolicy dari https://cloud.google.com/dataform/reference/rest#rest-resource:-v1beta1.projects.locations.repositories

serviceAccount

string

Opsional. Akun layanan yang akan menjalankan pemanggilan alur kerja.

kmsKeyName

string

Opsional. Referensi ke kunci enkripsi KMS. Jika disediakan, kunci ini akan digunakan untuk mengenkripsi data pengguna di repositori dan semua resource turunan. Kunci enkripsi tidak dapat ditambahkan atau diperbarui setelah repositori dibuat. Contoh: projects/{kms_project}/locations/{location}/keyRings/{key_location}/cryptoKeys/{key}

dataEncryptionState

object (DataEncryptionState)

Hanya output. Status enkripsi data repositori Git jika Repositori ini dilindungi oleh kunci KMS.

Kolom union _containing_folder.

_containing_folder hanya dapat berupa salah satu dari hal berikut:

containingFolder

string

Opsional. Nama folder yang berisi repositori. Kolom ini tidak dapat diubah dan dapat diubah melalui operasi MoveRepository. Format: projects/*/locations/*/folders/*. atau projects/*/locations/*/teamFolders/*.

Kolom union _team_folder_name.

_team_folder_name hanya dapat berupa salah satu dari hal berikut:

teamFolderName

string

Hanya output. Nama resource TeamFolder yang terkait dengan Repositori ini. Formatnya adalah: projects/{project}/locations/{location}/teamFolders/{teamFolder}. Jika tidak disetel, Repositori tidak dikaitkan dengan TeamFolder.

Kolom union _internal_metadata.

_internal_metadata hanya dapat berupa salah satu dari hal berikut:

internalMetadata

string

Hanya output. Semua informasi metadata yang digunakan secara internal untuk menayangkan resource. Misalnya: stempel waktu, tanda, kolom status, dll. Format kolom ini adalah string JSON.

Stempel waktu

Representasi JSON
{
  "seconds": string,
  "nanos": integer
}
Kolom
seconds

string (int64 format)

Mewakili detik waktu UTC sejak epoch Unix 1970-01-01T00:00:00Z. Harus antara -62135596800 dan 253402300799 inklusif (yang sesuai dengan 0001-01-01T00:00:00Z hingga 9999-12-31T23:59:59Z).

nanos

integer

Pecahan detik non-negatif pada resolusi nanodetik. Kolom ini adalah bagian nanodetik dari durasi, bukan alternatif untuk detik. Nilai detik negatif dengan pecahan harus tetap memiliki nilai nanos non-negatif yang dihitung maju dalam waktu. Harus antara 0 dan 999.999.999 inklusif.

GitRemoteSettings

Representasi JSON
{
  "url": string,
  "defaultBranch": string,
  "effectiveDefaultBranch": string,
  "authenticationTokenSecretVersion": string,
  "sshAuthenticationConfig": {
    object (SshAuthenticationConfig)
  },
  "tokenStatus": enum (TokenStatus),

  // Union field _git_repository_link can be only one of the following:
  "gitRepositoryLink": string
  // End of list of possible types for union field _git_repository_link.
}
Kolom
url

string

Wajib. URL Git remote.

defaultBranch

string

Opsional. Nama cabang default Git remote. Jika tidak disetel, main akan digunakan.

effectiveDefaultBranch

string

Hanya output. Nama cabang default efektif Git remote. Ini adalah nama cabang default dari Git remote jika ditetapkan, atau main jika tidak ditetapkan.

authenticationTokenSecretVersion

string

Opsional. Nama versi secret Secret Manager yang akan digunakan sebagai token autentikasi untuk operasi Git. Harus dalam format projects/*/secrets/*/versions/*.

sshAuthenticationConfig

object (SshAuthenticationConfig)

Opsional. Kolom autentikasi untuk URI jarak jauh menggunakan protokol SSH.

tokenStatus
(deprecated)

enum (TokenStatus)

Hanya output. Tidak digunakan lagi: Kolom tidak berisi informasi status token apa pun. Sebagai gantinya, gunakan https://cloud.google.com/dataform/reference/rest/v1beta1/projects.locations.repositories/computeAccessTokenStatus

Kolom union _git_repository_link.

_git_repository_link hanya dapat berupa salah satu dari hal berikut:

gitRepositoryLink

string

Opsional. Nama resource untuk GitRepositoryLink yang digunakan untuk kredensial mesin. Harus dalam format projects/*/locations/*/connections/*/gitRepositoryLinks/*

SshAuthenticationConfig

Representasi JSON
{
  "userPrivateKeySecretVersion": string,
  "hostPublicKey": string
}
Kolom
userPrivateKeySecretVersion

string

Wajib. Nama versi secret Secret Manager yang akan digunakan sebagai kunci pribadi SSH untuk operasi Git. Harus dalam format projects/*/secrets/*/versions/*.

hostPublicKey

string

Wajib. Konten kunci SSH publik untuk memverifikasi identitas host Git jarak jauh.

WorkspaceCompilationOverrides

Representasi JSON
{
  "defaultDatabase": string,
  "schemaSuffix": string,
  "tablePrefix": string
}
Kolom
defaultDatabase

string

Opsional. Database default (ID project Google Cloud).

schemaSuffix

string

Opsional. Sufiks yang harus ditambahkan ke semua nama skema (ID set data BigQuery).

tablePrefix

string

Opsional. Awalan yang harus ditambahkan ke semua nama tabel.

LabelsEntry

Representasi JSON
{
  "key": string,
  "value": string
}
Kolom
key

string

value

string

DataEncryptionState

Representasi JSON
{
  "kmsKeyVersionName": string
}
Kolom
kmsKeyVersionName

string

Wajib. Nama versi kunci KMS yang digunakan untuk mengenkripsi data resource.

TokenStatus

Status token autentikasi.

Enum
TOKEN_STATUS_UNSPECIFIED Nilai default. Nilai ini tidak digunakan.
NOT_FOUND Token tidak dapat ditemukan di Secret Manager (atau Akun Layanan Dataform tidak memiliki izin untuk mengaksesnya).
INVALID Token tidak dapat digunakan untuk melakukan autentikasi terhadap remote Git.
VALID Token berhasil digunakan untuk mengautentikasi terhadap remote Git.

Anotasi Alat

Anotasi alat dikirim ke klien MCP untuk menjelaskan risiko dasar alat tertentu. Sebagian besar klien memperlakukan petunjuk ini sebagai tidak tepercaya, tetapi petunjuk ini dapat digunakan untuk memutuskan kapan perintah konfirmasi dapat dikirim ke pengguna.

Selain string judul, petunjuk boolean berikut ditentukan sebagai berikut:

  • readOnlyHint: Jika benar, alat tidak akan mengubah lingkungannya. Default: false.
  • destructiveHint: Jika benar, alat dapat melakukan tindakan destruktif. Jika salah (false), alat hanya dapat melakukan tindakan tambahan. Default: true.
  • idempotentHint: Jika benar (true), memanggil alat berulang kali dengan argumen yang sama tidak akan memberikan efek tambahan pada lingkungannya. Default: false.
  • openWorldHint: Jika benar, alat dapat berinteraksi dengan 'dunia terbuka' entitas eksternal. Jika salah (false), alat hanya dapat berinteraksi dengan entitas internal. Misalnya, alat penelusuran web akan menjadi open world, sedangkan alat memori tidak akan menjadi open world.

Petunjuk Destruktif: ❌ | Petunjuk Idempoten: ❌ | Petunjuk Hanya Baca: ❌ | Petunjuk Dunia Terbuka: ❌