Strumento: update_repository
Aggiorna le proprietà di un repository Dataform esistente, ad esempio le impostazioni Git remote, gli override di compilazione del workspace o il account di servizio predefinito.
Prerequisito: utilizza lo strumento get_repository per leggere lo stato attuale del repository prima dell'aggiornamento.
Se il valore parametro update_mask viene omesso, tutti i campi modificabili vengono sovrascritti con i valori forniti nel valore parametro repository. Per modificare solo campi specifici senza cancellare gli altri, elenca questi campi in update_mask.
Il valore parametro repository.name deve essere nel formato projects/{project_id}/locations/{location}/repositories/{repository}.
Il seguente esempio di codice mostra come utilizzare curl per chiamare lo strumento MCP update_repository.
| Richiesta 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 }' |
Schema di input
UpdateRepository messaggio di richiesta.
UpdateRepositoryRequest
| Rappresentazione JSON |
|---|
{
"updateMask": string,
"repository": {
object ( |
| Campi | |
|---|---|
updateMask |
Facoltativo. Specifica i campi da aggiornare nel repository. Se non viene impostato, verranno aggiornati tutti i campi. Si tratta di un elenco separato da virgole di nomi completi dei campi. Esempio: |
repository |
Obbligatorio. Il repository da aggiornare. |
FieldMask
| Rappresentazione JSON |
|---|
{ "paths": [ string ] } |
| Campi | |
|---|---|
paths[] |
L'insieme dei percorsi della maschera del campo. |
Repository
| Rappresentazione JSON |
|---|
{ "name": string, "createTime": string, "displayName": string, "gitRemoteSettings": { object ( |
| Campi | |
|---|---|
name |
Identificatore. Il nome del repository. |
createTime |
Solo output. Il timestamp di creazione del repository. Utilizza RFC 3339, in cui l'output generato è sempre con normalizzazione Z e utilizza 0, 3, 6 o 9 cifre frazionarie. Sono accettati anche offset diversi da "Z". Esempi: |
displayName |
Facoltativo. Il nome intuitivo del repository. |
gitRemoteSettings |
Facoltativo. Se impostato, configura questo repository in modo che sia collegato a un Git remoto. |
npmrcEnvironmentVariablesSecretVersion |
Facoltativo. Il nome della versione del secret di Secret Manager da utilizzare per interpolare le variabili nel file .npmrc per le operazioni di installazione dei pacchetti. Deve essere nel formato |
workspaceCompilationOverrides |
Facoltativo. Se impostati, i campi di |
labels |
Facoltativo. Etichette utente del repository. Un oggetto contenente un elenco di coppie |
setAuthenticatedUserAdmin |
Facoltativo. Solo input. Se impostata su true, all'utente autenticato verrà concesso il ruolo roles/dataform.admin nel repository creato. Per modificare l'accesso al repository creato in un secondo momento, applica setIamPolicy da https://cloud.google.com/dataform/reference/rest#rest-resource:-v1beta1.projects.locations.repositories |
serviceAccount |
Facoltativo. Il account di servizio con cui eseguire le chiamate del flusso di lavoro. |
kmsKeyName |
Facoltativo. Il riferimento a una chiave di crittografia KMS. Se fornita, verrà utilizzata per criptare i dati utente nel repository e in tutte le risorse secondarie. Non è possibile aggiungere o aggiornare la chiave di crittografia dopo la creazione del repository. Esempio: |
dataEncryptionState |
Solo output. Lo stato di crittografia dei dati di un repository Git se questo repository è protetto da una chiave KMS. |
Campo unione
|
|
containingFolder |
Facoltativo. Il nome della cartella contenente il repository. Il campo è immutabile e può essere modificato tramite un'operazione MoveRepository. Formato: |
Campo unione
|
|
teamFolderName |
Solo output. Il nome della risorsa del TeamFolder a cui è associato questo repository. Deve avere il seguente formato: projects/{project}/locations/{location}/teamFolders/{teamFolder}. Se non è impostato, il repository non è associato a una cartella del team. |
Campo unione
|
|
internalMetadata |
Solo output. Tutte le informazioni sui metadati utilizzate internamente per pubblicare la risorsa. Ad esempio, timestamp, flag, campi di stato e così via. Il formato di questo campo è una stringa JSON. |
Timestamp
| Rappresentazione JSON |
|---|
{ "seconds": string, "nanos": integer } |
| Campi | |
|---|---|
seconds |
Rappresenta i secondi di tempo UTC dall'epoca di Unix 1970-01-01T00:00:00Z. Deve essere compreso tra -62135596800 e 253402300799 inclusi (corrispondenti a 0001-01-01T00:00:00Z e 9999-12-31T23:59:59Z). |
nanos |
Frazioni di secondo non negative con risoluzione in nanosecondi. Questo campo è la parte in nanosecondi della durata, non un'alternativa ai secondi. I valori negativi dei secondi con frazioni devono comunque avere valori di nanosecondi non negativi che vengono conteggiati in avanti nel tempo. Deve essere compreso tra 0 e 999.999.999 inclusi. |
GitRemoteSettings
| Rappresentazione JSON |
|---|
{ "url": string, "defaultBranch": string, "effectiveDefaultBranch": string, "authenticationTokenSecretVersion": string, "sshAuthenticationConfig": { object ( |
| Campi | |
|---|---|
url |
Obbligatorio. L'URL del repository Git remoto. |
defaultBranch |
Facoltativo. Il nome del ramo predefinito del repository Git remoto. Se non viene impostato, verrà utilizzato |
effectiveDefaultBranch |
Solo output. Il nome del ramo predefinito effettivo del repository Git remoto. Se impostato, questo è il nome del branch predefinito del Git remoto, altrimenti è |
authenticationTokenSecretVersion |
Facoltativo. Il nome della versione del secret di Secret Manager da utilizzare come token di autenticazione per le operazioni Git. Deve essere nel formato |
sshAuthenticationConfig |
Facoltativo. Campi di autenticazione per URI remoti che utilizzano il protocollo SSH. |
tokenStatus |
Solo output. Obsoleto: il campo non contiene informazioni sullo stato del token. Utilizza invece https://cloud.google.com/dataform/reference/rest/v1beta1/projects.locations.repositories/computeAccessTokenStatus |
Campo unione
|
|
gitRepositoryLink |
Facoltativo. Nome della risorsa per |
SshAuthenticationConfig
| Rappresentazione JSON |
|---|
{ "userPrivateKeySecretVersion": string, "hostPublicKey": string } |
| Campi | |
|---|---|
userPrivateKeySecretVersion |
Obbligatorio. Il nome della versione del secret Secret Manager da utilizzare come chiave privata SSH per le operazioni Git. Deve essere nel formato |
hostPublicKey |
Obbligatorio. Contenuto di una chiave SSH pubblica per verificare l'identità di un host Git remoto. |
WorkspaceCompilationOverrides
| Rappresentazione JSON |
|---|
{ "defaultDatabase": string, "schemaSuffix": string, "tablePrefix": string } |
| Campi | |
|---|---|
defaultDatabase |
Facoltativo. Il database predefinito (ID progetto Google Cloud). |
schemaSuffix |
Facoltativo. Il suffisso da aggiungere a tutti i nomi degli schemi (ID set di dati BigQuery). |
tablePrefix |
Facoltativo. Il prefisso da aggiungere all'inizio di tutti i nomi delle tabelle. |
LabelsEntry
| Rappresentazione JSON |
|---|
{ "key": string, "value": string } |
| Campi | |
|---|---|
key |
|
value |
|
DataEncryptionState
| Rappresentazione JSON |
|---|
{ "kmsKeyVersionName": string } |
| Campi | |
|---|---|
kmsKeyVersionName |
Obbligatorio. Il nome della versione della chiave KMS con cui vengono criptati i dati di una risorsa. |
TokenStatus
Lo stato del token di autenticazione.
| Enum | |
|---|---|
TOKEN_STATUS_UNSPECIFIED |
Valore predefinito. Questo valore non viene utilizzato. |
NOT_FOUND |
Il token non è stato trovato in Secret Manager (o l'account di servizio Dataform non disponeva dell'autorizzazione per accedervi). |
INVALID |
Il token non può essere utilizzato per l'autenticazione rispetto al repository Git remoto. |
VALID |
Il token è stato utilizzato correttamente per l'autenticazione con il repository Git remoto. |
Schema di output
Rappresenta un repository Git Dataform.
Repository
| Rappresentazione JSON |
|---|
{ "name": string, "createTime": string, "displayName": string, "gitRemoteSettings": { object ( |
| Campi | |
|---|---|
name |
Identificatore. Il nome del repository. |
createTime |
Solo output. Il timestamp di creazione del repository. Utilizza RFC 3339, in cui l'output generato è sempre con normalizzazione Z e utilizza 0, 3, 6 o 9 cifre frazionarie. Sono accettati anche offset diversi da "Z". Esempi: |
displayName |
Facoltativo. Il nome intuitivo del repository. |
gitRemoteSettings |
Facoltativo. Se impostato, configura questo repository in modo che sia collegato a un Git remoto. |
npmrcEnvironmentVariablesSecretVersion |
Facoltativo. Il nome della versione del secret di Secret Manager da utilizzare per interpolare le variabili nel file .npmrc per le operazioni di installazione dei pacchetti. Deve essere nel formato |
workspaceCompilationOverrides |
Facoltativo. Se impostati, i campi di |
labels |
Facoltativo. Etichette utente del repository. Un oggetto contenente un elenco di coppie |
setAuthenticatedUserAdmin |
Facoltativo. Solo input. Se impostata su true, all'utente autenticato verrà concesso il ruolo roles/dataform.admin nel repository creato. Per modificare l'accesso al repository creato in un secondo momento, applica setIamPolicy da https://cloud.google.com/dataform/reference/rest#rest-resource:-v1beta1.projects.locations.repositories |
serviceAccount |
Facoltativo. Il account di servizio con cui eseguire le chiamate del flusso di lavoro. |
kmsKeyName |
Facoltativo. Il riferimento a una chiave di crittografia KMS. Se fornita, verrà utilizzata per criptare i dati utente nel repository e in tutte le risorse secondarie. Non è possibile aggiungere o aggiornare la chiave di crittografia dopo la creazione del repository. Esempio: |
dataEncryptionState |
Solo output. Lo stato di crittografia dei dati di un repository Git se questo repository è protetto da una chiave KMS. |
Campo unione
|
|
containingFolder |
Facoltativo. Il nome della cartella contenente il repository. Il campo è immutabile e può essere modificato tramite un'operazione MoveRepository. Formato: |
Campo unione
|
|
teamFolderName |
Solo output. Il nome della risorsa del TeamFolder a cui è associato questo repository. Deve avere il seguente formato: projects/{project}/locations/{location}/teamFolders/{teamFolder}. Se non è impostato, il repository non è associato a una cartella del team. |
Campo unione
|
|
internalMetadata |
Solo output. Tutte le informazioni sui metadati utilizzate internamente per pubblicare la risorsa. Ad esempio, timestamp, flag, campi di stato e così via. Il formato di questo campo è una stringa JSON. |
Timestamp
| Rappresentazione JSON |
|---|
{ "seconds": string, "nanos": integer } |
| Campi | |
|---|---|
seconds |
Rappresenta i secondi di tempo UTC dall'epoca di Unix 1970-01-01T00:00:00Z. Deve essere compreso tra -62135596800 e 253402300799 inclusi (corrispondenti a 0001-01-01T00:00:00Z e 9999-12-31T23:59:59Z). |
nanos |
Frazioni di secondo non negative con risoluzione in nanosecondi. Questo campo è la parte in nanosecondi della durata, non un'alternativa ai secondi. I valori negativi dei secondi con frazioni devono comunque avere valori di nanosecondi non negativi che vengono conteggiati in avanti nel tempo. Deve essere compreso tra 0 e 999.999.999 inclusi. |
GitRemoteSettings
| Rappresentazione JSON |
|---|
{ "url": string, "defaultBranch": string, "effectiveDefaultBranch": string, "authenticationTokenSecretVersion": string, "sshAuthenticationConfig": { object ( |
| Campi | |
|---|---|
url |
Obbligatorio. L'URL del repository Git remoto. |
defaultBranch |
Facoltativo. Il nome del ramo predefinito del repository Git remoto. Se non viene impostato, verrà utilizzato |
effectiveDefaultBranch |
Solo output. Il nome del ramo predefinito effettivo del repository Git remoto. Se impostato, questo è il nome del branch predefinito del Git remoto, altrimenti è |
authenticationTokenSecretVersion |
Facoltativo. Il nome della versione del secret di Secret Manager da utilizzare come token di autenticazione per le operazioni Git. Deve essere nel formato |
sshAuthenticationConfig |
Facoltativo. Campi di autenticazione per URI remoti che utilizzano il protocollo SSH. |
tokenStatus |
Solo output. Obsoleto: il campo non contiene informazioni sullo stato del token. Utilizza invece https://cloud.google.com/dataform/reference/rest/v1beta1/projects.locations.repositories/computeAccessTokenStatus |
Campo unione
|
|
gitRepositoryLink |
Facoltativo. Nome della risorsa per |
SshAuthenticationConfig
| Rappresentazione JSON |
|---|
{ "userPrivateKeySecretVersion": string, "hostPublicKey": string } |
| Campi | |
|---|---|
userPrivateKeySecretVersion |
Obbligatorio. Il nome della versione del secret Secret Manager da utilizzare come chiave privata SSH per le operazioni Git. Deve essere nel formato |
hostPublicKey |
Obbligatorio. Contenuto di una chiave SSH pubblica per verificare l'identità di un host Git remoto. |
WorkspaceCompilationOverrides
| Rappresentazione JSON |
|---|
{ "defaultDatabase": string, "schemaSuffix": string, "tablePrefix": string } |
| Campi | |
|---|---|
defaultDatabase |
Facoltativo. Il database predefinito (ID progetto Google Cloud). |
schemaSuffix |
Facoltativo. Il suffisso da aggiungere a tutti i nomi degli schemi (ID set di dati BigQuery). |
tablePrefix |
Facoltativo. Il prefisso da aggiungere all'inizio di tutti i nomi delle tabelle. |
LabelsEntry
| Rappresentazione JSON |
|---|
{ "key": string, "value": string } |
| Campi | |
|---|---|
key |
|
value |
|
DataEncryptionState
| Rappresentazione JSON |
|---|
{ "kmsKeyVersionName": string } |
| Campi | |
|---|---|
kmsKeyVersionName |
Obbligatorio. Il nome della versione della chiave KMS con cui vengono criptati i dati di una risorsa. |
TokenStatus
Lo stato del token di autenticazione.
| Enum | |
|---|---|
TOKEN_STATUS_UNSPECIFIED |
Valore predefinito. Questo valore non viene utilizzato. |
NOT_FOUND |
Il token non è stato trovato in Secret Manager (o l'account di servizio Dataform non disponeva dell'autorizzazione per accedervi). |
INVALID |
Il token non può essere utilizzato per l'autenticazione rispetto al repository Git remoto. |
VALID |
Il token è stato utilizzato correttamente per l'autenticazione con il repository Git remoto. |
Annotazioni dello strumento
Le annotazioni dello strumento vengono inviate ai client MCP per descrivere il rischio di base di un determinato strumento. La maggior parte dei client considera questi suggerimenti non attendibili, ma possono essere utilizzati per decidere quando inviare a un utente una richiesta di conferma.
Oltre alla stringa del titolo, sono definiti i seguenti suggerimenti booleani:
readOnlyHint: se è true, lo strumento non modifica il suo ambiente. Valore predefinito: false.destructiveHint: se è true, lo strumento può eseguire azioni distruttive. Se il valore è false, lo strumento può eseguire solo azioni additive. Valore predefinito: true.idempotentHint: se è true, chiamare ripetutamente lo strumento con gli stessi argomenti non avrà alcun effetto aggiuntivo sul suo ambiente. Valore predefinito: false.openWorldHint: se è true, lo strumento può interagire con un "open world" di entità esterne. Se è false, lo strumento può interagire solo con le entità interne. Ad esempio, uno strumento di ricerca web sarebbe open world, mentre uno strumento di memoria no.
Suggerimento distruttivo: ❌ | Suggerimento idempotente: ❌ | Suggerimento di sola lettura: ❌ | Suggerimento open world: ❌