Ferramenta: create_workflow_invocation
Cria uma nova invocação de fluxo de trabalho em um determinado repositório do Dataform.
O valor de parâmetro parent precisa estar no formato projects/{project_id}/locations/{location}/repositories/{repository}.
O valor do parâmetro compilation_result ou workflow_config é obrigatório.
- Se você usar
compilation_result, o valor de parâmetro precisará estar no formatoprojects/{project_id}/locations/{location}/repositories/{repository}/compilationResults/{compilation_result}. - Se você usar
workflow_config, o valor de parâmetro precisará estar no formatoprojects/{project_id}/locations/{location}/repositories/{repository}/workflowConfigs/{workflow_config}.
Pré-requisito: para acionar uma invocação, primeiro crie um compilation_result usando a ferramenta create_compilation_result ou um workflow_config usando a ferramenta create_workflow_config. Não é possível acionar uma invocação diretamente do código bruto do repositório.
A invocação do fluxo de trabalho é executada em uma conta de serviço determinada pela origem da compilação:
- Se você estiver usando
compilation_result, defina o valor do parâmetroinvocationConfig.serviceAccount. Se omitido, oservice_accountpadrão do repositório será usado. - Se você estiver usando
workflow_config, não defina o parâmetroinvocationConfig. A invocação é executada automaticamente na conta de serviço configurada nessa configuração de fluxo de trabalho.
A conta de serviço não pode ser o agente de serviço padrão do Dataform. A conta de serviço precisa ter as permissões necessárias para executar o fluxo de trabalho, e o usuário precisa estar autorizado a atuar como a conta de serviço selecionada. Essa autorização geralmente é concedida pelo papel de Usuário da conta de serviço (roles/iam.serviceAccountUser), que pode ser concedido na própria conta de serviço ou no projeto que a contém.
O exemplo de código a seguir mostra como usar curl para chamar a ferramenta MCP create_workflow_invocation.
| Solicitação 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 }' |
Esquema de entrada
Mensagem de solicitação CreateWorkflowInvocation.
CreateWorkflowInvocationRequest
| Representação JSON |
|---|
{
"parent": string,
"workflowInvocation": {
object ( |
| Campos | |
|---|---|
parent |
Obrigatório. O repositório em que a invocação do fluxo de trabalho será criada. Precisa estar no formato |
workflowInvocation |
Obrigatório. O recurso de invocação de fluxo de trabalho a ser criado. |
WorkflowInvocation
| Representação JSON |
|---|
{ "name": string, "invocationConfig": { object ( |
| Campos | |
|---|---|
name |
Apenas saída. O nome da invocação do fluxo de trabalho. |
invocationConfig |
Imutável. Se não for definido, um InvocationConfig padrão será usado. |
state |
Apenas saída. O estado atual desta invocação de fluxo de trabalho. |
invocationTiming |
Apenas saída. Detalhes de tempo desta invocação de fluxo de trabalho. |
resolvedCompilationResult |
Apenas saída. O resultado da compilação resolvido que foi usado para criar essa invocação. Estará no formato |
dataEncryptionState |
Apenas saída. Só é definido se o repositório tiver uma chave do KMS. |
privateResourceMetadata |
Apenas saída. Metadados que indicam se este recurso tem escopo de usuário. O recurso |
pipelineConfig |
Apenas saída. As opções de pipeline que definem o tipo e o caminho do pipeline no repositório Git. |
Campo de união compilation_source. A origem do resultado da compilação a ser usada para esta invocação. compilation_source pode ser apenas de um dos tipos a seguir: |
|
compilationResult |
Imutável. O nome do resultado da compilação a ser usado para esta invocação. Precisa estar no formato |
workflowConfig |
Imutável. O nome da configuração de fluxo de trabalho a ser invocada. Precisa estar no formato |
Campo de união
|
|
internalMetadata |
Apenas saída. Todas as informações de metadados usadas internamente para veicular o recurso. Por exemplo: carimbos de data/hora, flags, campos de status etc. O formato desse campo é uma string JSON. |
InvocationConfig
| Representação JSON |
|---|
{ "includedTargets": [ { object ( |
| Campos | |
|---|---|
includedTargets[] |
Opcional. O conjunto de identificadores de ação a serem incluídos. |
includedTags[] |
Opcional. O conjunto de tags a serem incluídas. |
transitiveDependenciesIncluded |
Opcional. Quando definido como "true", as dependências transitivas das ações incluídas serão executadas. |
transitiveDependentsIncluded |
Opcional. Quando definido como "true", as dependências transitivas das ações incluídas serão executadas. |
fullyRefreshIncrementalTablesEnabled |
Opcional. Quando definido como "true", todas as tabelas incrementais serão atualizadas por completo. |
serviceAccount |
Opcional. A conta de serviço para executar invocações de fluxo de trabalho. |
Campo de união
|
|
queryPriority |
Opcional. Especifica a prioridade da execução de consultas no BigQuery. Para mais informações, acesse https://cloud.google.com/bigquery/docs/running-queries#queries. |
Destino
| Representação JSON |
|---|
{ "database": string, "schema": string, "name": string } |
| Campos | |
|---|---|
database |
Opcional. O banco de dados da ação (ID do projeto do Google Cloud) . |
schema |
Opcional. O esquema da ação (ID do conjunto de dados do BigQuery), em |
name |
Opcional. O nome da ação, dentro de |
Intervalo
| Representação JSON |
|---|
{ "startTime": string, "endTime": string } |
| Campos | |
|---|---|
startTime |
Opcional. Início inclusivo do intervalo. Se especificado, um carimbo de data/hora correspondente a esse intervalo precisará ser igual ou posterior ao início. Usa o padrão RFC 3339, em que a saída gerada é sempre convertida em Z e tem 0, 3, 6 ou 9 dígitos fracionários. Além de Z, outros ajustes também são aceitos. Exemplos: |
endTime |
Opcional. Fim exclusivo do intervalo. Se especificado, um carimbo de data/hora correspondente a esse intervalo precisará ser anterior ao fim. Usa o padrão RFC 3339, em que a saída gerada é sempre convertida em Z e tem 0, 3, 6 ou 9 dígitos fracionários. Além de Z, outros ajustes também são aceitos. Exemplos: |
Carimbo de data/hora
| Representação JSON |
|---|
{ "seconds": string, "nanos": integer } |
| Campos | |
|---|---|
seconds |
Representa os segundos do horário UTC desde a época Unix 1970-01-01T00:00:00Z. Precisa estar entre -62135596800 e 253402300799 (o que corresponde a 0001-01-01T00:00:00Z a 9999-12-31T23:59:59Z). |
nanos |
Frações não negativas de um segundo com resolução de nanossegundos. Esse campo é a parte de nanossegundos da duração, não uma alternativa aos segundos. Os valores de segundos negativos com frações ainda precisam ter valores em nanossegundos não negativos que representam períodos posteriores. O valor precisa ser de 0 a 999.999.999 (inclusive). |
DataEncryptionState
| Representação JSON |
|---|
{ "kmsKeyVersionName": string } |
| Campos | |
|---|---|
kmsKeyVersionName |
Obrigatório. O nome da versão da chave do KMS com que os dados de um recurso são criptografados. |
PrivateResourceMetadata
| Representação JSON |
|---|
{ "userScoped": boolean } |
| Campos | |
|---|---|
userScoped |
Apenas saída. Se for "true", esse recurso terá escopo de usuário, ou seja, será um espaço de trabalho ou terá origem em um espaço de trabalho. |
PipelineConfig
| Representação JSON |
|---|
{
"pipelineType": enum ( |
| Campos | |
|---|---|
pipelineType |
Obrigatório. O tipo do pipeline. |
path |
Obrigatório. O caminho relativo no repositório Git em que o pipeline está definido. Por exemplo, para um pipeline do Dataform, é um caminho para a pasta em que |
QueryPriority
Tipos de prioridade para execução de consultas no BigQuery.
| Tipos enumerados | |
|---|---|
QUERY_PRIORITY_UNSPECIFIED |
Valor padrão. Esse valor não é usado. |
INTERACTIVE |
A consulta será executada no BigQuery com prioridade interativa. Para mais informações, acesse https://cloud.google.com/bigquery/docs/running-queries#queries. |
BATCH |
A consulta será executada no BigQuery com prioridade de lote. Para mais informações, acesse https://cloud.google.com/bigquery/docs/running-queries#batchqueries. |
Estado
Representa o estado atual de uma invocação de fluxo de trabalho.
| Tipos enumerados | |
|---|---|
STATE_UNSPECIFIED |
Valor padrão. Esse valor não é usado. |
RUNNING |
A invocação do fluxo de trabalho está em execução. |
SUCCEEDED |
A invocação do fluxo de trabalho foi concluída. Um estado terminal. |
CANCELLED |
A invocação do fluxo de trabalho foi cancelada. Um estado terminal. |
FAILED |
A invocação do fluxo de trabalho falhou. Um estado terminal. |
CANCELING |
A invocação do fluxo de trabalho está sendo cancelada, mas algumas ações ainda estão em execução. |
PipelineType
O tipo do pipeline. Isso pode ser estendido no futuro. Em caso de UNSPECIFIED, o erro será gerado.
| Tipos enumerados | |
|---|---|
PIPELINE_TYPE_UNSPECIFIED |
Valor padrão. Esse valor não é usado. |
DATAFORM |
Pipeline regular do Dataform. |
SQL |
Ativo de arquivo único SQL. |
NOTEBOOK |
Ativo de arquivo único do notebook. |
Esquema de saída
Representa uma única invocação de um resultado de compilação.
WorkflowInvocation
| Representação JSON |
|---|
{ "name": string, "invocationConfig": { object ( |
| Campos | |
|---|---|
name |
Apenas saída. O nome da invocação do fluxo de trabalho. |
invocationConfig |
Imutável. Se não for definido, um InvocationConfig padrão será usado. |
state |
Apenas saída. O estado atual desta invocação de fluxo de trabalho. |
invocationTiming |
Apenas saída. Detalhes de tempo desta invocação de fluxo de trabalho. |
resolvedCompilationResult |
Apenas saída. O resultado da compilação resolvido que foi usado para criar essa invocação. Estará no formato |
dataEncryptionState |
Apenas saída. Só é definido se o repositório tiver uma chave do KMS. |
privateResourceMetadata |
Apenas saída. Metadados que indicam se este recurso tem escopo de usuário. O recurso |
pipelineConfig |
Apenas saída. As opções de pipeline que definem o tipo e o caminho do pipeline no repositório Git. |
Campo de união compilation_source. A origem do resultado da compilação a ser usada para esta invocação. compilation_source pode ser apenas de um dos tipos a seguir: |
|
compilationResult |
Imutável. O nome do resultado da compilação a ser usado para esta invocação. Precisa estar no formato |
workflowConfig |
Imutável. O nome da configuração de fluxo de trabalho a ser invocada. Precisa estar no formato |
Campo de união
|
|
internalMetadata |
Apenas saída. Todas as informações de metadados usadas internamente para veicular o recurso. Por exemplo: carimbos de data/hora, flags, campos de status etc. O formato desse campo é uma string JSON. |
InvocationConfig
| Representação JSON |
|---|
{ "includedTargets": [ { object ( |
| Campos | |
|---|---|
includedTargets[] |
Opcional. O conjunto de identificadores de ação a serem incluídos. |
includedTags[] |
Opcional. O conjunto de tags a serem incluídas. |
transitiveDependenciesIncluded |
Opcional. Quando definido como "true", as dependências transitivas das ações incluídas serão executadas. |
transitiveDependentsIncluded |
Opcional. Quando definido como "true", as dependências transitivas das ações incluídas serão executadas. |
fullyRefreshIncrementalTablesEnabled |
Opcional. Quando definido como "true", todas as tabelas incrementais serão atualizadas por completo. |
serviceAccount |
Opcional. A conta de serviço para executar invocações de fluxo de trabalho. |
Campo de união
|
|
queryPriority |
Opcional. Especifica a prioridade da execução de consultas no BigQuery. Para mais informações, acesse https://cloud.google.com/bigquery/docs/running-queries#queries. |
Destino
| Representação JSON |
|---|
{ "database": string, "schema": string, "name": string } |
| Campos | |
|---|---|
database |
Opcional. O banco de dados da ação (ID do projeto do Google Cloud) . |
schema |
Opcional. O esquema da ação (ID do conjunto de dados do BigQuery), em |
name |
Opcional. O nome da ação, dentro de |
Intervalo
| Representação JSON |
|---|
{ "startTime": string, "endTime": string } |
| Campos | |
|---|---|
startTime |
Opcional. Início inclusivo do intervalo. Se especificado, um carimbo de data/hora correspondente a esse intervalo precisará ser igual ou posterior ao início. Usa o padrão RFC 3339, em que a saída gerada é sempre convertida em Z e tem 0, 3, 6 ou 9 dígitos fracionários. Além de Z, outros ajustes também são aceitos. Exemplos: |
endTime |
Opcional. Fim exclusivo do intervalo. Se especificado, um carimbo de data/hora correspondente a esse intervalo precisará ser anterior ao fim. Usa o padrão RFC 3339, em que a saída gerada é sempre convertida em Z e tem 0, 3, 6 ou 9 dígitos fracionários. Além de Z, outros ajustes também são aceitos. Exemplos: |
Carimbo de data/hora
| Representação JSON |
|---|
{ "seconds": string, "nanos": integer } |
| Campos | |
|---|---|
seconds |
Representa os segundos do horário UTC desde a época Unix 1970-01-01T00:00:00Z. Precisa estar entre -62135596800 e 253402300799 (o que corresponde a 0001-01-01T00:00:00Z a 9999-12-31T23:59:59Z). |
nanos |
Frações não negativas de um segundo com resolução de nanossegundos. Esse campo é a parte de nanossegundos da duração, não uma alternativa aos segundos. Os valores de segundos negativos com frações ainda precisam ter valores em nanossegundos não negativos que representam períodos posteriores. O valor precisa ser de 0 a 999.999.999 (inclusive). |
DataEncryptionState
| Representação JSON |
|---|
{ "kmsKeyVersionName": string } |
| Campos | |
|---|---|
kmsKeyVersionName |
Obrigatório. O nome da versão da chave do KMS com que os dados de um recurso são criptografados. |
PrivateResourceMetadata
| Representação JSON |
|---|
{ "userScoped": boolean } |
| Campos | |
|---|---|
userScoped |
Apenas saída. Se for "true", esse recurso terá escopo de usuário, ou seja, será um espaço de trabalho ou terá origem em um espaço de trabalho. |
PipelineConfig
| Representação JSON |
|---|
{
"pipelineType": enum ( |
| Campos | |
|---|---|
pipelineType |
Obrigatório. O tipo do pipeline. |
path |
Obrigatório. O caminho relativo no repositório Git em que o pipeline está definido. Por exemplo, para um pipeline do Dataform, é um caminho para a pasta em que |
QueryPriority
Tipos de prioridade para execução de consultas no BigQuery.
| Tipos enumerados | |
|---|---|
QUERY_PRIORITY_UNSPECIFIED |
Valor padrão. Esse valor não é usado. |
INTERACTIVE |
A consulta será executada no BigQuery com prioridade interativa. Para mais informações, acesse https://cloud.google.com/bigquery/docs/running-queries#queries. |
BATCH |
A consulta será executada no BigQuery com prioridade de lote. Para mais informações, acesse https://cloud.google.com/bigquery/docs/running-queries#batchqueries. |
Estado
Representa o estado atual de uma invocação de fluxo de trabalho.
| Tipos enumerados | |
|---|---|
STATE_UNSPECIFIED |
Valor padrão. Esse valor não é usado. |
RUNNING |
A invocação do fluxo de trabalho está em execução. |
SUCCEEDED |
A invocação do fluxo de trabalho foi concluída. Um estado terminal. |
CANCELLED |
A invocação do fluxo de trabalho foi cancelada. Um estado terminal. |
FAILED |
A invocação do fluxo de trabalho falhou. Um estado terminal. |
CANCELING |
A invocação do fluxo de trabalho está sendo cancelada, mas algumas ações ainda estão em execução. |
PipelineType
O tipo do pipeline. Isso pode ser estendido no futuro. Em caso de UNSPECIFIED, o erro será gerado.
| Tipos enumerados | |
|---|---|
PIPELINE_TYPE_UNSPECIFIED |
Valor padrão. Esse valor não é usado. |
DATAFORM |
Pipeline regular do Dataform. |
SQL |
Ativo de arquivo único SQL. |
NOTEBOOK |
Ativo de arquivo único do notebook. |
Anotações de ferramentas
As anotações de ferramentas são enviadas aos clientes do MCP para descrever o risco básico de uma determinada ferramenta. A maioria dos clientes trata essas dicas como não confiáveis, mas elas podem ser usadas para decidir quando um pedido de confirmação pode ser enviado a um usuário.
Além da string de título, as seguintes dicas booleanas são definidas da seguinte maneira:
readOnlyHint: se for "true", a ferramenta não vai modificar o ambiente. Padrão: false.destructiveHint: se for "true", a ferramenta poderá realizar ações destrutivas. Se for "false", a ferramenta só poderá realizar ações aditivas. Padrão: verdadeiro.idempotentHint: se for "true", chamar a ferramenta repetidamente com os mesmos argumentos não terá efeito adicional no ambiente dela. Padrão: false.openWorldHint: se for "true", a ferramenta poderá interagir com um "mundo aberto" de entidades externas. Se for "false", a ferramenta só poderá interagir com entidades internas. Por exemplo, uma ferramenta de pesquisa na Web seria de mundo aberto, enquanto uma ferramenta de memória não seria.
Dica destrutiva: ❌ | Dica idempotente: ❌ | Dica somente leitura: ❌ | Dica de mundo aberto: ❌