MCP Tools Reference: dataform.googleapis.com

Tool: create_workspace

Einen neuen Entwicklungsarbeitsbereich in einem bestimmten Dataform-Repository erstellen

Ein Arbeitsbereich ist ein isolierter, bearbeitbarer Checkout des Repositorys. Verwenden Sie einen Arbeitsbereich, wenn Sie Pipelinecode in mehreren Dateien erstellen oder überarbeiten und vor dem Committen validieren müssen. Bearbeiten Sie Dateien im Arbeitsbereich mit den Tools write_file und remove_file, zeichnen Sie das Ergebnis mit dem Tool commit_workspace_changes auf und veröffentlichen Sie die übernommenen Änderungen im Repository mit dem Tool push_git_commits.

Verwenden Sie das Tool commit_repository_changes nicht für die Entwicklung von Standardpipelines. Dieses Tool schreibt direkt in das Repository, ist nur für Assets mit einer einzelnen Datei wie Notebooks oder gespeicherte Abfragen vorgesehen und schlägt bei Repositories fehl, die mit einem Remote-Git-Host verbunden sind.

Voraussetzung: Das übergeordnete Repository muss vorhanden sein.

Der Parameterwert parent muss das Format projects/{project_id}/locations/{location}/repositories/{repository} haben.

Der Parameterwert workspace_id ist die ID, die für den Arbeitsbereich verwendet werden soll.

Der Parameterwert workspace enthält den Workspace, der erstellt werden soll.

Das folgende Codebeispiel zeigt, wie Sie mit curl das MCP-Tool create_workspace aufrufen.

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

Eingabeschema

CreateWorkspace-Anfragenachricht.

CreateWorkspaceRequest

JSON-Darstellung
{
  "parent": string,
  "workspace": {
    object (Workspace)
  },
  "workspaceId": string
}
Felder
parent

string

Erforderlich. Das Repository, in dem der Arbeitsbereich erstellt werden soll. Muss das Format projects/*/locations/*/repositories/* aufweisen.

workspace

object (Workspace)

Erforderlich. Der zu erstellende Arbeitsbereich.

workspaceId

string

Erforderlich. Die für den Arbeitsbereich zu verwendende ID, die als letzte Komponente des Ressourcennamens des Arbeitsbereichs verwendet wird.

Arbeitsbereich

JSON-Darstellung
{
  "name": string,
  "createTime": string,
  "dataEncryptionState": {
    object (DataEncryptionState)
  },
  "privateResourceMetadata": {
    object (PrivateResourceMetadata)
  },
  "depth": integer,

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

  // Union field _disable_moves can be only one of the following:
  "disableMoves": boolean
  // End of list of possible types for union field _disable_moves.

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

  // Union field _enable_branch_management can be only one of the following:
  "enableBranchManagement": boolean
  // End of list of possible types for union field _enable_branch_management.

  // Union field _shallow can be only one of the following:
  "shallow": boolean
  // End of list of possible types for union field _shallow.
}
Felder
name

string

ID. Der Name des Arbeitsbereichs.

createTime

string (Timestamp format)

Nur Ausgabe. Der Zeitstempel für den Zeitpunkt, zu dem der Arbeitsbereich erstellt wurde.

Verwendet RFC 3339, wobei die generierte Ausgabe immer Z-normalisiert ist und 0, 3, 6 oder 9 Nachkommastellen verwendet. Andere Offsets als „Z“ werden ebenfalls akzeptiert. Beispiele: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" oder "2014-10-02T15:01:23+05:30"

dataEncryptionState

object (DataEncryptionState)

Nur Ausgabe. Der Datenverschlüsselungsstatus eines Git-Repositorys, wenn dieser Arbeitsbereich durch einen KMS-Schlüssel geschützt ist.

privateResourceMetadata

object (PrivateResourceMetadata)

Nur Ausgabe. Metadaten, die angeben, ob diese Ressource auf Nutzerebene ist. Für Workspace-Ressourcen ist das Feld user_scoped immer true.

depth

integer

Optional. Nur Eingabe. Nicht veränderbar. Die maximale Tiefe des Git-Repositorys, das für diesen Arbeitsbereich ausgecheckt werden soll. Wenn dieser Wert definiert und größer als 0 ist, wird das Git-Repository als flacher Klon mit der angegebenen Tiefe erstellt. Andernfalls wird ein vollständiger Klon durchgeführt. Dieses Feld ist nur für GitHub-, GitLab- und 1P-Repositories mit aktivierter Zweigverwaltung verfügbar.

Union-Feld _internal_metadata.

Für _internal_metadata ist nur einer der folgenden Werte zulässig:

internalMetadata

string

Nur Ausgabe. Alle Metadateninformationen, die intern zum Bereitstellen der Ressource verwendet werden. Beispiele: Zeitstempel, Flags, Statusfelder usw. Das Format dieses Felds ist ein JSON-String.

Union-Feld _disable_moves.

Für _disable_moves ist nur einer der folgenden Werte zulässig:

disableMoves

boolean

Optional. Wenn auf „true“ gesetzt, werden Arbeitsbereiche nicht verschoben, wenn das verknüpfte Repository verschoben wird. Stattdessen wird sie gelöscht.

Union-Feld _original_branch.

Für _original_branch ist nur einer der folgenden Werte zulässig:

originalBranch

string

Optional. Nur Eingabe. Nicht veränderbar. Der Name des standardmäßigen Upstream-Zweigs für alle Pull-/Push-Vorgänge im Remote-Repository für diesen Arbeitsbereich. Wenn leer, wird der HEAD-Zweig aus dem Repository verwendet.

Union-Feld _enable_branch_management.

Für _enable_branch_management ist nur einer der folgenden Werte zulässig:

enableBranchManagement

boolean

Nicht veränderbar. Steuert die Aktivierung des Auscheckens von Zweigen für den Arbeitsbereich.

Bei Auswahl von „True“ darf der Arbeitsbereich Zweige auschecken.

Union-Feld _shallow.

Für _shallow ist nur einer der folgenden Werte zulässig:

shallow

boolean

Nur Ausgabe. Wenn „true“ festgelegt ist, wurde der Arbeitsbereich als flacher Klon erstellt. Wird auf „true“ gesetzt, wenn das Tiefenfeld auf einen Wert größer als 0 gesetzt ist. Andernfalls wird es auf „false“ gesetzt.

Zeitstempel

JSON-Darstellung
{
  "seconds": string,
  "nanos": integer
}
Felder
seconds

string (int64 format)

Stellt Sekunden der UTC-Zeit seit Unix-Epoche 1970-01-01T00:00:00Z dar. Muss einschließlich zwischen -62135596800 und 253402300799 liegen (entspricht 0001-01-01T00:00:00Z bis 9999-12-31T23:59:59Z).

nanos

integer

Nicht negative Sekundenbruchteile Nanosekunden-Auflösung. Dieses Feld enthält den Nanosekundenanteil der Dauer und ist keine Alternative zu Sekunden. Negative Sekundenwerte mit Bruchteilen müssen weiterhin nicht negative Nano-Werte haben, die zeitlich vorwärts gezählt werden. Muss zwischen 0 und 999.999.999 liegen (einschließlich).

DataEncryptionState

JSON-Darstellung
{
  "kmsKeyVersionName": string
}
Felder
kmsKeyVersionName

string

Erforderlich. Der Name der KMS-Schlüsselversion, mit der die Daten einer Ressource verschlüsselt werden.

PrivateResourceMetadata

JSON-Darstellung
{
  "userScoped": boolean
}
Felder
userScoped

boolean

Nur Ausgabe. Wenn „true“, ist diese Ressource auf Nutzerebene. Das bedeutet, dass sie entweder ein Arbeitsbereich ist oder aus einem Arbeitsbereich stammt.

Ausgabeschema

Stellt einen Dataform-Git-Arbeitsbereich dar.

Arbeitsbereich

JSON-Darstellung
{
  "name": string,
  "createTime": string,
  "dataEncryptionState": {
    object (DataEncryptionState)
  },
  "privateResourceMetadata": {
    object (PrivateResourceMetadata)
  },
  "depth": integer,

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

  // Union field _disable_moves can be only one of the following:
  "disableMoves": boolean
  // End of list of possible types for union field _disable_moves.

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

  // Union field _enable_branch_management can be only one of the following:
  "enableBranchManagement": boolean
  // End of list of possible types for union field _enable_branch_management.

  // Union field _shallow can be only one of the following:
  "shallow": boolean
  // End of list of possible types for union field _shallow.
}
Felder
name

string

ID. Der Name des Arbeitsbereichs.

createTime

string (Timestamp format)

Nur Ausgabe. Der Zeitstempel für den Zeitpunkt, zu dem der Arbeitsbereich erstellt wurde.

Verwendet RFC 3339, wobei die generierte Ausgabe immer Z-normalisiert ist und 0, 3, 6 oder 9 Nachkommastellen verwendet. Andere Offsets als „Z“ werden ebenfalls akzeptiert. Beispiele: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" oder "2014-10-02T15:01:23+05:30"

dataEncryptionState

object (DataEncryptionState)

Nur Ausgabe. Der Datenverschlüsselungsstatus eines Git-Repositorys, wenn dieser Arbeitsbereich durch einen KMS-Schlüssel geschützt ist.

privateResourceMetadata

object (PrivateResourceMetadata)

Nur Ausgabe. Metadaten, die angeben, ob diese Ressource auf Nutzerebene ist. Für Workspace-Ressourcen ist das Feld user_scoped immer true.

depth

integer

Optional. Nur Eingabe. Nicht veränderbar. Die maximale Tiefe des Git-Repositorys, das für diesen Arbeitsbereich ausgecheckt werden soll. Wenn dieser Wert definiert und größer als 0 ist, wird das Git-Repository als flacher Klon mit der angegebenen Tiefe erstellt. Andernfalls wird ein vollständiger Klon durchgeführt. Dieses Feld ist nur für GitHub-, GitLab- und 1P-Repositories mit aktivierter Zweigverwaltung verfügbar.

Union-Feld _internal_metadata.

Für _internal_metadata ist nur einer der folgenden Werte zulässig:

internalMetadata

string

Nur Ausgabe. Alle Metadateninformationen, die intern zum Bereitstellen der Ressource verwendet werden. Beispiele: Zeitstempel, Flags, Statusfelder usw. Das Format dieses Felds ist ein JSON-String.

Union-Feld _disable_moves.

Für _disable_moves ist nur einer der folgenden Werte zulässig:

disableMoves

boolean

Optional. Wenn auf „true“ gesetzt, werden Arbeitsbereiche nicht verschoben, wenn das verknüpfte Repository verschoben wird. Stattdessen wird sie gelöscht.

Union-Feld _original_branch.

Für _original_branch ist nur einer der folgenden Werte zulässig:

originalBranch

string

Optional. Nur Eingabe. Nicht veränderbar. Der Name des standardmäßigen Upstream-Zweigs für alle Pull-/Push-Vorgänge im Remote-Repository für diesen Arbeitsbereich. Wenn leer, wird der HEAD-Zweig aus dem Repository verwendet.

Union-Feld _enable_branch_management.

Für _enable_branch_management ist nur einer der folgenden Werte zulässig:

enableBranchManagement

boolean

Nicht veränderbar. Steuert die Aktivierung des Auscheckens von Zweigen für den Arbeitsbereich.

Bei Auswahl von „True“ darf der Arbeitsbereich Zweige auschecken.

Union-Feld _shallow.

Für _shallow ist nur einer der folgenden Werte zulässig:

shallow

boolean

Nur Ausgabe. Wenn „true“ festgelegt ist, wurde der Arbeitsbereich als flacher Klon erstellt. Wird auf „true“ gesetzt, wenn das Tiefenfeld auf einen Wert größer als 0 gesetzt ist. Andernfalls wird es auf „false“ gesetzt.

Zeitstempel

JSON-Darstellung
{
  "seconds": string,
  "nanos": integer
}
Felder
seconds

string (int64 format)

Stellt Sekunden der UTC-Zeit seit Unix-Epoche 1970-01-01T00:00:00Z dar. Muss einschließlich zwischen -62135596800 und 253402300799 liegen (entspricht 0001-01-01T00:00:00Z bis 9999-12-31T23:59:59Z).

nanos

integer

Nicht negative Sekundenbruchteile Nanosekunden-Auflösung. Dieses Feld enthält den Nanosekundenanteil der Dauer und ist keine Alternative zu Sekunden. Negative Sekundenwerte mit Bruchteilen müssen weiterhin nicht negative Nano-Werte haben, die zeitlich vorwärts gezählt werden. Muss zwischen 0 und 999.999.999 liegen (einschließlich).

DataEncryptionState

JSON-Darstellung
{
  "kmsKeyVersionName": string
}
Felder
kmsKeyVersionName

string

Erforderlich. Der Name der KMS-Schlüsselversion, mit der die Daten einer Ressource verschlüsselt werden.

PrivateResourceMetadata

JSON-Darstellung
{
  "userScoped": boolean
}
Felder
userScoped

boolean

Nur Ausgabe. Wenn „true“, ist diese Ressource auf Nutzerebene. Das bedeutet, dass sie entweder ein Arbeitsbereich ist oder aus einem Arbeitsbereich stammt.

Tool-Annotationen

Tool-Anmerkungen werden an MCP-Clients gesendet, um das grundlegende Risiko eines bestimmten Tools zu beschreiben. Die meisten Clients behandeln diese Hinweise als nicht vertrauenswürdig, sie können aber verwendet werden, um zu entscheiden, wann eine Bestätigungsaufforderung an einen Nutzer gesendet wird.

Zusammen mit dem Titelstring sind die folgenden booleschen Hinweise definiert:

  • readOnlyHint: Wenn „true“, ändert das Tool seine Umgebung nicht. Standardeinstellung: false.
  • destructiveHint: Wenn „true“, kann das Tool destruktive Aktionen ausführen. Wenn „false“, kann das Tool nur additive Aktionen ausführen. Standardeinstellung: true.
  • idempotentHint: Wenn „true“, hat das wiederholte Aufrufen des Tools mit denselben Argumenten keine zusätzlichen Auswirkungen auf die Umgebung. Standardeinstellung: false.
  • openWorldHint: Wenn „true“, kann das Tool mit einer „offenen Welt“ externer Einheiten interagieren. Wenn „false“, kann das Tool nur mit internen Einheiten interagieren. Ein Web-Suchtool wäre beispielsweise frei verfügbar, ein Tool für das Gedächtnis jedoch nicht.

Destruktiver Hinweis: ❌ | Idempotenter Hinweis: ❌ | Nur-Lese-Hinweis: ❌ | Open-World-Hinweis: ❌