I'm using the following endpoint to update a node:
https://api-explorer.alfresco.com/api-explorer/#!/nodes/updateNode
{ "properties": [ "cm:title": "New Title", "cm:description": "New Description", "cm:author": "New Author", ] }
This works fine on nodes without versions. However, if a node has cm:versionable, it only updates cm:author but title and description remain the same. Tagging (which is done in a separate step) also works fine.
I also tried sending cm:versionLabel/versionType along but this also didn't help.
Neither by setting the same or higher version label.
Any help is highly appreciated!
Solved! Go to Solution.
Hi,
I've just tried again using the api-explorer - http://localhost/api-explorer/#!/nodes/updateNode.
Using the PUT cmd I've been able to update cm:title & cm:description of a versioned document.
curl -X PUT --header 'Content-Type: application/json' --header 'Accept: application/json' --header 'Authorization: Basic YWRtaW46YWRtaW4=' -d '{ "properties": { "cm:title":"My NEW title", "cm:description":"This is an important doc" } }' 'http://localhost/alfresco/api/-default-/public/alfresco/versions/1/nodes/3f43567d-a3ae-4b79-b56c-d52157defe9d'
Request URL:
http://localhost/alfresco/api/-default-/public/alfresco/versions/1/nodes/3f43567d-a3ae-4b79-b56c-d52157defe9d
Response body:
{ "entry": { "isFile": true, "createdByUser": { "id": "admin", "displayName": "Administrator" }, "modifiedAt": "2020-04-23T13:26:54.465+0000", "nodeType": "cm:content", "content": { "mimeType": "application/vnd.openxmlformats-officedocument.wordprocessingml.document", "mimeTypeName": "Microsoft Word 2007", "sizeInBytes": 48, "encoding": "UTF-8" }, "parentId": "479ec2bc-fb73-4e93-9c44-b36d08ba0446", "aspectNames": [ "rn:renditioned", "cm:versionable", "cm:titled", "cm:auditable", "cm:taggable", "cm:rateable", "cm:likesRatingSchemeRollups", "cm:author", "cm:thumbnailModification" ], "createdAt": "2020-04-03T13:46:54.555+0000", "isFolder": false, "modifiedByUser": { "id": "admin", "displayName": "Administrator" }, "name": "rename file", "id": "3f43567d-a3ae-4b79-b56c-d52157defe9d", "properties": { "cm:title": "My NEW title", "cm:versionType": "MINOR", "cm:versionLabel": "2.1", "cm:author": "BoPeep 3", "cm:likesRatingSchemeTotal": 1, "cm:likesRatingSchemeCount": 1, "cm:lastThumbnailModification": [ "pdf:1587645057519", "doclib:1587645059840" ], "cm:description": "This is an important doc" } } }
Payload body
{ "properties": { "cm:title":"My NEW title", "cm:description":"This is an important doc" } }
What version of Alfresco are you running? I'm running 6.2 GA201911.
Hi,
Have you had a look at the Rest API series - part 5 discusses locking & versioning? I believe the correct PUTT call is http://localhost:8080/alfresco/api/-default-/public/alfresco/versions/1/nodes/{id} - more info here.
HTH,
Thanks a lot for your reply.
This is actually what I'm currently doing.
The request itself works fine on unversioned nodes and I don't really want to create a new version or anything like that. I just want to update properties of the current version. I also don't get an error back from the API. It just didn't apply some of the properties I sent.
This is the node I PUT to:
{ "isFile": true, "createdByUser": { "id": "U1627", "displayName": "John Doe" }, "modifiedAt": "2020-04-22T11:33:02.817+0000", "nodeType": "cm:content", "content": { "mimeType": "application\/pdf", "mimeTypeName": "Adobe PDF Document", "sizeInBytes": 115669, "encoding": "UTF-8" }, "parentId": "95b9880d-6869-47e2-9353-c878ee7ced60", "aspectNames": [ "rn:renditioned", "cm:versionable", "cm:titled", "cm:auditable", "cm:taggable", "cm:author", "cm:thumbnailModification" ], "createdAt": "2020-01-07T09:37:26.247+0000", "isFolder": false, "modifiedByUser": { "id": "U1627", "displayName": "John Doe" }, "name": "Test.pdf", "id": "c30f7faf-2b5b-454d-aaac-a1e940c7330e", "properties": { "cm:title": "Old Title", "cm:versionType": "MINOR", "cm:versionLabel": "1.3", "cm:author": "New Author", "cm:lastThumbnailModification": [ "doclib:1587546256239", "imgpreview:1587546256672" ], "cm:description": "Old Description", "cm:taggable": [ "db4fccfe-b850-4eff-a5dd-5fcdfb8e15d9" ] } }
This is my payload:
{ "properties": [ "cm:title": "New Title", "cm:description": "New Description", "cm:author": "New Author", ] }
As you can see, cm:author got updated, but title and description are still "old".
Hi @sboesch,
I actually experienced the same result as you did with that call.
However, I've just updated a versioned document's cm:title & cm:description using the following API call:
http://localhost/alfresco/s/api/metadata/node/workspace/SpacesStore/3f43567d-a3ae-4b79-b56c-d52157defe9d?alf_ticket=TICKET_007669d537dd0bff8507331d9da1362ed5dcdec4
The node I PUT to is:
{ "nodeRef": "workspace://SpacesStore/3f43567d-a3ae-4b79-b56c-d52157defe9d", "aspects": [ "rn:renditioned", "cm:versionable", "cm:titled", "sys:cascadeUpdate", "cm:auditable", "sys:referenceable", "sys:localized", "cm:taggable", "cm:author", "cm:thumbnailModification" ], "mimetype": "application/vnd.openxmlformats-officedocument.wordprocessingml.document", "type": "cm:content", "properties": { "cm:created": "2020-04-03T13:46:54.555Z", "cm:lastThumbnailModification": [ "pdf:1587563780477", "doclib:1587563785658" ], "cm:description": "test desc using ws", "cm:creator": "admin", "sys:node-uuid": "3f43567d-a3ae-4b79-b56c-d52157defe9d", "cm:name": "rename file", "cm:content": "contentUrl=store://2020/4/22/13/56/1189b2f1-23c6-4520-a3eb-4098079935e1.bin|mimetype=application/vnd.openxmlformats-officedocument.wordprocessingml.document|size=3560|encoding=UTF-8|locale=en_US_|id=325", "sys:store-identifier": "SpacesStore", "cm:versionLabel": "2.0", "sys:cascadeCRC": 2463522156, "cm:autoVersion": true, "cm:initialVersion": true, "cm:versionType": "MAJOR", "cm:autoVersionOnUpdateProps": false, "cm:title": "a title updated by API call", "sys:cascadeTx": 101, "cm:taggable": null, "sys:store-protocol": "workspace", "sys:node-dbid": 949, "sys:locale": "en_US", "cm:modifier": "admin", "cm:modified": "2020-04-22T16:26:09.217Z", "cm:author": "Eddie May" } }
My payload was:
{ "properties":{ "cm:name": "rename file", "cm:title": "a title updated by API call", "cm:description": "test desc using ws" } }
I'm not sure if this means you have to use this particular API call to update versioned documents? I'll take a further look around and update if I discover more.
Cheers,
Thank you very much for looking into this.
I tried your alternative API call and noticed it only supports POST instead of PUT.
However, I still get the same results - cm:author gets updated, but cm:title and description not.
I'll check it again, to see if I missed something.
Hi,
I've just tried again using the api-explorer - http://localhost/api-explorer/#!/nodes/updateNode.
Using the PUT cmd I've been able to update cm:title & cm:description of a versioned document.
curl -X PUT --header 'Content-Type: application/json' --header 'Accept: application/json' --header 'Authorization: Basic YWRtaW46YWRtaW4=' -d '{ "properties": { "cm:title":"My NEW title", "cm:description":"This is an important doc" } }' 'http://localhost/alfresco/api/-default-/public/alfresco/versions/1/nodes/3f43567d-a3ae-4b79-b56c-d52157defe9d'
Request URL:
http://localhost/alfresco/api/-default-/public/alfresco/versions/1/nodes/3f43567d-a3ae-4b79-b56c-d52157defe9d
Response body:
{ "entry": { "isFile": true, "createdByUser": { "id": "admin", "displayName": "Administrator" }, "modifiedAt": "2020-04-23T13:26:54.465+0000", "nodeType": "cm:content", "content": { "mimeType": "application/vnd.openxmlformats-officedocument.wordprocessingml.document", "mimeTypeName": "Microsoft Word 2007", "sizeInBytes": 48, "encoding": "UTF-8" }, "parentId": "479ec2bc-fb73-4e93-9c44-b36d08ba0446", "aspectNames": [ "rn:renditioned", "cm:versionable", "cm:titled", "cm:auditable", "cm:taggable", "cm:rateable", "cm:likesRatingSchemeRollups", "cm:author", "cm:thumbnailModification" ], "createdAt": "2020-04-03T13:46:54.555+0000", "isFolder": false, "modifiedByUser": { "id": "admin", "displayName": "Administrator" }, "name": "rename file", "id": "3f43567d-a3ae-4b79-b56c-d52157defe9d", "properties": { "cm:title": "My NEW title", "cm:versionType": "MINOR", "cm:versionLabel": "2.1", "cm:author": "BoPeep 3", "cm:likesRatingSchemeTotal": 1, "cm:likesRatingSchemeCount": 1, "cm:lastThumbnailModification": [ "pdf:1587645057519", "doclib:1587645059840" ], "cm:description": "This is an important doc" } } }
Payload body
{ "properties": { "cm:title":"My NEW title", "cm:description":"This is an important doc" } }
What version of Alfresco are you running? I'm running 6.2 GA201911.
Alright, apparently we are still on Version 5.2.e/f. We'll try to update.
Thanks for your effort.
Ask for and offer help to other Alfresco Content Services Users and members of the Alfresco team.
Related links:
By using this site, you are agreeing to allow us to collect and use cookies as outlined in Alfresco’s Cookie Statement and Terms of Use (and you have a legitimate interest in Alfresco and our products, authorizing us to contact you in such methods). If you are not ok with these terms, please do not use this website.