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
This commit is contained in:
Giuseppe Guerra 2023-05-25 12:11:51 +02:00 committed by GitHub
parent 6613610f07
commit e8c1592a47
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -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,
)
}