MCP Tools Reference: dataform.googleapis.com

Strumento: create_workflow_invocation

Crea una nuova chiamata del workflow in un determinato repository Dataform.

Il valore parametro parent deve essere nel formato projects/{project_id}/locations/{location}/repositories/{repository}.

È obbligatorio specificare il valore parametro compilation_result o workflow_config.

  • Se utilizzi compilation_result, il valore parametro deve essere nel formato projects/{project_id}/locations/{location}/repositories/{repository}/compilationResults/{compilation_result}.
  • Se utilizzi workflow_config, il valore parametro deve essere nel formato projects/{project_id}/locations/{location}/repositories/{repository}/workflowConfigs/{workflow_config}.

Prerequisito: per attivare una chiamata, devi prima creare un compilation_result utilizzando lo strumento create_compilation_result o un workflow_config utilizzando lo strumento create_workflow_config. Non puoi attivare una chiamata direttamente dal codice del repository non elaborato.

L'invocazione del workflow viene eseguita con un account di servizio determinato dall'origine di compilazione:

  • Se utilizzi compilation_result, imposta il valore parametro invocationConfig.serviceAccount. Se omesso, viene utilizzato il valore predefinito service_account del repository.
  • Se utilizzi workflow_config, non impostare il parametro invocationConfig. L'invocazione viene eseguita automaticamente con il account di servizio configurato in quella configurazione del workflow.

Il account di servizio non può essere l'agente di servizio Dataform predefinito. Il account di servizio deve disporre delle autorizzazioni necessarie per eseguire il flusso di lavoro e l'utente deve essere autorizzato ad agire come il account di servizio selezionato. Questa autorizzazione viene in genere concessa tramite il ruolo Utente service account (roles/iam.serviceAccountUser), che può essere concesso al account di servizio stesso o al progetto che lo contiene.

Il seguente esempio di codice mostra come utilizzare curl per chiamare lo strumento MCP create_workflow_invocation.

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": "create_workflow_invocation",
    "arguments": {
      // Provide these details according to the MCP tool specification.
    }
  },
  "jsonrpc": "2.0",
  "id": 1
}'

Schema di input

CreateWorkflowInvocation messaggio di richiesta.

CreateWorkflowInvocationRequest

Rappresentazione JSON
{
  "parent": string,
  "workflowInvocation": {
    object (WorkflowInvocation)
  }
}
Campi
parent

string

Obbligatorio. Il repository in cui creare la chiamata del flusso di lavoro. Deve essere nel formato projects/*/locations/*/repositories/*.

workflowInvocation

object (WorkflowInvocation)

Obbligatorio. La risorsa di chiamata del workflow da creare.

WorkflowInvocation

Rappresentazione JSON
{
  "name": string,
  "invocationConfig": {
    object (InvocationConfig)
  },
  "state": enum (State),
  "invocationTiming": {
    object (Interval)
  },
  "resolvedCompilationResult": string,
  "dataEncryptionState": {
    object (DataEncryptionState)
  },
  "privateResourceMetadata": {
    object (PrivateResourceMetadata)
  },
  "pipelineConfig": {
    object (PipelineConfig)
  },

  // Union field compilation_source can be only one of the following:
  "compilationResult": string,
  "workflowConfig": string
  // End of list of possible types for union field compilation_source.

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

string

Solo output. Il nome dell'invocazione del workflow.

invocationConfig

object (InvocationConfig)

Immutabile. Se non viene impostato, verrà utilizzato un InvocationConfig predefinito.

state

enum (State)

Solo output. Lo stato attuale di questa chiamata del flusso di lavoro.

invocationTiming

object (Interval)

Solo output. Dettagli di temporizzazione di questa chiamata del flusso di lavoro.

resolvedCompilationResult

string

Solo output. Il risultato della compilazione risolto utilizzato per creare questa chiamata. Sarà nel formato projects/*/locations/*/repositories/*/compilationResults/*.

dataEncryptionState

object (DataEncryptionState)

Solo output. Imposta solo se il repository ha una chiave KMS.

privateResourceMetadata

object (PrivateResourceMetadata)

Solo output. Metadati che indicano se questa risorsa è limitata all'utente. La risorsa WorkflowInvocation è user_scoped solo se proviene da un risultato di compilazione e il risultato di compilazione è limitato all'utente.

pipelineConfig

object (PipelineConfig)

Solo output. Le opzioni della pipeline che definiscono il tipo e il percorso della pipeline all'interno del repository Git.

Campo unione compilation_source. L'origine del risultato della compilazione da utilizzare per questa chiamata. compilation_source può essere solo uno dei seguenti tipi:
compilationResult

string

Immutabile. Il nome del risultato della compilazione da utilizzare per questa chiamata. Deve essere nel formato projects/*/locations/*/repositories/*/compilationResults/*.

workflowConfig

string

Immutabile. Il nome della configurazione del flusso di lavoro da richiamare. Deve essere nel formato projects/*/locations/*/repositories/*/workflowConfigs/*.

Campo unione _internal_metadata.

_internal_metadata può essere solo uno dei seguenti tipi:

internalMetadata

string

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.

InvocationConfig

Rappresentazione JSON
{
  "includedTargets": [
    {
      object (Target)
    }
  ],
  "includedTags": [
    string
  ],
  "transitiveDependenciesIncluded": boolean,
  "transitiveDependentsIncluded": boolean,
  "fullyRefreshIncrementalTablesEnabled": boolean,
  "serviceAccount": string,

  // Union field _query_priority can be only one of the following:
  "queryPriority": enum (QueryPriority)
  // End of list of possible types for union field _query_priority.
}
Campi
includedTargets[]

object (Target)

Facoltativo. Il set di identificatori di azioni da includere.

includedTags[]

string

Facoltativo. L'insieme di tag da includere.

transitiveDependenciesIncluded

boolean

Facoltativo. Se è impostato su true, vengono eseguite le dipendenze transitive delle azioni incluse.

transitiveDependentsIncluded

boolean

Facoltativo. Se è impostato su true, vengono eseguiti i dipendenti transitivi delle azioni incluse.

fullyRefreshIncrementalTablesEnabled

boolean

Facoltativo. Se impostato su true, tutte le tabelle incrementali vengono aggiornate completamente.

serviceAccount

string

Facoltativo. Il account di servizio con cui eseguire le chiamate del flusso di lavoro.

Campo unione _query_priority.

_query_priority può essere solo uno dei seguenti tipi:

queryPriority

enum (QueryPriority)

Facoltativo. Specifica la priorità per l'esecuzione delle query in BigQuery. Per ulteriori informazioni, visita la pagina https://cloud.google.com/bigquery/docs/running-queries#queries.

Target

Rappresentazione JSON
{
  "database": string,
  "schema": string,
  "name": string
}
Campi
database

string

Facoltativo. Il database dell'azione (ID progetto Google Cloud) .

schema

string

Facoltativo. Lo schema dell'azione (ID set di dati BigQuery), all'interno di database.

name

string

Facoltativo. Il nome dell'azione, compreso tra database e schema.

Intervallo

Rappresentazione JSON
{
  "startTime": string,
  "endTime": string
}
Campi
startTime

string (Timestamp format)

Facoltativo. Inizio inclusivo dell'intervallo.

Se specificato, un timestamp corrispondente a questo intervallo dovrà essere uguale o successivo all'inizio.

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: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" o "2014-10-02T15:01:23+05:30".

endTime

string (Timestamp format)

Facoltativo. Fine esclusiva dell'intervallo.

Se specificato, un timestamp corrispondente a questo intervallo dovrà essere precedente alla fine.

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: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" o "2014-10-02T15:01:23+05:30".

Timestamp

Rappresentazione JSON
{
  "seconds": string,
  "nanos": integer
}
Campi
seconds

string (int64 format)

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

integer

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.

DataEncryptionState

Rappresentazione JSON
{
  "kmsKeyVersionName": string
}
Campi
kmsKeyVersionName

string

Obbligatorio. Il nome della versione della chiave KMS con cui vengono criptati i dati di una risorsa.

PrivateResourceMetadata

Rappresentazione JSON
{
  "userScoped": boolean
}
Campi
userScoped

boolean

Solo output. Se true, questa risorsa è limitata all'utente, il che significa che è uno spazio di lavoro o proviene da uno spazio di lavoro.

PipelineConfig

Rappresentazione JSON
{
  "pipelineType": enum (PipelineType),
  "path": string
}
Campi
pipelineType

enum (PipelineType)

Obbligatorio. Il tipo di pipeline.

path

string

Obbligatorio. Il percorso relativo all'interno del repository Git in cui è definita la pipeline. Ad esempio, per una pipeline Dataform, è un percorso alla cartella in cui si trova workflow_settings.yaml o dataform.json.

QueryPriority

Tipi di priorità per l'esecuzione delle query in BigQuery.

Enum
QUERY_PRIORITY_UNSPECIFIED Valore predefinito. Questo valore non viene utilizzato.
INTERACTIVE La query verrà eseguita in BigQuery con priorità interattiva. Per ulteriori informazioni, visita la pagina https://cloud.google.com/bigquery/docs/running-queries#queries.
BATCH La query verrà eseguita in BigQuery con priorità batch. Per ulteriori informazioni, visita la pagina https://cloud.google.com/bigquery/docs/running-queries#batchqueries.

Stato

Rappresenta lo stato attuale di una chiamata del workflow.

Enum
STATE_UNSPECIFIED Valore predefinito. Questo valore non viene utilizzato.
RUNNING L'invocazione del workflow è attualmente in esecuzione.
SUCCEEDED L'invocazione del workflow è riuscita. Uno stato terminale.
CANCELLED La chiamata al workflow è stata annullata. Uno stato terminale.
FAILED L'invocazione del workflow non è riuscita. Uno stato terminale.
CANCELING La chiamata del flusso di lavoro è in fase di annullamento, ma alcune azioni sono ancora in esecuzione.

PipelineType

Il tipo di pipeline. Questo periodo potrebbe essere esteso in futuro. In caso di UNSPECIFIED, l'errore verrà generato.

Enum
PIPELINE_TYPE_UNSPECIFIED Valore predefinito. Questo valore non viene utilizzato.
DATAFORM Pipeline Dataform normale.
SQL Asset di un singolo file SQL.
NOTEBOOK Asset di un singolo file del notebook.

Schema di output

Rappresenta una singola invocazione di un risultato di compilazione.

WorkflowInvocation

Rappresentazione JSON
{
  "name": string,
  "invocationConfig": {
    object (InvocationConfig)
  },
  "state": enum (State),
  "invocationTiming": {
    object (Interval)
  },
  "resolvedCompilationResult": string,
  "dataEncryptionState": {
    object (DataEncryptionState)
  },
  "privateResourceMetadata": {
    object (PrivateResourceMetadata)
  },
  "pipelineConfig": {
    object (PipelineConfig)
  },

  // Union field compilation_source can be only one of the following:
  "compilationResult": string,
  "workflowConfig": string
  // End of list of possible types for union field compilation_source.

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

string

Solo output. Il nome dell'invocazione del workflow.

invocationConfig

object (InvocationConfig)

Immutabile. Se non viene impostato, verrà utilizzato un InvocationConfig predefinito.

state

enum (State)

Solo output. Lo stato attuale di questa chiamata del flusso di lavoro.

invocationTiming

object (Interval)

Solo output. Dettagli di temporizzazione di questa chiamata del flusso di lavoro.

resolvedCompilationResult

string

Solo output. Il risultato della compilazione risolto utilizzato per creare questa chiamata. Sarà nel formato projects/*/locations/*/repositories/*/compilationResults/*.

dataEncryptionState

object (DataEncryptionState)

Solo output. Imposta solo se il repository ha una chiave KMS.

privateResourceMetadata

object (PrivateResourceMetadata)

Solo output. Metadati che indicano se questa risorsa è limitata all'utente. La risorsa WorkflowInvocation è user_scoped solo se proviene da un risultato di compilazione e il risultato di compilazione è limitato all'utente.

pipelineConfig

object (PipelineConfig)

Solo output. Le opzioni della pipeline che definiscono il tipo e il percorso della pipeline all'interno del repository Git.

Campo unione compilation_source. L'origine del risultato della compilazione da utilizzare per questa chiamata. compilation_source può essere solo uno dei seguenti tipi:
compilationResult

string

Immutabile. Il nome del risultato della compilazione da utilizzare per questa chiamata. Deve essere nel formato projects/*/locations/*/repositories/*/compilationResults/*.

workflowConfig

string

Immutabile. Il nome della configurazione del flusso di lavoro da richiamare. Deve essere nel formato projects/*/locations/*/repositories/*/workflowConfigs/*.

Campo unione _internal_metadata.

_internal_metadata può essere solo uno dei seguenti tipi:

internalMetadata

string

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.

InvocationConfig

Rappresentazione JSON
{
  "includedTargets": [
    {
      object (Target)
    }
  ],
  "includedTags": [
    string
  ],
  "transitiveDependenciesIncluded": boolean,
  "transitiveDependentsIncluded": boolean,
  "fullyRefreshIncrementalTablesEnabled": boolean,
  "serviceAccount": string,

  // Union field _query_priority can be only one of the following:
  "queryPriority": enum (QueryPriority)
  // End of list of possible types for union field _query_priority.
}
Campi
includedTargets[]

object (Target)

Facoltativo. Il set di identificatori di azioni da includere.

includedTags[]

string

Facoltativo. L'insieme di tag da includere.

transitiveDependenciesIncluded

boolean

Facoltativo. Se è impostato su true, vengono eseguite le dipendenze transitive delle azioni incluse.

transitiveDependentsIncluded

boolean

Facoltativo. Se è impostato su true, vengono eseguiti i dipendenti transitivi delle azioni incluse.

fullyRefreshIncrementalTablesEnabled

boolean

Facoltativo. Se impostato su true, tutte le tabelle incrementali vengono aggiornate completamente.

serviceAccount

string

Facoltativo. Il account di servizio con cui eseguire le chiamate del flusso di lavoro.

Campo unione _query_priority.

_query_priority può essere solo uno dei seguenti tipi:

queryPriority

enum (QueryPriority)

Facoltativo. Specifica la priorità per l'esecuzione delle query in BigQuery. Per ulteriori informazioni, visita la pagina https://cloud.google.com/bigquery/docs/running-queries#queries.

Target

Rappresentazione JSON
{
  "database": string,
  "schema": string,
  "name": string
}
Campi
database

string

Facoltativo. Il database dell'azione (ID progetto Google Cloud) .

schema

string

Facoltativo. Lo schema dell'azione (ID set di dati BigQuery), all'interno di database.

name

string

Facoltativo. Il nome dell'azione, compreso tra database e schema.

Intervallo

Rappresentazione JSON
{
  "startTime": string,
  "endTime": string
}
Campi
startTime

string (Timestamp format)

Facoltativo. Inizio inclusivo dell'intervallo.

Se specificato, un timestamp corrispondente a questo intervallo dovrà essere uguale o successivo all'inizio.

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: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" o "2014-10-02T15:01:23+05:30".

endTime

string (Timestamp format)

Facoltativo. Fine esclusiva dell'intervallo.

Se specificato, un timestamp corrispondente a questo intervallo dovrà essere precedente alla fine.

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: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" o "2014-10-02T15:01:23+05:30".

Timestamp

Rappresentazione JSON
{
  "seconds": string,
  "nanos": integer
}
Campi
seconds

string (int64 format)

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

integer

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.

DataEncryptionState

Rappresentazione JSON
{
  "kmsKeyVersionName": string
}
Campi
kmsKeyVersionName

string

Obbligatorio. Il nome della versione della chiave KMS con cui vengono criptati i dati di una risorsa.

PrivateResourceMetadata

Rappresentazione JSON
{
  "userScoped": boolean
}
Campi
userScoped

boolean

Solo output. Se true, questa risorsa è limitata all'utente, il che significa che è uno spazio di lavoro o proviene da uno spazio di lavoro.

PipelineConfig

Rappresentazione JSON
{
  "pipelineType": enum (PipelineType),
  "path": string
}
Campi
pipelineType

enum (PipelineType)

Obbligatorio. Il tipo di pipeline.

path

string

Obbligatorio. Il percorso relativo all'interno del repository Git in cui è definita la pipeline. Ad esempio, per una pipeline Dataform, è un percorso alla cartella in cui si trova workflow_settings.yaml o dataform.json.

QueryPriority

Tipi di priorità per l'esecuzione delle query in BigQuery.

Enum
QUERY_PRIORITY_UNSPECIFIED Valore predefinito. Questo valore non viene utilizzato.
INTERACTIVE La query verrà eseguita in BigQuery con priorità interattiva. Per ulteriori informazioni, visita la pagina https://cloud.google.com/bigquery/docs/running-queries#queries.
BATCH La query verrà eseguita in BigQuery con priorità batch. Per ulteriori informazioni, visita la pagina https://cloud.google.com/bigquery/docs/running-queries#batchqueries.

Stato

Rappresenta lo stato attuale di una chiamata del workflow.

Enum
STATE_UNSPECIFIED Valore predefinito. Questo valore non viene utilizzato.
RUNNING L'invocazione del workflow è attualmente in esecuzione.
SUCCEEDED L'invocazione del workflow è riuscita. Uno stato terminale.
CANCELLED La chiamata al workflow è stata annullata. Uno stato terminale.
FAILED L'invocazione del workflow non è riuscita. Uno stato terminale.
CANCELING La chiamata del flusso di lavoro è in fase di annullamento, ma alcune azioni sono ancora in esecuzione.

PipelineType

Il tipo di pipeline. Questo periodo potrebbe essere esteso in futuro. In caso di UNSPECIFIED, l'errore verrà generato.

Enum
PIPELINE_TYPE_UNSPECIFIED Valore predefinito. Questo valore non viene utilizzato.
DATAFORM Pipeline Dataform normale.
SQL Asset di un singolo file SQL.
NOTEBOOK Asset di un singolo file del notebook.

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: ❌