{"action":"created","issue":{"url":"https://api.github.com/repos/TryGhost/Ghost/issues/3910","labels_url":"https://api.github.com/repos/TryGhost/Ghost/issues/3910/labels{/name}","comments_url":"https://api.github.com/repos/TryGhost/Ghost/issues/3910/comments","events_url":"https://api.github.com/repos/TryGhost/Ghost/issues/3910/events","html_url":"https://github.com/TryGhost/Ghost/issues/3910","id":41657568,"number":3910,"title":"Permissions Migrations","user":{"login":"ErisDS","id":101513,"avatar_url":"https://avatars.githubusercontent.com/u/101513?v=3","gravatar_id":"","url":"https://api.github.com/users/ErisDS","html_url":"https://github.com/ErisDS","followers_url":"https://api.github.com/users/ErisDS/followers","following_url":"https://api.github.com/users/ErisDS/following{/other_user}","gists_url":"https://api.github.com/users/ErisDS/gists{/gist_id}","starred_url":"https://api.github.com/users/ErisDS/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ErisDS/subscriptions","organizations_url":"https://api.github.com/users/ErisDS/orgs","repos_url":"https://api.github.com/users/ErisDS/repos","events_url":"https://api.github.com/users/ErisDS/events{/privacy}","received_events_url":"https://api.github.com/users/ErisDS/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/TryGhost/Ghost/labels/api","name":"api","color":"FA18A8"},{"url":"https://api.github.com/repos/TryGhost/Ghost/labels/data","name":"data","color":"C0E5C8"},{"url":"https://api.github.com/repos/TryGhost/Ghost/labels/permissions","name":"permissions","color":"F0B3E0"}],"state":"closed","locked":false,"assignee":null,"milestone":null,"comments":3,"created_at":"2014-09-01T19:10:10Z","updated_at":"2015-10-09T17:10:57Z","closed_at":"2015-10-09T17:10:57Z","body":"At present, we have no system by which permissions can be added to the `permissions.json` file and safely migrated.\r\n\r\nWe need to design a system which allows permissions to be added, so that we can add new permissions for the configuration API, apps API, and any other endpoints which we need to create.\r\n\r\nIt is expected that if we create a situation where a permission needs to be changed or removed, that the migration system would have to be updated to manage those cases.\r\n\r\nAt present, permissions migrations are triggered as a part of the migration system, which requires that the database version be bumped. Whether or not this should be required in future is up for discussion.\r\n\r\nIf we continue to use the version bumping to trigger a migration, then we need to protect the schema.js, fixtures.json and permissions.json files from being updated without a version bump in some way - possibly via a simple test which checks the content."},"comment":{"url":"https://api.github.com/repos/TryGhost/Ghost/issues/comments/146934807","html_url":"https://github.com/TryGhost/Ghost/issues/3910#issuecomment-146934807","issue_url":"https://api.github.com/repos/TryGhost/Ghost/issues/3910","id":146934807,"user":{"login":"ErisDS","id":101513,"avatar_url":"https://avatars.githubusercontent.com/u/101513?v=3","gravatar_id":"","url":"https://api.github.com/users/ErisDS","html_url":"https://github.com/ErisDS","followers_url":"https://api.github.com/users/ErisDS/followers","following_url":"https://api.github.com/users/ErisDS/following{/other_user}","gists_url":"https://api.github.com/users/ErisDS/gists{/gist_id}","starred_url":"https://api.github.com/users/ErisDS/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ErisDS/subscriptions","organizations_url":"https://api.github.com/users/ErisDS/orgs","repos_url":"https://api.github.com/users/ErisDS/repos","events_url":"https://api.github.com/users/ErisDS/events{/privacy}","received_events_url":"https://api.github.com/users/ErisDS/received_events","type":"User","site_admin":false},"created_at":"2015-10-09T17:10:57Z","updated_at":"2015-10-09T17:10:57Z","body":"Labelling all the open permissions related issues (there are several) with both `permissions` and `later` as I'm working on a spec to solve the immediate issues as well as a long term plan, which will replace all of these issues."}}