{"action":"created","issue":{"url":"https://api.github.com/repos/operable/cog/issues/273","repository_url":"https://api.github.com/repos/operable/cog","labels_url":"https://api.github.com/repos/operable/cog/issues/273/labels{/name}","comments_url":"https://api.github.com/repos/operable/cog/issues/273/comments","events_url":"https://api.github.com/repos/operable/cog/issues/273/events","html_url":"https://github.com/operable/cog/issues/273","id":135071519,"number":273,"title":"Improve Bundle configuration ergonomics","user":{"login":"imbriaco","id":1198,"avatar_url":"https://avatars.githubusercontent.com/u/1198?v=3","gravatar_id":"","url":"https://api.github.com/users/imbriaco","html_url":"https://github.com/imbriaco","followers_url":"https://api.github.com/users/imbriaco/followers","following_url":"https://api.github.com/users/imbriaco/following{/other_user}","gists_url":"https://api.github.com/users/imbriaco/gists{/gist_id}","starred_url":"https://api.github.com/users/imbriaco/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/imbriaco/subscriptions","organizations_url":"https://api.github.com/users/imbriaco/orgs","repos_url":"https://api.github.com/users/imbriaco/repos","events_url":"https://api.github.com/users/imbriaco/events{/privacy}","received_events_url":"https://api.github.com/users/imbriaco/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/operable/cog/labels/cog","name":"cog","color":"D0E6FC"},{"url":"https://api.github.com/repos/operable/cog/labels/enhancement","name":"enhancement","color":"FFEB94"},{"url":"https://api.github.com/repos/operable/cog/labels/research","name":"research","color":"e6e6e6"}],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":2,"created_at":"2016-02-20T13:13:01Z","updated_at":"2016-03-09T14:26:47Z","closed_at":null,"body":"Currently Bundle configuration uses JSON files to specify a number of details about the bundle and commands contained within it. Things like the rules, permissions, command details (names paths, options, etc) and so on are all defined in this file. Our goal should be to streamline the process of creating and configuring a commands to the maximum extent possible for both simple and complex commands.\r\n\r\nThere are a some areas that were discussed in the private alpha chat where we may be able to improve our configuration in that direction:\r\n\r\n- Optional fields should be optional. Regardless of whether we ultimately change the format of the configuration, we should loosen up our validation rules to allow optional fields or fields that have sane defaults to be missing from the configuration.\r\n- Reconsider JSON. Is this the best way to represent this configuration? JSON has the unfortunate attribute of not allowing comments which can be a real detriment for hand-written or particularly long configurations. YAML, HCL, or some other format might be a better option.\r\n- Others?\r\n\r\ncc: @technicalpickles "},"comment":{"url":"https://api.github.com/repos/operable/cog/issues/comments/194318502","html_url":"https://github.com/operable/cog/issues/273#issuecomment-194318502","issue_url":"https://api.github.com/repos/operable/cog/issues/273","id":194318502,"user":{"login":"lhaskins","id":5166016,"avatar_url":"https://avatars.githubusercontent.com/u/5166016?v=3","gravatar_id":"","url":"https://api.github.com/users/lhaskins","html_url":"https://github.com/lhaskins","followers_url":"https://api.github.com/users/lhaskins/followers","following_url":"https://api.github.com/users/lhaskins/following{/other_user}","gists_url":"https://api.github.com/users/lhaskins/gists{/gist_id}","starred_url":"https://api.github.com/users/lhaskins/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/lhaskins/subscriptions","organizations_url":"https://api.github.com/users/lhaskins/orgs","repos_url":"https://api.github.com/users/lhaskins/repos","events_url":"https://api.github.com/users/lhaskins/events{/privacy}","received_events_url":"https://api.github.com/users/lhaskins/received_events","type":"User","site_admin":false},"created_at":"2016-03-09T14:26:47Z","updated_at":"2016-03-09T14:26:47Z","body":"We should also migrate our dynamic configuration files."}}