Outil : create_repository
Crée un dépôt Dataform dans un projet et un emplacement Google Cloud donnés.
Cet outil établit la ressource racine requise pour tous les autres composants de transformation, tels que les résultats de compilation et les configurations de workflow. Vous devez créer un dépôt avant de pouvoir utiliser d'autres outils MCP Dataform. L'activation de cet outil est la première étape de la configuration d'un projet Dataform.
La valeur du paramètre parent doit être au format projects/{project_id}/locations/{location}.
La valeur du paramètre repository_id correspond à l'ID à utiliser pour le dépôt.
Omettez le paramètre strictActAsChecks pour le laisser non défini dans un nouveau dépôt. Notez que des vérifications strictes de l'identité sont appliquées par défaut aux nouveaux projets. Par conséquent, l'exécution d'un workflow dans ce dépôt nécessite un compte de service personnalisé.
L'exemple de code suivant montre comment utiliser curl pour appeler l'outil MCP create_repository.
| Requête 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_repository", "arguments": { // Provide these details according to the MCP tool specification. } }, "jsonrpc": "2.0", "id": 1 }' |
Schéma d'entrée
Message de requête CreateRepository.
CreateRepositoryRequest
| Représentation JSON |
|---|
{
"parent": string,
"repository": {
object ( |
| Champs | |
|---|---|
parent |
Obligatoire. Emplacement dans lequel créer le dépôt. Il doit respecter le format |
repository |
Obligatoire. Dépôt à créer. |
repositoryId |
Obligatoire. ID à utiliser pour le dépôt, qui constituera le composant final du nom de ressource du dépôt. |
Dépôt
| Représentation JSON |
|---|
{ "name": string, "createTime": string, "displayName": string, "gitRemoteSettings": { object ( |
| Champs | |
|---|---|
name |
Identifiant. Nom du dépôt. |
createTime |
Uniquement en sortie. Code temporel de la création du dépôt. Utilise la norme RFC 3339, où la sortie générée utilise toujours le format UTC (indiqué par "Z" pour le temps universel coordonné) avec des secondes fractionnaires de 0, 3, 6 ou 9 chiffres décimaux. Des décalages horaires autres que "Z" (UTC) sont également acceptés. Exemples : |
displayName |
Facultatif. Nom convivial du dépôt. |
gitRemoteSettings |
Facultatif. Si cette option est activée, ce dépôt est associé à un dépôt Git distant. |
npmrcEnvironmentVariablesSecretVersion |
Facultatif. Nom de la version du secret Secret Manager à utiliser pour interpoler les variables dans le fichier .npmrc pour les opérations d'installation de packages. Il doit respecter le format |
workspaceCompilationOverrides |
Facultatif. Si cette option est définie, les champs de |
labels |
Facultatif. Libellés utilisateur du dépôt Objet contenant une liste de paires |
setAuthenticatedUserAdmin |
Facultatif. Uniquement en entrée. Si la valeur est définie sur "true", le rôle roles/dataform.admin sera attribué à l'utilisateur authentifié dans le dépôt créé. Pour modifier l'accès au dépôt créé ultérieurement, appliquez setIamPolicy à partir de https://cloud.google.com/dataform/reference/rest#rest-resource:-v1beta1.projects.locations.repositories. |
serviceAccount |
Facultatif. Compte de service sous lequel exécuter les appels de workflow. |
kmsKeyName |
Facultatif. Référence à une clé de chiffrement KMS. Si elle est fournie, elle sera utilisée pour chiffrer les données utilisateur dans le dépôt et toutes les ressources enfants. Il n'est pas possible d'ajouter ni de modifier la clé de chiffrement une fois le dépôt créé. Exemple : |
dataEncryptionState |
Uniquement en sortie. État de chiffrement des données d'un dépôt Git si ce dépôt est protégé par une clé KMS. |
Champ d'union
|
|
containingFolder |
Facultatif. Nom du dossier contenant le dépôt. Ce champ est immuable et peut être modifié à l'aide d'une opération MoveRepository. Format : |
Champ d'union
|
|
teamFolderName |
Uniquement en sortie. Nom de ressource du dossier d'équipe auquel ce dépôt est associé. Il doit être au format suivant : projects/{project}/locations/{location}/teamFolders/{teamFolder}. Si cette valeur n'est pas définie, le dépôt n'est pas associé à un dossier d'équipe. |
Champ d'union
|
|
internalMetadata |
Uniquement en sortie. Toutes les informations de métadonnées utilisées en interne pour diffuser la ressource. Par exemple : codes temporels, indicateurs, champs d'état, etc. Le format de ce champ est une chaîne JSON. |
Horodatage
| Représentation JSON |
|---|
{ "seconds": string, "nanos": integer } |
| Champs | |
|---|---|
seconds |
Représente les secondes de l'heure UTC à partir de l'epoch Unix 1970-01-01T00:00:00Z. La valeur doit être comprise entre -62135596800 et 253402300799 inclus (ce qui correspond à 0001-01-01T00:00:00Z et 9999-12-31T23:59:59Z). |
nanos |
Fractions de secondes non négatives avec une précision de l'ordre de la nanoseconde. Ce champ correspond à la partie en nanosecondes de la durée, et non à une alternative aux secondes. Les valeurs de secondes négatives avec des fractions doivent toujours comporter des valeurs de nanosecondes non négatives comptabilisées dans le temps. La valeur doit être comprise entre 0 et 999 999 999 inclus. |
GitRemoteSettings
| Représentation JSON |
|---|
{ "url": string, "defaultBranch": string, "effectiveDefaultBranch": string, "authenticationTokenSecretVersion": string, "sshAuthenticationConfig": { object ( |
| Champs | |
|---|---|
url |
Obligatoire. URL du dépôt Git distant. |
defaultBranch |
Facultatif. Nom de la branche par défaut du dépôt Git distant. Si ce paramètre n'est pas défini, |
effectiveDefaultBranch |
Uniquement en sortie. Nom de la branche par défaut effective du dépôt distant Git. Il s'agit du nom de la branche par défaut du dépôt Git distant, s'il est défini. Sinon, il s'agit de |
authenticationTokenSecretVersion |
Facultatif. Nom de la version du secret Secret Manager à utiliser comme jeton d'authentification pour les opérations Git. Il doit respecter le format |
sshAuthenticationConfig |
Facultatif. Champs d'authentification pour les URI distants utilisant le protocole SSH. |
tokenStatus |
Uniquement en sortie. Obsolète : le champ ne contient aucune information sur l'état du jeton. Utilisez plutôt https://cloud.google.com/dataform/reference/rest/v1beta1/projects.locations.repositories/computeAccessTokenStatus. |
Champ d'union
|
|
gitRepositoryLink |
Facultatif. Nom de ressource pour le |
SshAuthenticationConfig
| Représentation JSON |
|---|
{ "userPrivateKeySecretVersion": string, "hostPublicKey": string } |
| Champs | |
|---|---|
userPrivateKeySecretVersion |
Obligatoire. Nom de la version du secret Secret Manager à utiliser comme clé privée SSH pour les opérations Git. Il doit respecter le format |
hostPublicKey |
Obligatoire. Contenu d'une clé SSH publique permettant de vérifier l'identité d'un hôte Git distant. |
WorkspaceCompilationOverrides
| Représentation JSON |
|---|
{ "defaultDatabase": string, "schemaSuffix": string, "tablePrefix": string } |
| Champs | |
|---|---|
defaultDatabase |
Facultatif. Base de données par défaut (ID du projet Google Cloud). |
schemaSuffix |
Facultatif. Suffixe à ajouter à tous les noms de schémas (ID d'ensemble de données BigQuery). |
tablePrefix |
Facultatif. Préfixe à ajouter à tous les noms de tables. |
LabelsEntry
| Représentation JSON |
|---|
{ "key": string, "value": string } |
| Champs | |
|---|---|
key |
|
value |
|
DataEncryptionState
| Représentation JSON |
|---|
{ "kmsKeyVersionName": string } |
| Champs | |
|---|---|
kmsKeyVersionName |
Obligatoire. Nom de la version de clé KMS avec laquelle les données d'une ressource sont chiffrées. |
TokenStatus
État du jeton d'authentification.
| Enums | |
|---|---|
TOKEN_STATUS_UNSPECIFIED |
Valeur par défaut. Cette valeur n'est pas utilisée. |
NOT_FOUND |
Le jeton est introuvable dans Secret Manager (ou le compte de service Dataform n'est pas autorisé à y accéder). |
INVALID |
Le jeton n'a pas pu être utilisé pour l'authentification auprès du dépôt Git distant. |
VALID |
Le jeton a été utilisé avec succès pour l'authentification auprès du dépôt Git distant. |
Schéma de sortie
Représente un dépôt Git Dataform.
Dépôt
| Représentation JSON |
|---|
{ "name": string, "createTime": string, "displayName": string, "gitRemoteSettings": { object ( |
| Champs | |
|---|---|
name |
Identifiant. Nom du dépôt. |
createTime |
Uniquement en sortie. Code temporel de la création du dépôt. Utilise la norme RFC 3339, où la sortie générée utilise toujours le format UTC (indiqué par "Z" pour le temps universel coordonné) avec des secondes fractionnaires de 0, 3, 6 ou 9 chiffres décimaux. Des décalages horaires autres que "Z" (UTC) sont également acceptés. Exemples : |
displayName |
Facultatif. Nom convivial du dépôt. |
gitRemoteSettings |
Facultatif. Si cette option est activée, ce dépôt est associé à un dépôt Git distant. |
npmrcEnvironmentVariablesSecretVersion |
Facultatif. Nom de la version du secret Secret Manager à utiliser pour interpoler les variables dans le fichier .npmrc pour les opérations d'installation de packages. Il doit respecter le format |
workspaceCompilationOverrides |
Facultatif. Si cette option est définie, les champs de |
labels |
Facultatif. Libellés utilisateur du dépôt Objet contenant une liste de paires |
setAuthenticatedUserAdmin |
Facultatif. Uniquement en entrée. Si la valeur est définie sur "true", le rôle roles/dataform.admin sera attribué à l'utilisateur authentifié dans le dépôt créé. Pour modifier l'accès au dépôt créé ultérieurement, appliquez setIamPolicy à partir de https://cloud.google.com/dataform/reference/rest#rest-resource:-v1beta1.projects.locations.repositories. |
serviceAccount |
Facultatif. Compte de service sous lequel exécuter les appels de workflow. |
kmsKeyName |
Facultatif. Référence à une clé de chiffrement KMS. Si elle est fournie, elle sera utilisée pour chiffrer les données utilisateur dans le dépôt et toutes les ressources enfants. Il n'est pas possible d'ajouter ni de modifier la clé de chiffrement une fois le dépôt créé. Exemple : |
dataEncryptionState |
Uniquement en sortie. État de chiffrement des données d'un dépôt Git si ce dépôt est protégé par une clé KMS. |
Champ d'union
|
|
containingFolder |
Facultatif. Nom du dossier contenant le dépôt. Ce champ est immuable et peut être modifié à l'aide d'une opération MoveRepository. Format : |
Champ d'union
|
|
teamFolderName |
Uniquement en sortie. Nom de ressource du dossier d'équipe auquel ce dépôt est associé. Il doit être au format suivant : projects/{project}/locations/{location}/teamFolders/{teamFolder}. Si cette valeur n'est pas définie, le dépôt n'est pas associé à un dossier d'équipe. |
Champ d'union
|
|
internalMetadata |
Uniquement en sortie. Toutes les informations de métadonnées utilisées en interne pour diffuser la ressource. Par exemple : codes temporels, indicateurs, champs d'état, etc. Le format de ce champ est une chaîne JSON. |
Horodatage
| Représentation JSON |
|---|
{ "seconds": string, "nanos": integer } |
| Champs | |
|---|---|
seconds |
Représente les secondes de l'heure UTC à partir de l'epoch Unix 1970-01-01T00:00:00Z. La valeur doit être comprise entre -62135596800 et 253402300799 inclus (ce qui correspond à 0001-01-01T00:00:00Z et 9999-12-31T23:59:59Z). |
nanos |
Fractions de secondes non négatives avec une précision de l'ordre de la nanoseconde. Ce champ correspond à la partie en nanosecondes de la durée, et non à une alternative aux secondes. Les valeurs de secondes négatives avec des fractions doivent toujours comporter des valeurs de nanosecondes non négatives comptabilisées dans le temps. La valeur doit être comprise entre 0 et 999 999 999 inclus. |
GitRemoteSettings
| Représentation JSON |
|---|
{ "url": string, "defaultBranch": string, "effectiveDefaultBranch": string, "authenticationTokenSecretVersion": string, "sshAuthenticationConfig": { object ( |
| Champs | |
|---|---|
url |
Obligatoire. URL du dépôt Git distant. |
defaultBranch |
Facultatif. Nom de la branche par défaut du dépôt Git distant. Si ce paramètre n'est pas défini, |
effectiveDefaultBranch |
Uniquement en sortie. Nom de la branche par défaut effective du dépôt distant Git. Il s'agit du nom de la branche par défaut du dépôt Git distant, s'il est défini. Sinon, il s'agit de |
authenticationTokenSecretVersion |
Facultatif. Nom de la version du secret Secret Manager à utiliser comme jeton d'authentification pour les opérations Git. Il doit respecter le format |
sshAuthenticationConfig |
Facultatif. Champs d'authentification pour les URI distants utilisant le protocole SSH. |
tokenStatus |
Uniquement en sortie. Obsolète : le champ ne contient aucune information sur l'état du jeton. Utilisez plutôt https://cloud.google.com/dataform/reference/rest/v1beta1/projects.locations.repositories/computeAccessTokenStatus. |
Champ d'union
|
|
gitRepositoryLink |
Facultatif. Nom de ressource pour le |
SshAuthenticationConfig
| Représentation JSON |
|---|
{ "userPrivateKeySecretVersion": string, "hostPublicKey": string } |
| Champs | |
|---|---|
userPrivateKeySecretVersion |
Obligatoire. Nom de la version du secret Secret Manager à utiliser comme clé privée SSH pour les opérations Git. Il doit respecter le format |
hostPublicKey |
Obligatoire. Contenu d'une clé SSH publique permettant de vérifier l'identité d'un hôte Git distant. |
WorkspaceCompilationOverrides
| Représentation JSON |
|---|
{ "defaultDatabase": string, "schemaSuffix": string, "tablePrefix": string } |
| Champs | |
|---|---|
defaultDatabase |
Facultatif. Base de données par défaut (ID du projet Google Cloud). |
schemaSuffix |
Facultatif. Suffixe à ajouter à tous les noms de schémas (ID d'ensemble de données BigQuery). |
tablePrefix |
Facultatif. Préfixe à ajouter à tous les noms de tables. |
LabelsEntry
| Représentation JSON |
|---|
{ "key": string, "value": string } |
| Champs | |
|---|---|
key |
|
value |
|
DataEncryptionState
| Représentation JSON |
|---|
{ "kmsKeyVersionName": string } |
| Champs | |
|---|---|
kmsKeyVersionName |
Obligatoire. Nom de la version de clé KMS avec laquelle les données d'une ressource sont chiffrées. |
TokenStatus
État du jeton d'authentification.
| Enums | |
|---|---|
TOKEN_STATUS_UNSPECIFIED |
Valeur par défaut. Cette valeur n'est pas utilisée. |
NOT_FOUND |
Le jeton est introuvable dans Secret Manager (ou le compte de service Dataform n'est pas autorisé à y accéder). |
INVALID |
Le jeton n'a pas pu être utilisé pour l'authentification auprès du dépôt Git distant. |
VALID |
Le jeton a été utilisé avec succès pour l'authentification auprès du dépôt Git distant. |
Annotations d'outils
Les annotations d'outil sont envoyées aux clients MCP pour décrire le risque de base d'un outil donné. La plupart des clients traitent ces indices comme non fiables, mais ils peuvent être utilisés pour déterminer quand un message de confirmation peut être envoyé à un utilisateur.
En plus de la chaîne de titre, les indications booléennes suivantes sont définies comme suit :
readOnlyHint: si la valeur est "true", l'outil ne modifie pas son environnement. Valeur par défaut : "false".destructiveHint: si la valeur est "true", l'outil peut effectuer des actions destructrices. Si la valeur est "false", l'outil ne peut effectuer que des actions d'ajout. Valeur par défaut : "true".idempotentHint: si la valeur est "true", appeler l'outil à plusieurs reprises avec les mêmes arguments n'aura aucun effet supplémentaire sur son environnement. Valeur par défaut : "false".openWorldHint: si la valeur est "true", l'outil peut interagir avec un "monde ouvert" d'entités externes. Si la valeur est "false", l'outil ne peut interagir qu'avec des entités internes. Par exemple, un outil de recherche Web serait en monde ouvert, tandis qu'un outil de mémoire ne le serait pas.
Indication destructive : ❌ | Indication d'idempotence : ❌ | Indication de lecture seule : ❌ | Indication de monde ouvert : ❌