From f1c8afc5fbcc652b22b27dea54585271c60ecf32 Mon Sep 17 00:00:00 2001 From: Cyber MacGeddon Date: Sat, 27 Dec 2025 17:57:01 +0000 Subject: [PATCH] Update librarian to have region & SSL params --- .../trustgraph/librarian/blob_store.py | 7 +++-- .../trustgraph/librarian/librarian.py | 4 ++- .../trustgraph/librarian/service.py | 27 ++++++++++++++++++- 3 files changed, 34 insertions(+), 4 deletions(-) diff --git a/trustgraph-flow/trustgraph/librarian/blob_store.py b/trustgraph-flow/trustgraph/librarian/blob_store.py index 009cf934..436e2718 100644 --- a/trustgraph-flow/trustgraph/librarian/blob_store.py +++ b/trustgraph-flow/trustgraph/librarian/blob_store.py @@ -15,6 +15,7 @@ class BlobStore: def __init__( self, endpoint, access_key, secret_key, bucket_name, + use_ssl=False, region=None, ): @@ -22,12 +23,14 @@ class BlobStore: endpoint = endpoint, access_key = access_key, secret_key = secret_key, - secure = False, + secure = use_ssl, + region = region, ) self.bucket_name = bucket_name - logger.info(f"Connected to S3-compatible storage at {endpoint}") + protocol = "https" if use_ssl else "http" + logger.info(f"Connected to S3-compatible storage at {protocol}://{endpoint}") self.ensure_bucket() diff --git a/trustgraph-flow/trustgraph/librarian/librarian.py b/trustgraph-flow/trustgraph/librarian/librarian.py index 61038c63..8835cc73 100644 --- a/trustgraph-flow/trustgraph/librarian/librarian.py +++ b/trustgraph-flow/trustgraph/librarian/librarian.py @@ -19,10 +19,12 @@ class Librarian: cassandra_host, cassandra_username, cassandra_password, object_store_endpoint, object_store_access_key, object_store_secret_key, bucket_name, keyspace, load_document, + object_store_use_ssl=False, object_store_region=None, ): self.blob_store = BlobStore( - object_store_endpoint, object_store_access_key, object_store_secret_key, bucket_name + object_store_endpoint, object_store_access_key, object_store_secret_key, bucket_name, + use_ssl=object_store_use_ssl, region=object_store_region, ) self.table_store = LibraryTableStore( diff --git a/trustgraph-flow/trustgraph/librarian/service.py b/trustgraph-flow/trustgraph/librarian/service.py index 5b68f376..1d04ee06 100755 --- a/trustgraph-flow/trustgraph/librarian/service.py +++ b/trustgraph-flow/trustgraph/librarian/service.py @@ -41,9 +41,11 @@ default_collection_response_queue = collection_response_queue default_config_request_queue = config_request_queue default_config_response_queue = config_response_queue -default_object_store_endpoint = "http://ceph-rgw:7480" +default_object_store_endpoint = "ceph-rgw:7480" default_object_store_access_key = "object-user" default_object_store_secret_key = "object-password" +default_object_store_use_ssl = False +default_object_store_region = None default_cassandra_host = "cassandra" bucket_name = "library" @@ -89,6 +91,14 @@ class Processor(AsyncProcessor): "object_store_secret_key", default_object_store_secret_key ) + object_store_use_ssl = params.get( + "object_store_use_ssl", + default_object_store_use_ssl + ) + object_store_region = params.get( + "object_store_region", + default_object_store_region + ) cassandra_host = params.get("cassandra_host") cassandra_username = params.get("cassandra_username") @@ -214,6 +224,8 @@ class Processor(AsyncProcessor): bucket_name = bucket_name, keyspace = keyspace, load_document = self.load_document, + object_store_use_ssl = object_store_use_ssl, + object_store_region = object_store_region, ) self.collection_manager = CollectionManager( @@ -513,6 +525,19 @@ class Processor(AsyncProcessor): f'(default: {default_object_store_secret_key})', ) + parser.add_argument( + '--object-store-use-ssl', + action='store_true', + default=default_object_store_use_ssl, + help=f'Use SSL/TLS for object storage connection (default: {default_object_store_use_ssl})', + ) + + parser.add_argument( + '--object-store-region', + default=default_object_store_region, + help='Object storage region (optional)', + ) + add_cassandra_args(parser) def run():