diff --git a/auth/auth.go b/auth/auth.go index 5f954776..e34051fa 100644 --- a/auth/auth.go +++ b/auth/auth.go @@ -89,7 +89,7 @@ type Token struct { const ( // DefaultNamespace used for auth - DefaultNamespace = "micro" + DefaultNamespace = "go.micro" // NamespaceKey is the key used when storing the namespace in metadata NamespaceKey = "Micro-Namespace" // MetadataKey is the key used when storing the account in metadata diff --git a/auth/options.go b/auth/options.go index 929cf674..d3c0f4ea 100644 --- a/auth/options.go +++ b/auth/options.go @@ -8,6 +8,8 @@ import ( ) type Options struct { + // Namespace the service belongs to + Namespace string // ID is the services auth ID ID string // Secret is used to authenticate the service @@ -28,6 +30,13 @@ type Options struct { type Option func(o *Options) +// Namespace the service belongs to +func Namespace(n string) Option { + return func(o *Options) { + o.Namespace = n + } +} + // Store to back auth func Store(s store.Store) Option { return func(o *Options) { diff --git a/config/cmd/cmd.go b/config/cmd/cmd.go index 34e417dd..3eb6fb5e 100644 --- a/config/cmd/cmd.go +++ b/config/cmd/cmd.go @@ -314,6 +314,12 @@ var ( EnvVars: []string{"MICRO_CONFIG"}, Usage: "The source of the config to be used to get configuration", }, + &cli.StringFlag{ + Name: "namespace", + EnvVars: []string{"MICRO_NAMESPACE"}, + Usage: "The namespace the service belongs to", + Value: auth.DefaultNamespace, + }, } DefaultBrokers = map[string]func(...broker.Option) broker.Broker{ @@ -678,6 +684,9 @@ func (c *cmd) Before(ctx *cli.Context) error { ctx.String("auth_id"), ctx.String("auth_secret"), )) } + if len(ctx.String("namespace")) > 0 { + authOpts = append(authOpts, auth.Namespace(ctx.String("namespace"))) + } if len(ctx.String("auth_public_key")) > 0 { authOpts = append(authOpts, auth.PublicKey(ctx.String("auth_public_key")))