diff --git a/apps/wakunode2/external_config.nim b/apps/wakunode2/external_config.nim index a21bc86df..3c604dafe 100644 --- a/apps/wakunode2/external_config.nim +++ b/apps/wakunode2/external_config.nim @@ -509,18 +509,6 @@ proc parseCmdArg*(T: type Option[uint], p: string): T = except CatchableError: raise newException(ValueError, "Invalid unsigned integer") -## Configuration validation - -let DbUrlRegex = re"^[\w\+]+:\/\/[\w\/\\\.\:\@]+$" - -proc validateDbUrl*(val: string): ConfResult[string] = - let val = val.strip() - - if val == "" or val == "none" or val.match(DbUrlRegex): - ok(val) - else: - err("invalid 'db url' option format: " & val) - ## Load proc readValue*(r: var TomlReader, value: var crypto.PrivateKey) {.raises: [SerializationError].} = diff --git a/waku/common/databases/dburl.nim b/waku/common/databases/dburl.nim index affdc04b6..772235bb6 100644 --- a/waku/common/databases/dburl.nim +++ b/waku/common/databases/dburl.nim @@ -7,9 +7,9 @@ import proc validateDbUrl*(dbUrl: string): Result[string, string] = ## dbUrl mimics SQLAlchemy Database URL schema ## See: https://docs.sqlalchemy.org/en/14/core/engines.html#database-urls - let regex = re"^[\w\+]+:\/\/[\w\/\\\.\:\@]+$" + let regex = re"^\w+:\/\/.+:.+@[\w*-.]+:[0-9]+\/[\w*-.]+$" let dbUrl = dbUrl.strip() - if dbUrl == "" or dbUrl == "none" or dbUrl.match(regex): + if "sqlite" in dbUrl or dbUrl == "" or dbUrl == "none" or dbUrl.match(regex): return ok(dbUrl) else: return err("invalid 'db url' option format: " & dbUrl)