Verschieben von Objekten zwischen Workfront-Umgebungen mithilfe der Workfront Umgebungsförderungs-API
Mit der Umgebungsförderungsfunktion 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 der Workfront-Anwendung 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 Workfront-Dokumentation.
Voraussetzungen
Der Endpunkt "Promotion Package erstellen"setzt voraus, dass Sie die Quellumgebung bereits konfiguriert haben. Dieser API-Aufruf erfordert das manuelle Erstellen einer Objektzuordnung von Workfront objCodes und Objekt-GUIDs. Die spezifische Struktur dieser Karte wird nachfolgend beschrieben.
Unterstützte Objekte für die Umgebungsförderung
Die Funktion zur Umgebungsförderung soll die Möglichkeit bieten, konfigurationsbezogene Objekte von einer Umgebung in eine andere zu verschieben. Die Möglichkeit zum Verschieben von Transaktionsobjekten wird nicht unterstützt (mit eingeschränkten Ausnahmen).
Eine Liste der förderfähigen Objekte und der zugehörigen förderfähigen Unterobjekte finden Sie unter Unterstützte Objekte für die Umgebungsförderung im Artikel Übersicht über das Verschieben von Objekten zwischen Workfront-Umgebungen.
Authentifizierung
Die API authentifiziert jede Anfrage, um sicherzustellen, dass der Client Zugriff auf das Anzeigen oder Ändern eines angeforderten Objekts hat.
Die Authentifizierung erfolgt durch Übergabe einer Sitzungs-ID oder eines API-Schlüssels, der mit der folgenden Methode gegeben werden kann:
Authentifizierung des Anforderungsheaders
Die bevorzugte Authentifizierungsmethode besteht darin, einen Anforderungsheader namens SessionID zu übergeben, der das Sitzungstoken enthält. Dies hat den Vorteil, dass sie vor Cross-Site Request Forgery (CSRF) -Angriffen geschützt sind und den URI nicht zum Zwischenspeichern stören.
Im Folgenden finden Sie ein Beispiel für eine Anfrage-Kopfzeile:
GET /attask/api/v15.0/project/search
SessionID: abc1234
API-Endpunkte
- Package erstellen
- Eine Liste von Paketen abrufen
- Paket nach ID abrufen
- Aktualisieren bestimmter Eigenschaften eines Pakets
- Löschen eines Pakets
- Ausführen einer Vorab-Ausführung
- Ausführen einer Installation
- Liste der Installationen für ein bestimmtes Paket abrufen
- Installationsdetails für eine Installation abrufen
Package erstellen
Dieser Aufruf führt einen mehrstufigen Prozess aus.
Der erste Schritt führt zur Erstellung eines leeren Promotionpakets im Status "ASSEMBLING".
Der zweite Schritt verwendet das im Hauptteil der POST bereitgestellte Array objectCollections
, um die angeforderten Datensätze aus Workfront zusammenzustellen. 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 Wert packageEntities
aktualisiert und der Status wird automatisch auf "ENTWURF"gesetzt.
objectCollections
-Arrays.objCode
-Schlüssel, der dem im Workfront API Explorer dokumentierten Objektcode entspricht.entities
-Sammlung. Dadurch wird das ID
-Feld erwartet. Es kann auch ein optionales name
-Attribut akzeptieren, um leichter zu erkennen, was das ID
darstellt.objectCollections
angefordert werden sollen, finden Sie im Abschnitt Unterstützte Objekte für die Umgebungsförderung 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"
}
]
}
]
}
Reaktion
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"
}
}
Eine Liste von Paketen abrufen
Dieser Aufruf gibt eine ungefilterte Liste von Promotion-Paketen zurück, die zum Kunden gehören.
Die Antwort umfasst alle Pakete, die aus einer der Sandboxes, Vorschauen 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
Empty
Reaktion
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 den obigen "Status"— wurde er hinzugefügt?—>
Paket nach ID abrufen
Dieser Aufruf gibt die Details eines angeforderten Promotion-Pakets zurück.
Die Anfrage kann unabhängig von der ursprünglichen Quelle des Promotion-Pakets über jede Umgebung gesendet werden.
URL
GET https://{domain}.{environment}.workfront.com/environment-promotion/api/v1/packages/{id}
Kopfzeilen
{
"apikey": "**********"
}
Oder
{
"sessionID": "*****************"
}
Text
Empty
Reaktion
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 bestimmter Eigenschaften eines Pakets
Dieser Aufruf aktualisiert alle Inhalte des Promotion-Pakets, die im PATCH-Textkörper bereitgestellt werden.
Die bearbeitbaren Attribute sind:
- name (string)
- description (string)
- status (Zeichenfolge mit Wertvalidierung)
Eine ausführliche Beschreibung der verfügbaren Status finden Sie unter Status der Umgebungsförderung im Artikel Überblick über das 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"
}
Reaktion
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
Durch diesen Aufruf wird der Datensatz des Promotion-Pakets gelöscht. Diese Aktion ist unumkehrbar.
URL
DELETE https://{domain}.{environment}.workfront.com/environment-promotion/api/v1/packages/{id}
Kopfzeilen
{
"apikey": "**********"
}
Oder
{
"sessionID": "*****************"
}
Text
Empty
Reaktion
200
Deleted
Ausführen einer Vorab-Ausführung
Dieser Aufruf führt einen Vergleich zwischen der Package-Definition und der in der URL angegebenen Zielumgebung durch.
Das Ergebnis ist ein JSON-Hauptteil, der angibt, ob ein Promotion-Objekt in der Zielumgebung gefunden wurde oder nicht.
Für jedes Promotion-Objekt wird einer der folgenden actions
festgelegt:
Es gibt derzeit keine Unterstützung für ein UPDATE action
in den Alpha-Funktionen dieses Dienstes. Die Option, ein UPDATE action
zuzulassen, ist etwas, das wir untersuchen.
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
{}
Reaktion
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 Feld id
das dritte Feld von oben und hat einen Wert, der mit c0bc79bd
beginnt.Ausführen einer Installation
Dieser Aufruf startet einen Installationsversuch eines Promotion-Pakets in der in der POST-URL angegebenen Zielumgebung.
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
{
}
Reaktion
202
{}
Liste der Installationen für ein bestimmtes Paket abrufen
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 Anfrage gestellt wird. Auf diese Weise können Sie ermitteln, 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
Empty
Reaktion
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"
},
...
},
...
}
},
{...}
]
Installationsdetails für eine Installation abrufen
Dieser Aufruf gibt die finale translationMap
zurück, die vom Installationsdienst für eine bestimmte Installation erzeugt wurde.
Jeder Datensatz gibt an, was die verschriebene action
war und ob diese Aktion erfolgreich war oder nicht.
Für Datensätze mit CREATE action
wird das Feld targetId
mit dem Wert des neu erstellten Datensatzes im Zielsystem festgelegt. Außerdem wird für das Feld installationStatus
der Wert INSTALLIERT festgelegt.
Für Datensätze mit dem USEXISTING action
wird auch das Feld targetId
festgelegt und das Feld installationStatus
auf REGISTRIERT. Dies bedeutet, dass der Zuordnungsprozess abgeschlossen ist und der Installationsdienst bestätigt, dass er den Datensatz ausgewertet hat und dass nichts zu tun ist.
Wenn der Datensatz einen CREATE action
-Wert hat, der Datensatz jedoch nicht erfolgreich erstellt werden kann, wird der installationStatus
auf FEHLGESCHLAGEN 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
Empty
Reaktion
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 Sie eine Übersetzungszuordnung (entspricht der Phase "Installation vorbereiten").
- Bearbeiten Sie die generierte Übersetzungszuordnung und legen Sie die Felder
action
undtargetId
für jedes Objekt fest, das überschrieben werden soll. Die Aktion sollteOVERWRITING
lauten und dietargetId
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
Reaktion
Eine Übersetzungszuordnung mit dem Status 202 - OK
{
{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 Übersetzungskarte
Für diesen Schritt gibt es keinen Endpunkt.
-
Überprüfen Sie in der Übersetzungszuordnung, die in Schritt 1 - Erstellen einer Übersetzungszuordnung zurückgegeben wird, die Liste der zu installierenden Objekte.
-
Aktualisieren Sie das Aktionsfeld für jedes Objekt auf die gewünschte Installationsaktion.
-
Validieren Sie die
targetId
für jedes Objekt. Wenn die festgelegte AktionUSEEXISTING
oderOVERWRITING
ist, sollte für dietargetId
die UUID des Zielobjekts in der Zielumgebung festgelegt werden. Bei jeder anderen Aktion sollte targetId eine leere Zeichenfolge sein.note note NOTE Die targetId
ist 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 Feld 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
}
}
}
}
Reaktion
Die Antwort enthält den Status {uuid of the created installation}
und 202 - ACCEPTED
.
Beispiel: b6aa0af8-3520-4b25-aca3-86793dff44a6