Verschieben von Objekten zwischen Workfront Umgebungen mithilfe der Workfront Environment Promotion API
Mit der Funktion Umgebungsförderung können Sie konfigurationsbezogene Objekte von einer Umgebung in eine andere verschieben. Sie können diese Objekte mithilfe der Workfront-API verschieben, wie in diesem Artikel beschrieben.
Anweisungen zum Verschieben von Objekten zwischen Umgebungen mithilfe des Workfront-Programms finden Sie unter:
Zugriffsanforderungen
Sie müssen über Folgendes verfügen:
Weitere Informationen zu den Informationen in dieser Tabelle finden Sie unter Zugriffsanforderungen in der Dokumentation zu Workfront.
Voraussetzungen
Der Endpunkt Erstellen eines Weiterleitungspakets setzt voraus, dass Sie die Quellumgebung bereits konfiguriert haben. Dieser API-Aufruf erfordert die manuelle Erstellung einer Objektzuordnung mit Workfront objCodes und Objekt-GUIDs. Die spezifische Struktur dieser Zuordnung wird nachfolgend beschrieben.
Unterstützte Objekte für die Umgebungs-Promotion
Die Funktion Umgebungsförderung soll die Möglichkeit bieten, konfigurationsbezogene Objekte von einer Umgebung in eine andere zu verschieben. Das Verschieben von Transaktionsobjekten wird nicht unterstützt (mit wenigen Ausnahmen).
Eine Liste der Promotable-Objekte und der darin enthaltenen Promotable-Unterobjekte finden Sie unter Unterstützte Objekte für die) im Artikel Übersicht über das Verschieben von Objekten zwischen Workfront-Umgebungen.
Authentifizierung
Die API authentifiziert jede Anfrage, um sicherzustellen, dass der Client Zugriff zum Anzeigen oder Ändern eines angeforderten Objekts hat.
Die Authentifizierung erfolgt durch Übergabe einer Sitzungs-ID oder eines API-Schlüssels, die mithilfe der folgenden Methode erteilt werden können:
Authentifizierung beim Anforderungsheader
Die bevorzugte Authentifizierungsmethode besteht darin, einen Anfrage-Header mit dem Namen SessionID zu übergeben, der das Sitzungs-Token enthält. Dies hat den Vorteil, dass es vor Cross-Site Request Forgery (CSRF)-Angriffenist und den URI zu Caching-Zwecken nicht beeinträchtigt.
Im Folgenden finden Sie ein Beispiel für einen Anfrage-Header:
GET /attask/api/v15.0/project/search
SessionID: abc1234
API-Endpunkte
- Erstellen eines Pakets
- Abrufen einer Liste von Paketen
- Abrufen eines Pakets nach ID
- Aktualisieren spezifischer Eigenschaften eines Pakets
- Löschen eines Pakets
- Ausführen eines Vorlaufs
- Ausführen einer Installation
- Abrufen einer Liste von Installationen für ein bestimmtes Paket
- Abrufen der Installationsdetails für eine Installation
Erstellen eines Pakets
Dieser Aufruf führt einen mehrstufigen Prozess aus.
Der erste Schritt führt zur Erstellung eines leeren Promotion-Pakets im Status „ASSEMBLING“.
Im zweiten Schritt werden die von Workfront angeforderten Datensätze mithilfe des objectCollections
-Arrays zusammengestellt, das im Hauptteil der POST bereitgestellt wird. Dieser Schritt kann je nach der Anzahl der angeforderten Datensätze und Ihrer Workfront-Konfiguration mehrere Minuten dauern. Am Ende dieses Prozesses wird das leere Promotion-Paket mit dem packageEntities
aktualisiert und der Status wird automatisch auf „ENTWURF“ gesetzt.
objectCollections
-Arrays.objCode
, der dem im Workfront-API-Explorer dokumentierten Objekt-Code entspricht.entities
. Dies erwartet das ID
Feld. Er kann auch ein optionales name
-Attribut akzeptieren, um das Erkennen der ID
zu vereinfachen.objectCollections
angefordert werden dürfen, finden Sie im Abschnitt Unterstützte Objekte für die) in diesem Artikel.URL
POST https://{domain}.{environment}.workfront.com/environment-promotion/api/v1/packages
Kopfzeilen
{
"apikey": "**********",
"Content-Type": "application/json"
}
Oder
{
"sessionID": "*****************",
"Content-Type": "application/json"
}
Text
{
"name": "Agency Onboarding - 2023-06-06",
"description": "This promotion package contains configuration to support the agency onboarding processes...",
"source": "https://{domain}.{environment}.workfront.com",
"objectCollections": [
{
"objCode": "PROJ",
"entities": [
{
"ID": "6419b8b9001151ee258921a4f7597ba1",
"name": "Agency Request"
}
]
},
{
"objCode": "TMPL",
"entities": [
{
"ID": "6419b8b9001151ee258921a4f7597bb2",
"name": "New Agency Onboarding"
},
{
"ID": "6419b8b9001151ee258921a4f7597bc3",
"name": "New Agency Offboarding"
}
]
},
{
"objCode": "PTLTAB",
"entities": [
{
"ID": "645e6435000b4aaebe4776f4a42ed5ad",
"name": "Agency Performance and Readiness"
}
]
}
]
}
Antwort
200
{
"data": {
"id": "1d5693b9-b7b5-492d-8219-c21f34bcaca6",
"name": "Agency Onboarding - 2023-06-06",
"description": "This promotion package contains configuration to support the agency onboarding processes...",
"source": "https://{domain}.{environment}.workfront.com",
"status": "ASSEMBLING",
"version": 1,
"createdAt": "2023-06-06T17:29:21.600Z",
"createdById": "61aa9d0e0005fcee8f212835bdaa2619",
"publishedAt": null,
"customerId": "61aa9d090005fa42152c1cb66659f38d"
}
}
Abrufen einer Liste von Paketen
Dieser Aufruf gibt eine ungefilterte Liste von Promotion-Paketen zurück, die zum Kunden gehören.
Die Antwort enthält alle Pakete, die aus einer der Sandbox-, Vorschau- oder Produktionsinstanzen des Kunden von Workfront erstellt wurden.
URL
GET https://{domain}.{environment}.workfront.com/environment-promotion/api/v1/packages
Kopfzeilen
{
"apikey": "**********"
}
Oder
{
"sessionID": "*****************"
}
Text
leer
Antwort
200
{
"data": [
{
"id": "1d5693b9-b7b5-492d-8219-c21f34bcaca6",
"name": "Agency Onboarding - 2023-06-06",
"description": "This promotion package contains configuration to support the agency onboarding processes...",
"status": "ASSEMBLING",
"createdAt": "2023-06-06T17:29:21.600Z",
"deletedAt": null
},
{...}
]
}
<!—Überprüfen Sie oben „status“—wurde sie hinzugefügt?—>
Abrufen eines Pakets nach ID
Dieser Aufruf gibt die Details eines angeforderten Promotion-Pakets zurück.
Die Anfrage kann über jede Umgebung unabhängig von der ursprünglichen Quelle des Promotion-Pakets erfolgen.
URL
GET https://{domain}.{environment}.workfront.com/environment-promotion/api/v1/packages/{id}
Kopfzeilen
{
"apikey": "**********"
}
Oder
{
"sessionID": "*****************"
}
Text
leer
Antwort
200
{
"data": {
"id": "1d5693b9-b7b5-492d-8219-c21f34bcaca6",
"name": "Agency Onboarding - 2023-06-06",
"description": "This promotion package contains configuration to support the agency onboarding processes...",
"source": "https://{domain}.{environment}.workfront.com",
"status": "DRAFT",
"version": 1,
"createdAt": "2023-06-06T17:29:21.600Z",
"publishedAt": null,
"customerId": "61aa9d090005fa42152c1cb66659f38d",
"packageEntities": {
"GROUP": [
{
"id": "52aa9d0e0005fcee8f212835bdaa2691",
"name": "Default Group",
"description": "null"
- or -
"description": "..."
}
],
"ROLE": [
{...}
],
...
}
}
}
Aktualisieren spezifischer Eigenschaften eines Pakets
Dieser Aufruf aktualisiert alle Inhalte des Promotion-Pakets, die im PATCH-Hauptteil bereitgestellt werden.
Die bearbeitbaren Attribute sind:
- Name (Zeichenfolge)
- description (String)
- Status (Zeichenfolge mit Wertvalidierung)
Eine ausführliche Beschreibung der verfügbaren Status finden Sie unter Umgebungsförderungsstatus im Artikel „Übersicht Verschieben von Objekten zwischen Workfront-Umgebungen.
URL
PATCH https://{domain}.{environment}.workfront.com/environment-promotion/api/v1/packages/{id}
Kopfzeilen
{
"apikey": "**********",
"Content-Type": "application/json"
}
Oder
{
"sessionID": "*****************",
"Content-Type": "application/json"
}
Text
{
"status": "ACTIVE"
}
Antwort
200
{
"data": {
"id": "1d5693b9-b7b5-492d-8219-c21f34bcaca6",
"name": "Agency Onboarding - 2023-06-06",
"description": "This promotion package contains configuration to support the agency onboarding processes...",
"source": "https://{domain}.{environment}.workfront.com",
"status": "ACTIVE",
"version": 1,
"createdAt": "2023-06-06T17:29:21.600Z",
"publishedAt": "2023-06-06T19:39:01.600Z",
"customerId": "61aa9d090005fa42152c1cb66659f38d",
"packageEntities": {
"GROUP": [
{
"id": "52aa9d0e0005fcee8f212835bdaa2691",
"name": "Default Group",
"description": "..."
}
],
"ROLE": [
{...}
],
...
}
}
}
Löschen eines Pakets
Dieser Aufruf löscht den Datensatz des Promotion-Pakets. Diese Aktion kann nicht rückgängig gemacht werden.
URL
DELETE https://{domain}.{environment}.workfront.com/environment-promotion/api/v1/packages/{id}
Kopfzeilen
{
"apikey": "**********"
}
Oder
{
"sessionID": "*****************"
}
Text
leer
Antwort
200
Deleted
Ausführen eines Vorlaufs
Dieser Aufruf führt einen Vergleich zwischen der Paketdefinition und der in der URL identifizierten Zielumgebung durch.
Das Ergebnis ist ein JSON-Text, der angibt, ob ein Weiterleitungsobjekt in der Zielumgebung gefunden wurde oder nicht.
Für jedes Promotion-Objekt wird eine der folgenden actions
festgelegt:
In den Alpha-Funktionen dieses Service wird derzeit kein UPDATE-action
unterstützt. Wir forschen an der Option, eine UPDATE-action
zuzulassen.
URL
POST https://{domain}.{environment}.workfront.com/environment-promotion/api/v1/packages/:id/prepare-installation
Kopfzeilen
{
"apikey": "**********",
"Content-Type": "application/json"
}
Oder
{
"sessionID": "*****************",
"Content-Type": "application/json"
}
Text
{}
Antwort
200
{
"environmentPromotionPackageId": "45f2ae94-76c0-4b13-8f3b-f688de83043d",
"environmentPromotionPackageVersion": 1,
"id": "c0bc79bd-c9c1-4b5b-b118-b1241392de0e",
"userId": "5ba38da500b752fd66439d4f6a9999a1",
"customerId": "5ba38d9d00b74f0c7a38b1b487fc9710",
"status": "PREPARING",
"environment": "mmi.my.workfront.com",
"registeredAt": "2023-10-19T20:00:16.697Z",
"updatedAt": "2023-10-19T20:00:16.701Z",
"translationMap": {
"CTGY": {
"62d9c9a0000013aeeefe7242a0a5fdb2": {
"name": "Example Document Form",
"action": "USEEXISTING",
"isValid": true,
"targetId": "62d9c9a0000013aeeefe7242a0a5fdb2"
}
},
"PGRP": {
"62d1eee4001c6618e6b9f9a588ba1598": {
"name": "Asset Detail",
"action": "USEEXISTING",
"isValid": true,
"targetId": "62d1eee4001c6618e6b9f9a588ba1598"
}
},
"GROUP": {
"5ba38da500b752b0f46d13186030b7ad": {
"name": "Default Group",
"action": "USEEXISTING",
"isValid": true,
"targetId": "5ba38da500b752b0f46d13186030b7ad"
}
},
"PARAM": {
"62d1eee400f8578895166ee91a83f97a": {
"name": "Asset Type",
"action": "USEEXISTING",
"isValid": true,
"targetId": "62d1eee400f8578895166ee91a83f97a"
},
"62d1eee50001407c713514a8970b58e4": {
"name": "Keywords",
"action": "USEEXISTING",
"isValid": true,
"targetId": "62d1eee50001407c713514a8970b58e4"
},
"62d1eee5000333ac3981ea4f3df6d88e": {
"name": "Permitted Uses",
"action": "USEEXISTING",
"isValid": true,
"targetId": "62d1eee5000333ac3981ea4f3df6d88e"
},
"62d1eee5000b188e9ec8039a097fc7ab": {
"name": "File Format",
"action": "USEEXISTING",
"isValid": true,
"targetId": "62d1eee5000b188e9ec8039a097fc7ab"
},
"62d1eee500100c159fd5f838ce560507": {
"name": "CTA",
"action": "USEEXISTING",
"isValid": true,
"targetId": "62d1eee500100c159fd5f838ce560507"
},
"62d9c988001c1f23954dbb9d646335b5": {
"name": "Other CTA",
"action": "USEEXISTING",
"isValid": true,
"targetId": "62d9c988001c1f23954dbb9d646335b5"
},
"62d9c9880070f546cf4c798ea6c3eaa4": {
"name": "Other Audience",
"action": "USEEXISTING",
"isValid": true,
"targetId": "62d9c9880070f546cf4c798ea6c3eaa4"
},
"62d9c990006258baf1b40f2569c3eab7": {
"name": "Target Audience",
"action": "USEEXISTING",
"isValid": true,
"targetId": "62d9c990006258baf1b40f2569c3eab7"
}
}
}
}
id
. In diesem Beispiel ist das id
Feld ein drittes von oben und hat einen Wert, der mit c0bc79bd
beginnt.Ausführen einer Installation
Dieser Aufruf startet einen Installationsversuch eines Promotion-Pakets in die Zielumgebung, die in der POST-URL angegeben ist.
URL
POST https://{domain}.{environment}.workfront.com/environment-promotion/api/v1/installations/{id}/install
Kopfzeilen
{
"apikey": "**********",
"Content-Type": "application/json"
}
Oder
{
"sessionID": "*****************",
"Content-Type": "application/json"
}
Text
{
}
Antwort
202
{}
Abrufen einer Liste von Installationen für ein bestimmtes Paket
Die Ergebnisse umfassen Installationsereignisse aus allen Umgebungen, in denen das Paket bereitgestellt wurde. Sie beschränken sich nicht auf die Anlagen für die Umgebung, über die die Anforderung erfolgt. Auf diese Weise können Sie feststellen, welche Umgebungen dieses Paket erhalten haben.
URL
GET https://{domain}.{environment}.workfront.com/environment-promotion/api/v1/installations?environmentPromotionPackageId={environmentPromotionPackageId}
Kopfzeilen
{
"apikey": "**********"
}
Oder
{
"sessionID": "*****************"
}
Text
leer
Antwort
200
[
{
"id": "2892b936-e09e-455a-935f-e1462ab9753c",
"environmentPromotionPackageId": "4fae2b9d-d315-45f4-909f-a0c0d79fc65d",
"environmentPromotionPackageVersion": 1,
"userId": "8fbbc5bcf4f94a5b862483ee05573e73",
"customerId": "54286d78b064451096752b99bf968481",
"status": "INSTALLED",
"environment": "https://{domain}.{environment}.workfront.com",
"registeredAt": "2021-03-16T02:21:31.908Z",
"updatedAt": null,
"translationMap": {
"ROLE": {
"5f6d114f006883209828ddd9088e63b3": {
"name": "DAM Curator",
"action": "USEEXISTING",
"isValid": true,
"targetId": "600f4bed00028a718599f29575840053"
},
"ad535a9ebe647361e053a7656a0a1575": {
"name": "Copywriter",
"action": "USEEXISTING",
"isValid": true,
"targetId": "600f162700001ca051081c06667b14a4"
},
...
},
"TMPL": {
"5f9b317c00b3db5af69abcd1ed5f82aa": {
"name": "Digital Asset Production (Integrated)",
"action": "CREATE",
"isValid": true,
"targetId": "6054cda40000d5af63dc811d9c2b3a07"
},
...
},
...
}
},
{...}
]
Abrufen der Installationsdetails für eine Installation
Dieser Aufruf gibt die endgültigen translationMap
zurück, die vom Installationsdienst für eine bestimmte Installation erzeugt wurden.
In jedem Datensatz wird angegeben, was die vorgeschriebene action
war und ob diese Aktion erfolgreich war oder nicht.
Bei Datensätzen mit der action
ERSTELLEN wird das Feld targetId
mit dem Wert des neu erstellten Datensatzes im Zielsystem festgelegt. Darüber hinaus wird das Feld installationStatus
auf INSTALLIERT gesetzt.
Bei Datensätzen mit der action
USEEXISTING wird auch das Feld targetId
festgelegt und das Feld installationStatus
wird auf REGISTRIERT gesetzt. Dies bedeutet, dass der Zuordnungsprozess abgeschlossen war und der Installations-Service bestätigt, dass er den Datensatz ausgewertet hat und es keine Maßnahmen gibt.
Wenn der Datensatz eine CREATE-action
hat, aber nicht erfolgreich erstellt werden kann, wird die installationStatus
auf FAILED gesetzt und der Grund für den Fehler wird ebenfalls angegeben.
URL
GET https://{domain}.{environment}.workfront.com/environment-promotion/api/v1/installations/{id}
Kopfzeilen
{
"apikey": "**********"
}
Oder
{
"sessionID": "*****************"
}
Text
leer
Antwort
200
{
"id": "2892b936-e09e-455a-935f-e1462ab9753c",
"environmentPromotionPackageId": "4fae2b9d-d315-45f4-909f-a0c0d79fc65d",
"environmentPromotionPackageVersion": 1,
"userId": "8fbbc5bcf4f94a5b862483ee05573e73",
"customerId": "54286d78b064451096752b99bf968481",
"status": "INSTALLED",
"environment": "https://{domain}.{environment}.workfront.com",
"registeredAt": "2021-03-16T02:21:31.908Z",
"updatedAt": null,
"translationMap": {
"ROLE": {
"5f6d114f006883209828ddd9088e63b3": {
"name": "DAM Curator",
"action": "USEEXISTING",
"isValid": true,
"targetId": "600f4bed00028a718599f29575840053"
},
...
},
"TMPL": {
"5f9b317c00b3db5af69abcd1ed5f82aa": {
"name": "Digital Asset Production (Integrated)",
"action": "CREATE",
"isValid": true,
"targetId": "6054cda40000d5af63dc811d9c2b3a07"
},
...
},
...
}
}
Überschreiben
Dies ist ein dreistufiger Prozess.
- Erstellen eines Übersetzungsdiagramms (analog zur Phase „Installation vorbereiten„)
- Bearbeiten Sie die generierte Übersetzungszuordnung und legen Sie die
action
- undtargetId
für alle Objekte fest, die sie überschreiben möchten. Die Aktion sollteOVERWRITING
sein und dertargetId
sollte die UUID des Objekts sein, das überschrieben werden soll - Führen Sie die Installation aus.
Schritt 1: Erstellen einer Übersetzungskarte
URL
POST https://{domain}.{environment}.workfront.com/environment-promotion/api/v1/packages/{id}/translation-map
Text
Keine
Antwort
Eine Übersetzungskarte mit einem 202 - OK
Status
{
{objcode}: {
{object uuid}: {
"targetId": {uuid of object in destination},
"action": {installation action},
"name": {name of the object},
"isValid": true
},
{...more objects}
},
{...more objcodes}
}
Beispiel
{
"UIVW": {
"109f611680bb3a2b0c0a8c1f5ec63f6d": {
"targetId": "6643a26b0001401ff797ccb318f97aa6",
"action": "CREATE",
"name": "Actual Portfolio Cost by Program",
"isValid": true
}
},
"UIGB": {
"edb4c6c127d38910e4860eb25569a5cc": {
"targetId": "6643a26b000178fb5cc27b74cc1e87ec",
"action": "USEEXISTING",
"name": "Actual Portfolio Cost by Program",
"isValid": true
}
},
"UIFT": {
"f97b662e229fd09ee595d8d359ec88bd": {
"targetId": "6643a26b00015cdd6727b76d6fda1d1d",
"action": "USEEXISTING",
"name": "Actual Portfolio Cost by Program",
"isValid": true
}
},
"PTLSEC": {
"4bb80aa88a96420296a7f47bf866f162": {
"targetId": "4bb80aa88a96420296a7f47bf866f162",
"action": "USEEXISTING",
"name": "Actual Portfolio Cost by Program",
"isValid": true
}
},
"EXTSEC": {
"65f8637900015e4dceb6fe079bd5409d": {
"targetId": "65f8637900015e4dceb6fe079bd5409d",
"action": "USEEXISTING",
"name": "Asnyc List",
"isValid": true
}
},
"PTLTAB": {
"65f8638a00016422a83ddc3508852d0f": {
"targetId": "65f8638a00016422a83ddc3508852d0f",
"action": "CREATEWITHALTNAME",
"name": "Cool 2.0 The Best",
"isValid": true
}
}
}
Schritt 2: Ändern der Übersetzungszuordnung
Für diesen Schritt gibt es keinen Endpunkt.
-
Überprüfen Sie in der Übersetzungszuordnung die in Schritt 1 - Erstellen einerzurückgegeben wird, die Liste der zu installierenden Objekte.
-
Aktualisieren Sie das Aktionsfeld auf jedem Objekt, um die gewünschte Installationsaktion durchzuführen.
-
Überprüfen Sie die
targetId
für jedes Objekt. Wenn die Aktion „Festlegen“USEEXISTING
oderOVERWRITING
ist, sollte dietargetId
auf die UUID des Zielobjekts in der Zielumgebung festgelegt werden. Für jede andere Aktion sollte die targetId eine leere Zeichenfolge sein.note note NOTE Der targetId
wird bereits ausgefüllt, wenn eine Kollision erkannt wurde.
Schritt 3: Installieren
URL
POST https://{domain}.{environment}.workfront.com/environment-promotion/api/v1/packages/{id}/install
Text
Dies ist ein Objekt mit einem einzelnen translationMap
, das der geänderten Übersetzungszuordnung aus Schritt 2 - Übersetzungszuordnung ändern entsprechen sollte.
{
"translationMap": {
{objcode}: {
{object uuid}: {
"targetId": {uuid of object in destination},
"action": {installation action},
"name": {name of the object},
"isValid": true
},
{...more objects}
},
{...more objcodes}
}
}
Beispiel
{
"translationMap": {
"UIVW": {
"109f611680bb3a2b0c0a8c1f5ec63f6d": {
"targetId": "6643a26b0001401ff797ccb318f97aa6",
"action": "USEEXISTING",
"name": "Actual Portfolio Cost by Program",
"isValid": true
}
},
"UIGB": {
"edb4c6c127d38910e4860eb25569a5cc": {
"targetId": "6643a26b000178fb5cc27b74cc1e87ec",
"action": "USEEXISTING",
"name": "Actual Portfolio Cost by Program",
"isValid": true
}
},
"UIFT": {
"f97b662e229fd09ee595d8d359ec88bd": {
"targetId": "6643a26b00015cdd6727b76d6fda1d1d",
"action": "OVERWRITING",
"name": "Actual Portfolio Cost by Program",
"isValid": true
}
},
"PTLSEC": {
"4bb80aa88a96420296a7f47bf866f162": {
"targetId": "4bb80aa88a96420296a7f47bf866f162",
"action": "USEEXISTING",
"name": "Actual Portfolio Cost by Program",
"isValid": true
}
},
"EXTSEC": {
"65f8637900015e4dceb6fe079bd5409d": {
"targetId": "65f8637900015e4dceb6fe079bd5409d",
"action": "USEEXISTING",
"name": "Asnyc List",
"isValid": true
}
},
"PTLTAB": {
"65f8638a00016422a83ddc3508852d0f": {
"targetId": "65f8638a00016422a83ddc3508852d0f",
"action": "CREATEWITHALTNAME",
"name": "Cool 2.0 The Best",
"isValid": true
}
}
}
}
Antwort
Die Antwort enthält die {uuid of the created installation}
und einen 202 - ACCEPTED
.
Beispiel: b6aa0af8-3520-4b25-aca3-86793dff44a6