From 44bbfc1473aa1dd98d10e6ecfd28b5ef994f823e Mon Sep 17 00:00:00 2001 From: 01AtharvR <164509706+01AtharvR@users.noreply.github.com> Date: Mon, 20 Jul 2026 15:04:24 +0530 Subject: [PATCH] Sanitize workspace name used as Cassandra keyspace (#1043) (#1053) --- trustgraph-flow/trustgraph/direct/cassandra_kg.py | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/trustgraph-flow/trustgraph/direct/cassandra_kg.py b/trustgraph-flow/trustgraph/direct/cassandra_kg.py index f1e4a577..d916a2f0 100644 --- a/trustgraph-flow/trustgraph/direct/cassandra_kg.py +++ b/trustgraph-flow/trustgraph/direct/cassandra_kg.py @@ -2,7 +2,7 @@ import datetime import os import logging - +import re from cassandra.cluster import Cluster from cassandra.auth import PlainTextAuthProvider from cassandra.query import BatchStatement, SimpleStatement @@ -548,7 +548,7 @@ class EntityCentricKnowledgeGraph: if hosts is None: hosts = ["localhost"] - self.keyspace = keyspace + self.keyspace = self.sanitize_name(keyspace) self.replication_factor = replication_factor self.username = username @@ -572,6 +572,13 @@ class EntityCentricKnowledgeGraph: self.init() self.prepare_statements() + + def sanitize_name(self, name: str) -> str: + """Sanitize names for Cassandra compatibility""" + safe_name = re.sub(r'[^a-zA-Z0-9_]', '_', name) + if safe_name and not safe_name[0].isalpha(): + safe_name = 'r_' + safe_name + return safe_name.lower() def clear(self): self.session.execute(f"""