Add metadate management in grpc
All checks were successful
Build and Push Docker Image / build_and_push (push) Successful in 2m7s

This commit is contained in:
Arnaud Delcasse
2026-01-14 00:38:18 +01:00
parent 44f5a3d182
commit bc7ba530d4
3 changed files with 46 additions and 11 deletions

View File

@@ -19,6 +19,7 @@ func (a Account) ToStorageType() storage.Account {
ID: a.Id,
Namespace: a.Namespace,
Data: map[string]any{},
Metadata: map[string]any{},
Authentication: storage.AccountAuth{
Local: localauth,
},
@@ -35,6 +36,17 @@ func (a Account) ToStorageType() storage.Account {
account.Data[k] = data
}
for k, d := range a.Metadata.GetFields() {
jsondata, err := protojson.Marshal(d)
if err != nil {
log.Error().Err(err).Msg("")
break
}
var data any
json.Unmarshal(jsondata, &data)
account.Metadata[k] = data
}
return account
}
@@ -84,10 +96,22 @@ func AccountFromStorageType(account *storage.Account) (*Account, error) {
return nil, err
}
m, err := sanitizeData(account.Metadata)
if err != nil {
return nil, err
}
metadata, err := structpb.NewStruct(m)
if err != nil {
log.Error().Err(err).Msg("")
return nil, err
}
return &Account{
Id: account.ID,
Namespace: account.Namespace,
Data: data,
Metadata: metadata,
Authentication: &AccountAuth{
Local: lc,
},