{"action":"closed","issue":{"url":"https://api.github.com/repos/webprofusion/certify/issues/196","repository_url":"https://api.github.com/repos/webprofusion/certify","labels_url":"https://api.github.com/repos/webprofusion/certify/issues/196/labels{/name}","comments_url":"https://api.github.com/repos/webprofusion/certify/issues/196/comments","events_url":"https://api.github.com/repos/webprofusion/certify/issues/196/events","html_url":"https://github.com/webprofusion/certify/issues/196","id":270841123,"number":196,"title":"Vault (file based setting and asset storage) is not process safe","user":{"login":"webprofusion-chrisc","id":2445502,"avatar_url":"https://avatars3.githubusercontent.com/u/2445502?v=4","gravatar_id":"","url":"https://api.github.com/users/webprofusion-chrisc","html_url":"https://github.com/webprofusion-chrisc","followers_url":"https://api.github.com/users/webprofusion-chrisc/followers","following_url":"https://api.github.com/users/webprofusion-chrisc/following{/other_user}","gists_url":"https://api.github.com/users/webprofusion-chrisc/gists{/gist_id}","starred_url":"https://api.github.com/users/webprofusion-chrisc/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/webprofusion-chrisc/subscriptions","organizations_url":"https://api.github.com/users/webprofusion-chrisc/orgs","repos_url":"https://api.github.com/users/webprofusion-chrisc/repos","events_url":"https://api.github.com/users/webprofusion-chrisc/events{/privacy}","received_events_url":"https://api.github.com/users/webprofusion-chrisc/received_events","type":"User","site_admin":false},"labels":[{"id":348149297,"url":"https://api.github.com/repos/webprofusion/certify/labels/enhancement","name":"enhancement","color":"84b6eb","default":true}],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":1,"created_at":"2017-11-02T23:35:15Z","updated_at":"2018-03-14T01:00:02Z","closed_at":"2018-03-14T01:00:02Z","author_association":"CONTRIBUTOR","body":"We currently use the ACMESharp local file vault provider to store settings related to the certification process. \r\n\r\nOperations on the vault frequently fail due to collisions on access (read/write). We have tried to minimise this using a lock on access methods but this is not helping when AV etc interacts with the vault file.\r\n\r\nWe need to look at how we can have a vault storage/settings storage database which is completely process-safe. Related : #193\r\n\r\nFirst suggestion is to use a system wide global mutex. This may cause issues if the process crashes without releasing the mutex. Second option is to find  local file database library (Sql lite or LiteDB are candidates) suitable for our purpose without too much engineering effort to integrate.\r\n"}}
{"actor":{"display_login":"webprofusion-chrisc"}}