{"action":"reopened","issue":{"url":"https://api.github.com/repos/spring-cloud/spring-cloud-config/issues/198","labels_url":"https://api.github.com/repos/spring-cloud/spring-cloud-config/issues/198/labels{/name}","comments_url":"https://api.github.com/repos/spring-cloud/spring-cloud-config/issues/198/comments","events_url":"https://api.github.com/repos/spring-cloud/spring-cloud-config/issues/198/events","html_url":"https://github.com/spring-cloud/spring-cloud-config/issues/198","id":96305619,"number":198,"title":"Multi tenancy support ","user":{"login":"lejeunen","id":1515528,"avatar_url":"https://avatars.githubusercontent.com/u/1515528?v=3","gravatar_id":"","url":"https://api.github.com/users/lejeunen","html_url":"https://github.com/lejeunen","followers_url":"https://api.github.com/users/lejeunen/followers","following_url":"https://api.github.com/users/lejeunen/following{/other_user}","gists_url":"https://api.github.com/users/lejeunen/gists{/gist_id}","starred_url":"https://api.github.com/users/lejeunen/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/lejeunen/subscriptions","organizations_url":"https://api.github.com/users/lejeunen/orgs","repos_url":"https://api.github.com/users/lejeunen/repos","events_url":"https://api.github.com/users/lejeunen/events{/privacy}","received_events_url":"https://api.github.com/users/lejeunen/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":0,"created_at":"2015-07-21T12:36:40Z","updated_at":"2015-07-21T12:37:05Z","closed_at":null,"body":"We are considering using the config server for our multi-tenant SaaS application, but have trouble finding an elegant way to do it with the actual state of the config server. Or maybe we are missing something, if so please tell us :)\r\n\r\nOur application serves multiple customers, or tenants, and each of them have specific configuration.\r\n\r\nExamples of tenant aware configuration are\r\n\r\n* Structure of analytical levels\r\n* Activation of optional modules (e.g. project, sales...)\r\n* Configuration of widgets\r\n* Injections to run and their configuration\r\n* Emails of people to notify of various events\r\n\r\nWith spring cloud config server, there are 2 options identified\r\n\r\n* A branch per tenant, specify it in the label part. Can use a list of labels to \"inherit\" standard properties, e.g. label=tenantXXX,standard. Another option is to git merge manually.\r\n* A properties file with a different name, e.g. accounting-service-tenantXXX.properties. Inherit mechanism can easily be set up by using 2 variables : one for standard property (static), and another optional one for tenant specific (dynamic based on tenant).\r\n\r\nIn any case the client side cannot be used as-is due to its inability to dynamically set the label (option 1) or the application name (option 2).\r\n\r\nInstead, a simple config client based on RestTemplate could be developed to get tenant aware configuration through the config server, but this means bypassing the client part of config server entirely.\r\n\r\nSome kind of support to achieve in a more elegant way would be nice.\r\n\r\nAny comment appreciated"}}