From e8c1592a4758f3c630cca9013ec28db7bc48f864 Mon Sep 17 00:00:00 2001 From: Giuseppe Guerra Date: Thu, 25 May 2023 12:11:51 +0200 Subject: [PATCH] Datasources: Deprecate and log creating/updating datasources with invalid UIDs (#68800) * Datasources: Deprecate and log when creating/updating datasources with invalid UIDs * trigger * Update invalid uid deprecation log message * capitalize log --- pkg/services/datasources/service/store.go | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/pkg/services/datasources/service/store.go b/pkg/services/datasources/service/store.go index abde4e001a2..4fac1abef0f 100644 --- a/pkg/services/datasources/service/store.go +++ b/pkg/services/datasources/service/store.go @@ -244,6 +244,8 @@ func (ss *SqlStore) AddDataSource(ctx context.Context, cmd *datasources.AddDataS return fmt.Errorf("failed to generate UID for datasource %q: %w", cmd.Name, err) } cmd.UID = uid + } else if !util.IsValidShortUID(cmd.UID) { + logDeprecatedInvalidDsUid(ss.logger, cmd.UID, cmd.Name) } ds = &datasources.DataSource{ @@ -377,6 +379,10 @@ func (ss *SqlStore) UpdateDataSource(ctx context.Context, cmd *datasources.Updat } } + if !util.IsValidShortUID(cmd.UID) { + logDeprecatedInvalidDsUid(ss.logger, cmd.UID, cmd.Name) + } + return err }) } @@ -399,3 +405,12 @@ func generateNewDatasourceUid(sess *db.Session, orgId int64) (string, error) { } var generateNewUid func() string = util.GenerateShortUID + +func logDeprecatedInvalidDsUid(logger log.Logger, uid, name string) { + logger.Warn( + "Invalid datasource uid. The use of invalid uids is deprecated and this operation will fail in a future "+ + "version of Grafana. A valid uid is a combination of a-z, A-Z, 0-9 (alphanumeric), - (dash) and _ "+ + "(underscore) characters, maximum length 40", + "uid", uid, "name", name, + ) +}