Objecten tussen Workfront -omgevingen verplaatsen met de Workfront Environment Promotion API
Met de mogelijkheid Omgevingsbevordering kunt u configuratiegerelateerde objecten van de ene omgeving naar de andere verplaatsen. U kunt deze objecten verplaatsen met de Workfront API, zoals beschreven in dit artikel.
Voor instructies over het verplaatsen van objecten tussen omgevingen met de Workfront-toepassing raadpleegt u:
Toegangsvereisten
U moet het volgende hebben:
Voor meer detail over de informatie in deze lijst, zie vereisten van de Toegang in de documentatie van Workfront.
Vereisten
Het Create eindpunt van het Pakket van de Bevordering veronderstelt dat u reeds het bronmilieu hebt gevormd. Voor deze API-aanroep moet handmatig een objectkaart van Workfront objCodes en object GUIDs worden gemaakt. De specifieke structuur van deze kaart wordt hieronder beschreven.
Ondersteunde objecten voor milieubescherming
Het vermogen van de Bevordering van het Milieu is bedoeld om de capaciteit te verstrekken om op configuratie betrekking hebbende voorwerpen van één milieu aan een andere te bewegen. Het ondersteunt niet de mogelijkheid om transactieobjecten te verplaatsen (met beperkte uitzonderingen).
Voor een lijst van promotable voorwerpen en hun inbegrepen promotable subobjects, zie Gesteunde voorwerpen voor milieubevorderingin het artikel Overzicht van het bewegen van voorwerpen tussen de milieu's van Workfront.
Verificatie
De API verifieert elke aanvraag om ervoor te zorgen dat de client toegang heeft om een aangevraagd object te bekijken of te wijzigen.
Verificatie wordt uitgevoerd door een sessie-id of API-sleutel door te geven. Deze kan met de volgende methode worden gegeven:
Koptekstverificatie aanvragen
De aangewezen methode van authentificatie is een verzoekkopbal over te gaan genoemd SessionID die het zittingsteken bevat. Dit heeft het voordeel om tegen Cross-site van het Verzoek Smederij (CSRF)aanvallen veilig te zijn en zich niet met URI voor caching doeleinden te mengen.
Hieronder ziet u een voorbeeld van een aanvraagkoptekst:
GET /attask/api/v15.0/project/search
SessionID: abc1234
API-eindpunten
- Een pakket maken
- Een lijst met pakketten ophalen
- Pakket ophalen op id
- Specifieke eigenschappen van een pakket bijwerken
- Een pakket verwijderen
- Een prerun uitvoeren
- Een installatie uitvoeren
- Een lijst met installaties voor een specifiek pakket ophalen
- Haal de installatiegegevens voor een installatie op
Een pakket maken
Deze vraag voert een multi-step proces uit.
De eerste stap resulteert in de creatie van een leeg promotiepakket in de status "ASSEMBLING".
In de tweede stap wordt de array objectCollections
in de hoofdtekst van de POST gebruikt om de gevraagde records van Workfront samen te stellen. Deze stap kan enkele minuten duren, afhankelijk van het aantal opgevraagde records en uw Workfront-configuratie. Aan het einde van dit proces wordt het lege promotiepakket bijgewerkt met packageEntities
en wordt de status automatisch ingesteld op "DRAFT".
objectCollections
.objCode
-sleutel die overeenkomt met de objectcode die in de Workfront API Explorer is gedocumenteerd.entities
-verzameling. Hiermee wordt het veld ID
verwacht. Het kan ook een optioneel name
-kenmerk accepteren, zodat u gemakkelijker kunt zien wat de ID
vertegenwoordigt.objectCollections
lijst moeten worden gevraagd, zie de Gesteunde voorwerpen voor milieu bevorderingsectie in dit artikel.URL
POST https://{domain}.{environment}.workfront.com/environment-promotion/api/v1/packages
Kopteksten
{
"apikey": "**********",
"Content-Type": "application/json"
}
of
{
"sessionID": "*****************",
"Content-Type": "application/json"
}
Lichaam
{
"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"
}
]
}
]
}
Antwoord
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"
}
}
Een lijst met pakketten ophalen
Deze vraag keert een ongefilterde lijst van bevorderingspakketten terug die tot de klant behoren.
De reactie omvat alle pakketten die zijn gemaakt op basis van een sandbox, voorvertoning of productie-instantie van Workfront van de klant.
URL
GET https://{domain}.{environment}.workfront.com/environment-promotion/api/v1/packages
Kopteksten
{
"apikey": "**********"
}
of
{
"sessionID": "*****************"
}
Lichaam
Leeg
Antwoord
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
},
{...}
]
}
<!—Schakel hierboven "status" in—is deze toegevoegd?—>
Pakket ophalen op id
Deze oproep retourneert de details van een aangevraagd promotiepakket.
Het verzoek kan worden gedaan door om het even welke milieu ongeacht de originele bron van het bevorderingspakket.
URL
GET https://{domain}.{environment}.workfront.com/environment-promotion/api/v1/packages/{id}
Kopteksten
{
"apikey": "**********"
}
of
{
"sessionID": "*****************"
}
Lichaam
Leeg
Antwoord
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": [
{...}
],
...
}
}
}
Specifieke eigenschappen van een pakket bijwerken
Deze oproep werkt de inhoud van het promotiepakket bij die in de PATCH-instantie wordt geleverd.
De bewerkbare kenmerken zijn:
- name (string)
- description (string)
- status (tekenreeks met validatie van waarden)
Voor een gedetailleerde beschrijving van beschikbare statussen, zie de bevorderingsstatussen van het Milieuin het artikel Overzicht van het bewegen van voorwerpen tussen de milieu's van Workfront.
URL
PATCH https://{domain}.{environment}.workfront.com/environment-promotion/api/v1/packages/{id}
Kopteksten
{
"apikey": "**********",
"Content-Type": "application/json"
}
of
{
"sessionID": "*****************",
"Content-Type": "application/json"
}
Lichaam
{
"status": "ACTIVE"
}
Antwoord
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": [
{...}
],
...
}
}
}
Een pakket verwijderen
Met deze aanroep wordt de record voor het promotiepakket verwijderd. Deze actie is onomkeerbaar.
URL
DELETE https://{domain}.{environment}.workfront.com/environment-promotion/api/v1/packages/{id}
Kopteksten
{
"apikey": "**********"
}
of
{
"sessionID": "*****************"
}
Lichaam
Leeg
Antwoord
200
Deleted
Een prerun uitvoeren
Met deze aanroep wordt een vergelijking gemaakt tussen de pakketdefinitie en de doelomgeving die in de URL is aangegeven.
Het resultaat is een JSON-instantie die aangeeft of een promotieobject al dan niet wordt gevonden in de doelomgeving.
Voor elk promotieobject wordt een van de volgende opties ingesteld: actions
Er is momenteel geen ondersteuning voor een UPDATE action
in de alfamogelijkheden van deze service. De optie om een UPDATE action
toe te staan, is iets waar we naar zoeken.
URL
POST https://{domain}.{environment}.workfront.com/environment-promotion/api/v1/packages/:id/prepare-installation
Kopteksten
{
"apikey": "**********",
"Content-Type": "application/json"
}
of
{
"sessionID": "*****************",
"Content-Type": "application/json"
}
Lichaam
{}
Antwoord
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 dit voorbeeld bevindt het veld id
zich op het derde punt van de bovenkant en heeft een waarde die begint met c0bc79bd
.Een installatie uitvoeren
Deze vraag stelt een installatiepoging van een bevorderingspakket in het doelmilieu in werking dat in de POST URL wordt geïdentificeerd.
URL
POST https://{domain}.{environment}.workfront.com/environment-promotion/api/v1/installations/{id}/install
Kopteksten
{
"apikey": "**********",
"Content-Type": "application/json"
}
of
{
"sessionID": "*****************",
"Content-Type": "application/json"
}
Lichaam
{
}
Antwoord
202
{}
Een lijst met installaties voor een specifiek pakket ophalen
De resultaten omvatten installatiegebeurtenissen van alle milieu's het pakket is opgesteld aan. Zij zijn niet beperkt tot de installaties voor het milieu waarmee het verzoek wordt gedaan. Zo kunt u bepalen welke omgevingen dit pakket hebben ontvangen.
URL
GET https://{domain}.{environment}.workfront.com/environment-promotion/api/v1/installations?environmentPromotionPackageId={environmentPromotionPackageId}
Kopteksten
{
"apikey": "**********"
}
of
{
"sessionID": "*****************"
}
Lichaam
Leeg
Antwoord
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"
},
...
},
...
}
},
{...}
]
Haal de installatiegegevens voor een installatie op
Deze aanroep retourneert de laatste translationMap
die door de installatieservice voor een specifieke installatie is gemaakt.
In elke record wordt aangegeven wat de voorgeschreven action
was en of die actie succesvol was of niet.
Voor records met een CREATE action
wordt het veld targetId
ingesteld met de waarde van de nieuwe record in het doelsysteem. Daarnaast wordt het veld installationStatus
ingesteld op INSTALLED.
Voor records met USEEXISTING action
wordt het veld targetId
ook ingesteld en wordt het veld installationStatus
ingesteld op REGISTERED. Dit betekent dat het kaartproces volledig was en de installatieservice erkent dat het het verslag heeft geëvalueerd en er niets om te handelen is.
Als de record een CREATE action
heeft maar er geen record kan worden gemaakt, wordt de installationStatus
ingesteld op FAILED en wordt ook de reden voor de fout opgegeven.
URL
GET https://{domain}.{environment}.workfront.com/environment-promotion/api/v1/installations/{id}
Kopteksten
{
"apikey": "**********"
}
of
{
"sessionID": "*****************"
}
Lichaam
Leeg
Antwoord
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"
},
...
},
...
}
}
Overschrijven
Dit is een proces in drie stappen.
- Een vertaalkaart maken (dit is te vergelijken met de installatiefase "De installatie voorbereiden")
- Bewerk de gegenereerde vertaalkaart en stel de velden
action
entargetId
in voor elk object dat ze willen overschrijven. De handeling moetOVERWRITING
zijn en detargetId
moet de uuid zijn van het object dat moet worden overschreven - Voer de installatie uit.
Stap 1 - creeer een Omzetkaart
URL
POST https://{domain}.{environment}.workfront.com/environment-promotion/api/v1/packages/{id}/translation-map
Lichaam
Geen
Antwoord
Een vertaalkaart, met een 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}
}
Voorbeeld
{
"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
}
}
}
Stap 2 - Wijzig de Omzettingskaart
Er is geen eindpunt voor deze stap.
-
In de vertaalkaart die in Stap 1 is teruggekeerd - creeer een Vertaal Kaart, inspecteer de lijst van voorwerpen die zullen worden geïnstalleerd.
-
Werk het actieveld op elk voorwerp aan de gewenste installatieactie bij.
-
Valideer de
targetId
voor elk object. Als de actie setUSEEXISTING
ofOVERWRITING
is, moet detargetId
worden ingesteld op de UUID van het doelobject in de doelomgeving. Voor elke andere actie moet targetId een lege tekenreeks zijn.note note NOTE targetId
is reeds bevolkt als een botsing werd ontdekt.
Stap 3 - installeer
URL
POST https://{domain}.{environment}.workfront.com/environment-promotion/api/v1/packages/{id}/install
Lichaam
Dit is een voorwerp met één enkel gebied translationMap
, dat de gewijzigde vertaalkaart van Stap 2 zou moeten evenaren - wijzig de Omzettingskaart.
{
"translationMap": {
{objcode}: {
{object uuid}: {
"targetId": {uuid of object in destination},
"action": {installation action},
"name": {name of the object},
"isValid": true
},
{...more objects}
},
{...more objcodes}
}
}
Voorbeeld
{
"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
}
}
}
}
Antwoord
Het antwoord bevat de status {uuid of the created installation}
en 202 - ACCEPTED
.
Voorbeeld: b6aa0af8-3520-4b25-aca3-86793dff44a6