Sanitize workspace name used as Cassandra keyspace (#1043) (#1053)

This commit is contained in:
01AtharvR 2026-07-20 15:04:24 +05:30 committed by GitHub
parent 80ca41f8d2
commit 44bbfc1473
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -2,7 +2,7 @@
import datetime import datetime
import os import os
import logging import logging
import re
from cassandra.cluster import Cluster from cassandra.cluster import Cluster
from cassandra.auth import PlainTextAuthProvider from cassandra.auth import PlainTextAuthProvider
from cassandra.query import BatchStatement, SimpleStatement from cassandra.query import BatchStatement, SimpleStatement
@ -548,7 +548,7 @@ class EntityCentricKnowledgeGraph:
if hosts is None: if hosts is None:
hosts = ["localhost"] hosts = ["localhost"]
self.keyspace = keyspace self.keyspace = self.sanitize_name(keyspace)
self.replication_factor = replication_factor self.replication_factor = replication_factor
self.username = username self.username = username
@ -573,6 +573,13 @@ class EntityCentricKnowledgeGraph:
self.init() self.init()
self.prepare_statements() 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): def clear(self):
self.session.execute(f""" self.session.execute(f"""
drop keyspace if exists {self.keyspace}; drop keyspace if exists {self.keyspace};