{"action":"created","issue":{"url":"https://api.github.com/repos/serverless/serverless/issues/435","labels_url":"https://api.github.com/repos/serverless/serverless/issues/435/labels{/name}","comments_url":"https://api.github.com/repos/serverless/serverless/issues/435/comments","events_url":"https://api.github.com/repos/serverless/serverless/issues/435/events","html_url":"https://github.com/serverless/serverless/issues/435","id":123967841,"number":435,"title":"Multi-API Deployment or Serverless Solution Deployment","user":{"login":"n8sabes","id":10445528,"avatar_url":"https://avatars.githubusercontent.com/u/10445528?v=3","gravatar_id":"","url":"https://api.github.com/users/n8sabes","html_url":"https://github.com/n8sabes","followers_url":"https://api.github.com/users/n8sabes/followers","following_url":"https://api.github.com/users/n8sabes/following{/other_user}","gists_url":"https://api.github.com/users/n8sabes/gists{/gist_id}","starred_url":"https://api.github.com/users/n8sabes/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/n8sabes/subscriptions","organizations_url":"https://api.github.com/users/n8sabes/orgs","repos_url":"https://api.github.com/users/n8sabes/repos","events_url":"https://api.github.com/users/n8sabes/events{/privacy}","received_events_url":"https://api.github.com/users/n8sabes/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/serverless/serverless/labels/enhancement","name":"enhancement","color":"84b6eb"}],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":3,"created_at":"2015-12-27T08:39:38Z","updated_at":"2016-01-03T10:08:36Z","closed_at":null,"body":"**SCENARIO**\r\nMy current system is divided into an Operational API and a SysAdmin API, both mapped to respective Lambda functions in a larger shared library. Each \"side\" of the system is secured with different API URLs, API Keys, sub-system security methodologies, etc. The pain point is that I must manage two different Serverless projects for what is one solution and it's moderately tedious moving back and forth between them.\r\n\r\nTwo ideas that would make life easier for such a public / private API architecture project:\r\n\r\n**IDEA 1**\r\nSpecify (override) the deployment API Name within the s-module.json and / or s-function.json. Whichever definition is closest to the endpoint wins. This would enable a single project to deploy endpoints across multiple API’s, each of which may be secured differently in AWS.\r\n\r\n**IDEA 2**\r\nAn Sls Solution Deploy package which would deploy multiple sub-projects simultaneously. This would be similar to Xcode Workspaces or other IDE Solutions with multiple sub-projects.\r\n\r\nThere may be other strategies to solve this problem that I’ve not considered yet, such a multi-stage management but that seems more messy.\r\n\r\nFood for thought.\r\n"},"comment":{"url":"https://api.github.com/repos/serverless/serverless/issues/comments/168484642","html_url":"https://github.com/serverless/serverless/issues/435#issuecomment-168484642","issue_url":"https://api.github.com/repos/serverless/serverless/issues/435","id":168484642,"user":{"login":"n8sabes","id":10445528,"avatar_url":"https://avatars.githubusercontent.com/u/10445528?v=3","gravatar_id":"","url":"https://api.github.com/users/n8sabes","html_url":"https://github.com/n8sabes","followers_url":"https://api.github.com/users/n8sabes/followers","following_url":"https://api.github.com/users/n8sabes/following{/other_user}","gists_url":"https://api.github.com/users/n8sabes/gists{/gist_id}","starred_url":"https://api.github.com/users/n8sabes/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/n8sabes/subscriptions","organizations_url":"https://api.github.com/users/n8sabes/orgs","repos_url":"https://api.github.com/users/n8sabes/repos","events_url":"https://api.github.com/users/n8sabes/events{/privacy}","received_events_url":"https://api.github.com/users/n8sabes/received_events","type":"User","site_admin":false},"created_at":"2016-01-03T10:08:36Z","updated_at":"2016-01-03T10:08:36Z","body":"Thanks Austen. Two things to consider:\r\n\r\n1) `restApiId` should be supported at each level (e.g. Project, Module, and Function), whereas children inherit from the parent, unless they override their parent, resulting in the nearest to the endpoint winning.\r\n\r\n2) To handle the case of functions in disparate lineage (different paths) targeting the same `restApiId`, Sls might need to either a) concatenate endpoint definitions from all paths before deployment, or b) prohibit disjointed API definitions, forcing one downline lineage instance of a `restApiId`.\r\n\r\nI think this would answer the gap to merge multiple Serverless projects into a single tidy project solution.\r\n"}}