payload: {"action":"created","issue":{"url":"https://api.github.com/repos/awslabs/aws-cdk/issues/1967","repository_url":"https://api.github.com/repos/awslabs/aws-cdk","labels_url":"https://api.github.com/repos/awslabs/aws-cdk/issues/1967/labels{/name}","comments_url":"https://api.github.com/repos/awslabs/aws-cdk/issues/1967/comments","events_url":"https://api.github.com/repos/awslabs/aws-cdk/issues/1967/events","html_url":"https://github.com/awslabs/aws-cdk/issues/1967","id":417993021,"node_id":"MDU6SXNzdWU0MTc5OTMwMjE=","number":1967,"title":"Proposal: Store app context in Parameter Store","user":{"login":"otterley","id":95141,"node_id":"MDQ6VXNlcjk1MTQx","avatar_url":"https://avatars3.githubusercontent.com/u/95141?v=4","gravatar_id":"","url":"https://api.github.com/users/otterley","html_url":"https://github.com/otterley","followers_url":"https://api.github.com/users/otterley/followers","following_url":"https://api.github.com/users/otterley/following{/other_user}","gists_url":"https://api.github.com/users/otterley/gists{/gist_id}","starred_url":"https://api.github.com/users/otterley/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/otterley/subscriptions","organizations_url":"https://api.github.com/users/otterley/orgs","repos_url":"https://api.github.com/users/otterley/repos","events_url":"https://api.github.com/users/otterley/events{/privacy}","received_events_url":"https://api.github.com/users/otterley/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":2,"created_at":"2019-03-06T20:24:14Z","updated_at":"2019-05-01T18:35:12Z","closed_at":null,"author_association":"CONTRIBUTOR","body":"CDK uses contexts to store data that is generated the first time an application is run, for use in subsequent application invocations.  These contexts contain information such as AMI IDs, availability zones, and so forth.  Such storage is needed in order to preserve dynamic values that might change in a later query.   Preserving these values prevents an otherwise-working stack from being unnecessarily modified, risking downtime or other availability issues.\r\n\r\nCurrently the context data is stored in `cdk.json` in the app's home directory.  Sharing of this data between users is currently done by committing the file into the app's source code repository.  However, this leads to several risks:\r\n\r\n1. There's no requirement that the file be committed\r\n2. The file may be committed and pushed upstream, but there's no synchronization mechanism: nothing prevents Betty from running `cdk deploy` without having first downloaded the changes pushed upstream by Abigail\r\n3. If the file is committed, context must be sanitized before making the application public\r\n\r\nInstead of keeping this state in the repo, I propose we keep it in SSM Parameter Store instead.  It's purpose built for sharing this information; it's inexpensive; and better still, its data is scoped by region + account.  It resolves all of the problems above AFAICT.\r\n\r\nIs anyone aware of any drawbacks to this approach?\r\n\r\n"},"comment":{"url":"https://api.github.com/repos/awslabs/aws-cdk/issues/comments/488371012","html_url":"https://github.com/awslabs/aws-cdk/issues/1967#issuecomment-488371012","issue_url":"https://api.github.com/repos/awslabs/aws-cdk/issues/1967","id":488371012,"node_id":"MDEyOklzc3VlQ29tbWVudDQ4ODM3MTAxMg==","user":{"login":"cynicaljoy","id":348464,"node_id":"MDQ6VXNlcjM0ODQ2NA==","avatar_url":"https://avatars3.githubusercontent.com/u/348464?v=4","gravatar_id":"","url":"https://api.github.com/users/cynicaljoy","html_url":"https://github.com/cynicaljoy","followers_url":"https://api.github.com/users/cynicaljoy/followers","following_url":"https://api.github.com/users/cynicaljoy/following{/other_user}","gists_url":"https://api.github.com/users/cynicaljoy/gists{/gist_id}","starred_url":"https://api.github.com/users/cynicaljoy/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/cynicaljoy/subscriptions","organizations_url":"https://api.github.com/users/cynicaljoy/orgs","repos_url":"https://api.github.com/users/cynicaljoy/repos","events_url":"https://api.github.com/users/cynicaljoy/events{/privacy}","received_events_url":"https://api.github.com/users/cynicaljoy/received_events","type":"User","site_admin":false},"created_at":"2019-05-01T18:35:12Z","updated_at":"2019-05-01T18:35:12Z","author_association":"NONE","body":"I'd imagine this would need to be configureable within the `cdk.json` as some teams restrict SSM - but  I would take advantage of this. We're currently adding the context file to the `.gitignore` as some of our values that we pull from SSM are protected, so if the app context was stored in SSM we'd gain version history and could manage the access there of with IAM.  "}}
other: {"actor":{"display_login":"cynicaljoy"}}