@startuml Title: Autoversion on Content Update - Versioning Flow participant "CMIS Client" as C participant "Repository" as R participant "Version Service" as V participant "workspace://SpacesStore" as SS participant "workspace://version2Store" as VS participant "File System" as FS database "Database" as DB C->R:HTTP POST activate R group "transaction" R->V activate V V->SS: create node activate SS SS->DB: create node activate DB DB->SS: OK deactivate DB SS->V: OK deactivate SS note right of SS workspace://SpacesStore/e8cc2b68-7482-4304-a93e-02c758a80954 cm:autoVersionOnUpdateProps=false cm:name=foo.txt cm:versionLabel=1.0 end note V->VS: create version history node with one child node activate VS VS->DB: create nodes activate DB DB->VS: OK deactivate DB VS->V: OK deactivate VS note right of VS One Version History Node with one child ... workspace://version2Store/ce68aba3-73f6-44f9-ad9b-a9e8d77212de cm:autoVersionOnUpdateProps=false cm:name=foo.txt cm:versionLabel=null ver2:versionLabel=1.0 ver2:versionDescription=Initial Version end note end V->R: OK deactivate V R->C: 200 OK deactivate R C->R:HTTP PUT (cm:name=bar.txt) activate R group "transaction" R->V V->SS: update node activate V activate SS SS->DB: update node activate DB DB->SS: OK deactivate DB SS->V: OK deactivate SS note right of SS workspace://SpacesStore/e8cc2b68-7482-4304-a93e-02c758a80954 cm:autoVersionOnUpdateProps=false cm:name=bar.txt cm:versionLabel=1.0 end note note right of VS One Version History Node with one child... workspace://version2Store/ce68aba3-73f6-44f9-ad9b-a9e8d77212de cm:autoVersionOnUpdateProps=false cm:name=foo.txt cm:versionLabel=null ver2:versionLabel=1.0 ver2:versionDescription=Initial Version end note end C->R:HTTP PUT (new file content) activate R group "transaction" R->V activate V V->SS: update node activate SS SS->FS: write file content activate FS FS->SS: OK deactivate FS SS->DB: update node to point to new file content activate DB DB->SS: OK deactivate DB SS->V: OK deactivate SS note right of SS workspace://SpacesStore/e8cc2b68-7482-4304-a93e-02c758a80954 cm:autoVersionOnUpdateProps=false cm:name=bar.txt cm:versionLabel=1.0 end note V->VS: create a new child of the version history node activate VS VS->DB: create node activate DB DB->VS: OK deactivate DB VS->V: OK deactivate VS note right of VS One Version History Node with two children... workspace://version2Store/ce68aba3-73f6-44f9-ad9b-a9e8d77212de cm:autoVersionOnUpdateProps=false cm:name=foo.txt cm:versionLabel=null ver2:versionLabel=1.0 ver2:versionDescription=Initial Version NEW CHILD: workspace://version2Store/9fb3fb08-7cfb-4c0a-ac72-233aaf60fa1e cm:autoVersionOnUpdateProps=false cm:name=bar.txt cm:versionLabel=1.0 ver2:versionLabel=1.1 ver2:versionDescription=Update New File Content end note end @enduml