kuma
31 строка · 649.0 Байт
1package envoyadmin
2
3import (
4"context"
5
6"google.golang.org/grpc/metadata"
7
8"github.com/kumahq/kuma/pkg/multitenant"
9)
10
11const TenantMetadataKey = "tenant_id"
12
13func appendTenantMetadata(ctx context.Context) context.Context {
14tenantId, ok := multitenant.TenantFromCtx(ctx)
15if !ok {
16return ctx
17}
18return metadata.AppendToOutgoingContext(ctx, TenantMetadataKey, tenantId)
19}
20
21func extractTenantMetadata(ctx context.Context) context.Context {
22md, ok := metadata.FromIncomingContext(ctx)
23if !ok {
24return ctx
25}
26tenantIds := md.Get(TenantMetadataKey)
27if len(tenantIds) != 1 {
28return ctx
29}
30return multitenant.WithTenant(ctx, tenantIds[0])
31}
32