Skip to content

Commit 2783f4e

Browse files
authored
namespaces: allow '+' in names (#2023)
Signed-off-by: Maciej Obuchowski <obuchowski.maciej@gmail.com>
1 parent f1645f9 commit 2783f4e

3 files changed

Lines changed: 5 additions & 4 deletions

File tree

api/src/main/java/marquez/common/models/NamespaceName.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,15 +21,15 @@ public final class NamespaceName {
2121
private static final int MIN_SIZE = 1;
2222
private static final int MAX_SIZE = 1024;
2323
private static final Pattern PATTERN =
24-
Pattern.compile(String.format("^[a-zA-Z:;=/0-9_\\-\\.@]{%d,%d}$", MIN_SIZE, MAX_SIZE));
24+
Pattern.compile(String.format("^[a-zA-Z:;=/0-9_\\-\\.@+]{%d,%d}$", MIN_SIZE, MAX_SIZE));
2525

2626
@Getter private final String value;
2727

2828
public NamespaceName(@NonNull final String value) {
2929
checkArgument(
3030
PATTERN.matcher(value).matches(),
3131
"namespace '%s' must contain only letters (a-z, A-Z), numbers (0-9), "
32-
+ "underscores (_), at (@), dashes (-), colons (:), equals (=), semicolons (;), slashes (/) "
32+
+ "underscores (_), at (@), plus (+), dashes (-), colons (:), equals (=), semicolons (;), slashes (/) "
3333
+ "or dots (.) with a maximum length of %s characters.",
3434
value,
3535
MAX_SIZE);

api/src/main/java/marquez/db/OpenLineageDao.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -411,7 +411,7 @@ default String getUrlOrNull(String uri) {
411411
}
412412

413413
default String formatNamespaceName(String namespace) {
414-
return namespace.replaceAll("[^a-z:/A-Z0-9\\-_.@]", "_");
414+
return namespace.replaceAll("[^a-z:/A-Z0-9\\-_.@+]", "_");
415415
}
416416

417417
default JobType getJobType(Job job) {

api/src/test/java/marquez/common/models/NamespaceNameTest.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,8 @@ public class NamespaceNameTest {
1919
"sqlserver://synapse-test-test001.sql.azuresynapse.net;databaseName=TESTPOOL1;",
2020
"\u003D",
2121
"@",
22-
"abfss://something@.something-else.core.windows.net"
22+
"abfss://something@.something-else.core.windows.net",
23+
"databricks+connector://asdf-123456-7890.cloud.databricks.com"
2324
})
2425
void testValidNamespaceName(String name) {
2526
assertThat(NamespaceName.of(name).getValue()).isEqualTo(name);

0 commit comments

Comments
 (0)