Flytta objekt mellan Workfront-miljöer med Workfront-miljöreklam-API:t
Med funktionen för miljöfrämjande åtgärder kan du flytta konfigurationsrelaterade objekt från en miljö till en annan. Du kan flytta dessa objekt med Workfront API enligt beskrivningen i den här artikeln.
Instruktioner om hur du flyttar objekt mellan miljöer med Workfront finns i:
Åtkomstkrav
Du måste ha följande:
Mer information om informationen i den här tabellen finns i Åtkomstkrav i Workfront-dokumentationen.
Förutsättningar
Slutpunkten Skapa kampanjpaket förutsätter att du redan har konfigurerat källmiljön. Detta API-anrop kräver att du skapar en objektmappning av Workfront objCodes och objekt-GUID:n manuellt. Kartans specifika struktur beskrivs nedan.
Objekt som stöds för miljöbefordran
Funktionen för miljömarknadsföring är avsedd att göra det möjligt att flytta konfigurationsrelaterade objekt från en miljö till en annan. Det stöder inte möjligheten att flytta transaktionsobjekt (med begränsade undantag).
En lista över befordrbara objekt och deras tillhörande befordrbara underobjekt finns i Objekt som stöds för miljöbefordran i artikeln Översikt över rörliga objekt mellan Workfront-miljöer.
Autentisering
API:t autentiserar varje begäran för att säkerställa att klienten har åtkomst att visa eller ändra ett begärt objekt.
Autentisering utförs genom att ett sessions-ID eller en API-nyckel skickas, som kan ges med följande metod:
Autentisering av begärandehuvud
Den autentiseringsmetod som rekommenderas är att skicka ett begärandehuvud med namnet SessionID som innehåller sessionstoken. Fördelen med detta är att det är säkert mot CSRF-attacker (Cross-site Request Forgery) och att det inte stör URI:n för cachelagring.
Följande är ett exempel på en begäranderubrik:
GET /attask/api/v15.0/project/search
SessionID: abc1234
API-slutpunkter
Skapa ett paket
Det här anropet kör en flerstegsprocess.
I det första steget skapas ett tomt kampanjpaket med statusen"ASSEMBLING".
I det andra steget används arrayen objectCollections
som finns i POSTENS brödtext för att samla ihop de begärda posterna från Workfront. Det här steget kan ta flera minuter, beroende på hur många poster som har begärts och din Workfront-konfiguration. I slutet av den här processen uppdateras det tomma erbjudandepaketet med packageEntities
och statusen anges automatiskt till UTKAST.
objectCollections
.objCode
-nyckel som motsvarar objektkoden som beskrivs i Workfront API Explorer.entities
-samling. Detta förväntar sig fältet ID
. Den kan också acceptera ett valfritt name
-attribut så att det blir lättare att veta vad ID
representerar.objectCollections
finns i avsnittet Objekt som stöds för miljöbefordran i den här artikeln.URL
POST https://{domain}.{environment}.workfront.com/environment-promotion/api/v1/packages
Sidhuvuden
{
"apikey": "**********",
"Content-Type": "application/json"
}
eller
{
"sessionID": "*****************",
"Content-Type": "application/json"
}
Brödtext
{
"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"
}
]
}
]
}
Svar
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"
}
}
Hämta en lista med paket
Det här samtalet returnerar en ofiltrerad lista över kampanjpaket som tillhör kunden.
Svaret inkluderar alla paket som skapats från någon av kundens sandlåda, förhandsgranskning eller produktionsinstanser av Workfront.
URL
GET https://{domain}.{environment}.workfront.com/environment-promotion/api/v1/packages
Sidhuvuden
{
"apikey": "**********"
}
eller
{
"sessionID": "*****************"
}
Brödtext
Tom
Svar
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
},
{...}
]
}
<!—Check on "status" above—was added?—>
Hämta ett paket med ID
Detta samtal returnerar information om ett begärt kampanjpaket.
Begäran kan göras i vilken miljö som helst, oavsett kampanjpaketets ursprungliga källa.
URL
GET https://{domain}.{environment}.workfront.com/environment-promotion/api/v1/packages/{id}
Sidhuvuden
{
"apikey": "**********"
}
eller
{
"sessionID": "*****************"
}
Brödtext
Tom
Svar
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": [
{...}
],
...
}
}
}
Uppdatera specifika egenskaper för ett paket
Det här samtalet uppdaterar allt innehåll i erbjudandepaketet som finns i PATCH.
De redigerbara attributen är:
- name (sträng)
- description (string)
- status (sträng med värdevalidering)
En detaljerad beskrivning av tillgängliga statusvärden finns i Status för miljöbefordran i artikeln Översikt över rörliga objekt mellan Workfront-miljöer.
URL
PATCH https://{domain}.{environment}.workfront.com/environment-promotion/api/v1/packages/{id}
Sidhuvuden
{
"apikey": "**********",
"Content-Type": "application/json"
}
eller
{
"sessionID": "*****************",
"Content-Type": "application/json"
}
Brödtext
{
"status": "ACTIVE"
}
Svar
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": [
{...}
],
...
}
}
}
Ta bort ett paket
Det här anropet tar bort kampanjposten. Den här åtgärden är oåterkallelig.
URL
DELETE https://{domain}.{environment}.workfront.com/environment-promotion/api/v1/packages/{id}
Sidhuvuden
{
"apikey": "**********"
}
eller
{
"sessionID": "*****************"
}
Brödtext
Tom
Svar
200
Deleted
Utför en förkörning
Det här anropet utför en jämförelse mellan paketdefinitionen och målmiljön som identifieras i URL:en.
Resultatet är ett JSON-organ som identifierar om ett erbjudande-objekt hittas eller inte i målmiljön.
Ett av följande actions
kommer att anges för varje erbjudande:
Det finns för närvarande inget stöd för UPDATE action
i den här tjänstens alfafunktioner. Alternativet att tillåta en UPDATE action
är något som vi undersöker.
URL
POST https://{domain}.{environment}.workfront.com/environment-promotion/api/v1/packages/:id/prepare-installation
Sidhuvuden
{
"apikey": "**********",
"Content-Type": "application/json"
}
eller
{
"sessionID": "*****************",
"Content-Type": "application/json"
}
Brödtext
{}
Svar
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
. I det här exemplet är fältet id
tredje från överkanten och har ett värde som börjar med c0bc79bd
.Kör en installation
Det här anropet initierar ett installationsförsök för ett kampanjpaket till målmiljön som identifieras i POSTENS URL.
URL
POST https://{domain}.{environment}.workfront.com/environment-promotion/api/v1/installations/{id}/install
Sidhuvuden
{
"apikey": "**********",
"Content-Type": "application/json"
}
eller
{
"sessionID": "*****************",
"Content-Type": "application/json"
}
Brödtext
{
}
Svar
202
{}
Hämta en lista över installationer för ett specifikt paket
Resultatet är installationshändelser från alla miljöer som paketet har distribuerats till. De är inte begränsade till de anläggningar för miljön genom vilka begäran görs. På så sätt kan du identifiera vilka miljöer som har tagit emot det här paketet.
URL
GET https://{domain}.{environment}.workfront.com/environment-promotion/api/v1/installations?environmentPromotionPackageId={environmentPromotionPackageId}
Sidhuvuden
{
"apikey": "**********"
}
eller
{
"sessionID": "*****************"
}
Brödtext
Tom
Svar
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"
},
...
},
...
}
},
{...}
]
Hämta installationsinformation för en installation
Det här samtalet returnerar det sista translationMap
som skapats av installationstjänsten för en specifik installation.
Varje post anger vad den förskrivna action
var och om åtgärden lyckades eller inte.
För poster med CREATE action
ställs fältet targetId
in med värdet för den nyligen skapade posten i målsystemet. Dessutom ställs fältet installationStatus
in på INSTALLED.
För poster med USEEXISTING action
ställs även fältet targetId
in och fältet installationStatus
ställs in på REGISTERED. Detta innebär att mappningsprocessen var slutförd och att installationstjänsten bekräftar att den har utvärderat posten och att det inte finns något att agera på.
Om posten har CREATE action
men inte kan skapa posten, ställs installationStatus
in på FAILED och orsaken till felet anges också.
URL
GET https://{domain}.{environment}.workfront.com/environment-promotion/api/v1/installations/{id}
Sidhuvuden
{
"apikey": "**********"
}
eller
{
"sessionID": "*****************"
}
Brödtext
Tom
Svar
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"
},
...
},
...
}
}
Skriv över
Detta är en trestegsprocess.
- Skapa en översättningskarta (motsvarar fasen"förbereda installation")
- Redigera den genererade översättningskartan och ange fälten
action
ochtargetId
för alla objekt som ska skrivas över. Åtgärden ska varaOVERWRITING
ochtargetId
ska vara uuid för objektet som ska skrivas över - Kör installationen.
Steg 1 - Skapa en översättningsöversikt
URL
POST https://{domain}.{environment}.workfront.com/environment-promotion/api/v1/packages/{id}/translation-map
Brödtext
Ingen
Svar
En översättningskarta med statusen 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}
}
Exempel
{
"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
}
}
}
Steg 2 - Ändra översättningskartan
Det finns ingen slutpunkt för det här steget.
-
Granska listan över objekt som ska installeras i översättningskartan som returnerades i Steg 1 - Skapa en översättningskarta.
-
Uppdatera åtgärdsfältet för varje objekt till önskad installationsåtgärd.
-
Validera
targetId
för varje objekt. Om set-åtgärden ärUSEEXISTING
ellerOVERWRITING
skatargetId
anges som UUID för målobjektet i målmiljön. För andra åtgärder ska targetId vara en tom sträng.note note NOTE targetId
har redan fyllts i om en kollision upptäcktes.
Steg 3 - Installera
URL
POST https://{domain}.{environment}.workfront.com/environment-promotion/api/v1/packages/{id}/install
Brödtext
Det här är ett objekt med ett enskilt fält translationMap
, som ska vara lika med den ändrade översättningskartan från Steg 2 - Ändra översättningskartan.
{
"translationMap": {
{objcode}: {
{object uuid}: {
"targetId": {uuid of object in destination},
"action": {installation action},
"name": {name of the object},
"isValid": true
},
{...more objects}
},
{...more objcodes}
}
}
Exempel
{
"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
}
}
}
}
Svar
Svaret innehåller statusen {uuid of the created installation}
och 202 - ACCEPTED
.
Exempel: b6aa0af8-3520-4b25-aca3-86793dff44a6