diff --git a/.devcontainer/.dev_config.yaml b/.devcontainer/.dev_config.yaml index eb79728d..fda99703 100644 --- a/.devcontainer/.dev_config.yaml +++ b/.devcontainer/.dev_config.yaml @@ -302,7 +302,7 @@ loader_token_hashes: log_level: trace service_name: metldata -service_instance_id: 001 +service_instance_id: "001" kafka_servers: ["kafka:9092"] primary_artifact_name: embedded_public diff --git a/README.md b/README.md index ffbac9af..bd21b2f2 100644 --- a/README.md +++ b/README.md @@ -94,38 +94,142 @@ metldata --help ### Parameters The service requires the following configuration parameters: -- **`artifact_infos`** *(array)*: Information for artifacts to be queryable via the Artifacts REST API. +- **`db_connection_str`** *(string, format: password)*: MongoDB connection string. Might include credentials. For more information see: https://naiveskill.com/mongodb-connection-string/. - - **Items**: Refer to *[#/definitions/ArtifactInfo](#definitions/ArtifactInfo)*. -- **`db_connection_str`** *(string, format: password)*: MongoDB connection string. Might include credentials. For more information see: https://naiveskill.com/mongodb-connection-string/. + Examples: + + ```json + "mongodb://localhost:27017" + ``` + - **`db_name`** *(string)*: Name of the database located on the MongoDB server. + + Examples: + + ```json + "my-database" + ``` + + - **`service_name`** *(string)*: Default: `"metldata"`. - **`service_instance_id`** *(string)*: A string that uniquely identifies this instance across all instances of this service. A globally unique Kafka client ID will be created by concatenating the service_name and the service_instance_id. + + Examples: + + ```json + "germany-bw-instance-001" + ``` + + - **`kafka_servers`** *(array)*: A list of connection strings to connect to Kafka bootstrap servers. - **Items** *(string)* + + Examples: + + ```json + [ + "localhost:9092" + ] + ``` + + +- **`kafka_security_protocol`** *(string)*: Protocol used to communicate with brokers. Valid values are: PLAINTEXT, SSL. Must be one of: `["PLAINTEXT", "SSL"]`. Default: `"PLAINTEXT"`. + +- **`kafka_ssl_cafile`** *(string)*: Certificate Authority file path containing certificates used to sign broker certificates. If a CA not specified, the default system CA will be used if found by OpenSSL. Default: `""`. + +- **`kafka_ssl_certfile`** *(string)*: Optional filename of client certificate, as well as any CA certificates needed to establish the certificate's authenticity. Default: `""`. + +- **`kafka_ssl_keyfile`** *(string)*: Optional filename containing the client private key. Default: `""`. + +- **`kafka_ssl_password`** *(string)*: Optional password to be used for the client private key. Default: `""`. + - **`primary_artifact_name`** *(string)*: Name of the artifact from which the information for outgoing change events is derived. + + Examples: + + ```json + "embedded_public" + ``` + + - **`primary_dataset_name`** *(string)*: Name of the resource class corresponding to the embedded_dataset slot. + + Examples: + + ```json + "EmbeddedDataset" + ``` + + - **`resource_change_event_topic`** *(string)*: Name of the topic used for events informing other services about resource changes, i.e. deletion or insertion. + + Examples: + + ```json + "searchable_resources" + ``` + + - **`resource_deletion_event_type`** *(string)*: Type used for events indicating the deletion of a previously existing resource. + + Examples: + + ```json + "searchable_resource_deleted" + ``` + + - **`resource_upsertion_type`** *(string)*: Type used for events indicating the upsert of a resource. + + Examples: + + ```json + "searchable_resource_upserted" + ``` + + - **`dataset_change_event_topic`** *(string)*: Name of the topic announcing, among other things, the list of files included in a new dataset. + + Examples: + + ```json + "metadata_datasets" + ``` + + - **`dataset_deletion_type`** *(string)*: Type used for events announcing a new dataset overview. + + Examples: + + ```json + "dataset_deleted" + ``` + + - **`dataset_upsertion_type`** *(string)*: Type used for events announcing a new dataset overview. + + Examples: + + ```json + "dataset_created" + ``` + + - **`host`** *(string)*: IP of the host. Default: `"127.0.0.1"`. - **`port`** *(integer)*: Port to expose the server on the specified host. Default: `8080`. @@ -142,60 +246,91 @@ The service requires the following configuration parameters: - **`docs_url`** *(string)*: Path to host the swagger documentation. This is relative to the specified host and port. Default: `"/docs"`. -- **`cors_allowed_origins`** *(array)*: A list of origins that should be permitted to make cross-origin requests. By default, cross-origin requests are not allowed. You can use ['*'] to allow any origin. +- **`cors_allowed_origins`**: A list of origins that should be permitted to make cross-origin requests. By default, cross-origin requests are not allowed. You can use ['*'] to allow any origin. Default: `null`. - - **Items** *(string)* + - **Any of** -- **`cors_allow_credentials`** *(boolean)*: Indicate that cookies should be supported for cross-origin requests. Defaults to False. Also, cors_allowed_origins cannot be set to ['*'] for credentials to be allowed. The origins must be explicitly specified. + - *array* -- **`cors_allowed_methods`** *(array)*: A list of HTTP methods that should be allowed for cross-origin requests. Defaults to ['GET']. You can use ['*'] to allow all standard methods. + - **Items** *(string)* - - **Items** *(string)* + - *null* -- **`cors_allowed_headers`** *(array)*: A list of HTTP request headers that should be supported for cross-origin requests. Defaults to []. You can use ['*'] to allow all headers. The Accept, Accept-Language, Content-Language and Content-Type headers are always allowed for CORS requests. - - **Items** *(string)* + Examples: -- **`loader_token_hashes`** *(array)*: Hashes of tokens used to authenticate for loading artifact. + ```json + [ + "https://example.org", + "https://www.example.org" + ] + ``` - - **Items** *(string)* -## Definitions +- **`cors_allow_credentials`**: Indicate that cookies should be supported for cross-origin requests. Defaults to False. Also, cors_allowed_origins cannot be set to ['*'] for credentials to be allowed. The origins must be explicitly specified. Default: `null`. + + - **Any of** + + - *boolean* + + - *null* + + + Examples: + + ```json + [ + "https://example.org", + "https://www.example.org" + ] + ``` -- **`AnchorPoint`** *(object)*: A model for describing an anchor point for the specified target class. +- **`cors_allowed_methods`**: A list of HTTP methods that should be allowed for cross-origin requests. Defaults to ['GET']. You can use ['*'] to allow all standard methods. Default: `null`. - - **`target_class`** *(string, required)*: The name of the class to be targeted. + - **Any of** - - **`identifier_slot`** *(string, required)*: The name of the slot in the target class that is used as identifier. + - *array* - - **`root_slot`** *(string, required)*: The name of the slot in the root class used to link to the target class. + - **Items** *(string)* -- **`ArtifactResourceClass`** *(object)*: Model to describe a resource class of an artifact. + - *null* - - **`name`** *(string, required)*: The name of the metadata class. - - **`description`** *(string)*: A description of the metadata class. + Examples: - - **`anchor_point`**: The anchor point for this metadata class. + ```json + [ + "*" + ] + ``` - - **All of** - - : Refer to *[#/definitions/AnchorPoint](#definitions/AnchorPoint)*. +- **`cors_allowed_headers`**: A list of HTTP request headers that should be supported for cross-origin requests. Defaults to []. You can use ['*'] to allow all headers. The Accept, Accept-Language, Content-Language and Content-Type headers are always allowed for CORS requests. Default: `null`. - - **`json_schema`** *(object, required)*: The JSON schema for this metadata class. + - **Any of** -- **`ArtifactInfo`** *(object)*: Model to describe general information on an artifact. -Please note, it does not contain actual artifact instances derived from specific -metadata. + - *array* - - **`name`** *(string, required)*: The name of the artifact. + - **Items** *(string)* - - **`description`** *(string, required)*: A description of the artifact. + - *null* - - **`resource_classes`** *(object, required)*: A dictionary of resource classes for this artifact. The keys are the names of the classes. The values are the corresponding class models. Can contain additional properties. - - **Additional Properties**: Refer to *[#/definitions/ArtifactResourceClass](#definitions/ArtifactResourceClass)*. + Examples: + + ```json + [] + ``` + + +- **`artifact_infos`** *(array)*: Information for artifacts to be queryable via the Artifacts REST API. + + - **Items**: Refer to *[#/$defs/ArtifactInfo](#$defs/ArtifactInfo)*. + +- **`loader_token_hashes`** *(array)*: Hashes of tokens used to authenticate for loading artifact. + + - **Items** *(string)* ### Usage: diff --git a/config_schema.json b/config_schema.json index e3f55882..216d19cb 100644 --- a/config_schema.json +++ b/config_schema.json @@ -1,167 +1,266 @@ { - "title": "ModSettings", - "description": "Modifies the orginal Settings class provided by the user", - "type": "object", - "properties": { - "artifact_infos": { - "title": "Artifact Infos", - "description": "Information for artifacts to be queryable via the Artifacts REST API.", - "env_names": [ - "metldata_artifact_infos" + "$defs": { + "AnchorPoint": { + "description": "A model for describing an anchor point for the specified target class.", + "properties": { + "target_class": { + "description": "The name of the class to be targeted.", + "title": "Target Class", + "type": "string" + }, + "identifier_slot": { + "description": "The name of the slot in the target class that is used as identifier.", + "title": "Identifier Slot", + "type": "string" + }, + "root_slot": { + "description": "The name of the slot in the root class used to link to the target class.", + "title": "Root Slot", + "type": "string" + } + }, + "required": [ + "target_class", + "identifier_slot", + "root_slot" ], - "type": "array", - "items": { - "$ref": "#/definitions/ArtifactInfo" - } + "title": "AnchorPoint", + "type": "object" }, + "ArtifactInfo": { + "description": "Model to describe general information on an artifact.\nPlease note, it does not contain actual artifact instances derived from specific\nmetadata.", + "properties": { + "name": { + "description": "The name of the artifact.", + "title": "Name", + "type": "string" + }, + "description": { + "description": "A description of the artifact.", + "title": "Description", + "type": "string" + }, + "resource_classes": { + "additionalProperties": { + "$ref": "#/$defs/ArtifactResourceClass" + }, + "description": "A dictionary of resource classes for this artifact. The keys are the names of the classes. The values are the corresponding class models.", + "title": "Resource Classes", + "type": "object" + } + }, + "required": [ + "name", + "description", + "resource_classes" + ], + "title": "ArtifactInfo", + "type": "object" + }, + "ArtifactResourceClass": { + "description": "Model to describe a resource class of an artifact.", + "properties": { + "name": { + "description": "The name of the metadata class.", + "title": "Name", + "type": "string" + }, + "description": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "description": "A description of the metadata class.", + "title": "Description" + }, + "anchor_point": { + "allOf": [ + { + "$ref": "#/$defs/AnchorPoint" + } + ], + "description": "The anchor point for this metadata class." + }, + "json_schema": { + "description": "The JSON schema for this metadata class.", + "title": "Json Schema", + "type": "object" + } + }, + "required": [ + "name", + "anchor_point", + "json_schema" + ], + "title": "ArtifactResourceClass", + "type": "object" + } + }, + "additionalProperties": false, + "description": "Modifies the orginal Settings class provided by the user", + "properties": { "db_connection_str": { - "title": "Db Connection Str", "description": "MongoDB connection string. Might include credentials. For more information see: https://naiveskill.com/mongodb-connection-string/", - "example": "mongodb://localhost:27017", - "env_names": [ - "metldata_db_connection_str" + "examples": [ + "mongodb://localhost:27017" ], + "format": "password", + "title": "Db Connection Str", "type": "string", - "writeOnly": true, - "format": "password" + "writeOnly": true }, "db_name": { - "title": "Db Name", "description": "Name of the database located on the MongoDB server.", - "example": "my-database", - "env_names": [ - "metldata_db_name" + "examples": [ + "my-database" ], + "title": "Db Name", "type": "string" }, "service_name": { - "title": "Service Name", "default": "metldata", - "env_names": [ - "metldata_service_name" - ], + "title": "Service Name", "type": "string" }, "service_instance_id": { - "title": "Service Instance Id", "description": "A string that uniquely identifies this instance across all instances of this service. A globally unique Kafka client ID will be created by concatenating the service_name and the service_instance_id.", - "example": "germany-bw-instance-001", - "env_names": [ - "metldata_service_instance_id" + "examples": [ + "germany-bw-instance-001" ], + "title": "Service Instance Id", "type": "string" }, "kafka_servers": { - "title": "Kafka Servers", "description": "A list of connection strings to connect to Kafka bootstrap servers.", - "example": [ - "localhost:9092" - ], - "env_names": [ - "metldata_kafka_servers" + "examples": [ + [ + "localhost:9092" + ] ], - "type": "array", "items": { "type": "string" - } + }, + "title": "Kafka Servers", + "type": "array" + }, + "kafka_security_protocol": { + "default": "PLAINTEXT", + "description": "Protocol used to communicate with brokers. Valid values are: PLAINTEXT, SSL.", + "enum": [ + "PLAINTEXT", + "SSL" + ], + "title": "Kafka Security Protocol", + "type": "string" + }, + "kafka_ssl_cafile": { + "default": "", + "description": "Certificate Authority file path containing certificates used to sign broker certificates. If a CA not specified, the default system CA will be used if found by OpenSSL.", + "title": "Kafka Ssl Cafile", + "type": "string" + }, + "kafka_ssl_certfile": { + "default": "", + "description": "Optional filename of client certificate, as well as any CA certificates needed to establish the certificate's authenticity.", + "title": "Kafka Ssl Certfile", + "type": "string" + }, + "kafka_ssl_keyfile": { + "default": "", + "description": "Optional filename containing the client private key.", + "title": "Kafka Ssl Keyfile", + "type": "string" + }, + "kafka_ssl_password": { + "default": "", + "description": "Optional password to be used for the client private key.", + "title": "Kafka Ssl Password", + "type": "string" }, "primary_artifact_name": { - "title": "Primary Artifact Name", "description": "Name of the artifact from which the information for outgoing change events is derived.", - "example": "embedded_public", - "env_names": [ - "metldata_primary_artifact_name" + "examples": [ + "embedded_public" ], + "title": "Primary Artifact Name", "type": "string" }, "primary_dataset_name": { - "title": "Primary Dataset Name", "description": "Name of the resource class corresponding to the embedded_dataset slot.", - "example": "EmbeddedDataset", - "env_names": [ - "metldata_primary_dataset_name" + "examples": [ + "EmbeddedDataset" ], + "title": "Primary Dataset Name", "type": "string" }, "resource_change_event_topic": { - "title": "Resource Change Event Topic", "description": "Name of the topic used for events informing other services about resource changes, i.e. deletion or insertion.", - "example": "searchable_resources", - "env_names": [ - "metldata_resource_change_event_topic" + "examples": [ + "searchable_resources" ], + "title": "Resource Change Event Topic", "type": "string" }, "resource_deletion_event_type": { - "title": "Resource Deletion Event Type", "description": "Type used for events indicating the deletion of a previously existing resource.", - "example": "searchable_resource_deleted", - "env_names": [ - "metldata_resource_deletion_event_type" + "examples": [ + "searchable_resource_deleted" ], + "title": "Resource Deletion Event Type", "type": "string" }, "resource_upsertion_type": { - "title": "Resource Upsertion Type", "description": "Type used for events indicating the upsert of a resource.", - "example": "searchable_resource_upserted", - "env_names": [ - "metldata_resource_upsertion_type" + "examples": [ + "searchable_resource_upserted" ], + "title": "Resource Upsertion Type", "type": "string" }, "dataset_change_event_topic": { - "title": "Dataset Change Event Topic", "description": "Name of the topic announcing, among other things, the list of files included in a new dataset.", - "example": "metadata_datasets", - "env_names": [ - "metldata_dataset_change_event_topic" + "examples": [ + "metadata_datasets" ], + "title": "Dataset Change Event Topic", "type": "string" }, "dataset_deletion_type": { - "title": "Dataset Deletion Type", "description": "Type used for events announcing a new dataset overview.", - "example": "dataset_deleted", - "env_names": [ - "metldata_dataset_deletion_type" + "examples": [ + "dataset_deleted" ], + "title": "Dataset Deletion Type", "type": "string" }, "dataset_upsertion_type": { - "title": "Dataset Upsertion Type", "description": "Type used for events announcing a new dataset overview.", - "example": "dataset_created", - "env_names": [ - "metldata_dataset_upsertion_type" + "examples": [ + "dataset_created" ], + "title": "Dataset Upsertion Type", "type": "string" }, "host": { - "title": "Host", - "description": "IP of the host.", "default": "127.0.0.1", - "env_names": [ - "metldata_host" - ], + "description": "IP of the host.", + "title": "Host", "type": "string" }, "port": { - "title": "Port", - "description": "Port to expose the server on the specified host", "default": 8080, - "env_names": [ - "metldata_port" - ], + "description": "Port to expose the server on the specified host", + "title": "Port", "type": "integer" }, "log_level": { - "title": "Log Level", - "description": "Controls the verbosity of the log.", "default": "info", - "env_names": [ - "metldata_log_level" - ], + "description": "Controls the verbosity of the log.", "enum": [ "critical", "error", @@ -170,120 +269,138 @@ "debug", "trace" ], + "title": "Log Level", "type": "string" }, "auto_reload": { - "title": "Auto Reload", - "description": "A development feature. Set to `True` to automatically reload the server upon code changes", "default": false, - "env_names": [ - "metldata_auto_reload" - ], + "description": "A development feature. Set to `True` to automatically reload the server upon code changes", + "title": "Auto Reload", "type": "boolean" }, "workers": { - "title": "Workers", - "description": "Number of workers processes to run.", "default": 1, - "env_names": [ - "metldata_workers" - ], + "description": "Number of workers processes to run.", + "title": "Workers", "type": "integer" }, "api_root_path": { - "title": "Api Root Path", - "description": "Root path at which the API is reachable. This is relative to the specified host and port.", "default": "/", - "env_names": [ - "metldata_api_root_path" - ], + "description": "Root path at which the API is reachable. This is relative to the specified host and port.", + "title": "Api Root Path", "type": "string" }, "openapi_url": { - "title": "Openapi Url", - "description": "Path to get the openapi specification in JSON format. This is relative to the specified host and port.", "default": "/openapi.json", - "env_names": [ - "metldata_openapi_url" - ], + "description": "Path to get the openapi specification in JSON format. This is relative to the specified host and port.", + "title": "Openapi Url", "type": "string" }, "docs_url": { - "title": "Docs Url", - "description": "Path to host the swagger documentation. This is relative to the specified host and port.", "default": "/docs", - "env_names": [ - "metldata_docs_url" - ], + "description": "Path to host the swagger documentation. This is relative to the specified host and port.", + "title": "Docs Url", "type": "string" }, "cors_allowed_origins": { - "title": "Cors Allowed Origins", - "description": "A list of origins that should be permitted to make cross-origin requests. By default, cross-origin requests are not allowed. You can use ['*'] to allow any origin.", - "example": [ - "https://example.org", - "https://www.example.org" + "anyOf": [ + { + "items": { + "type": "string" + }, + "type": "array" + }, + { + "type": "null" + } ], - "env_names": [ - "metldata_cors_allowed_origins" + "default": null, + "description": "A list of origins that should be permitted to make cross-origin requests. By default, cross-origin requests are not allowed. You can use ['*'] to allow any origin.", + "examples": [ + [ + "https://example.org", + "https://www.example.org" + ] ], - "type": "array", - "items": { - "type": "string" - } + "title": "Cors Allowed Origins" }, "cors_allow_credentials": { - "title": "Cors Allow Credentials", - "description": "Indicate that cookies should be supported for cross-origin requests. Defaults to False. Also, cors_allowed_origins cannot be set to ['*'] for credentials to be allowed. The origins must be explicitly specified.", - "example": [ - "https://example.org", - "https://www.example.org" + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } ], - "env_names": [ - "metldata_cors_allow_credentials" + "default": null, + "description": "Indicate that cookies should be supported for cross-origin requests. Defaults to False. Also, cors_allowed_origins cannot be set to ['*'] for credentials to be allowed. The origins must be explicitly specified.", + "examples": [ + [ + "https://example.org", + "https://www.example.org" + ] ], - "type": "boolean" + "title": "Cors Allow Credentials" }, "cors_allowed_methods": { - "title": "Cors Allowed Methods", - "description": "A list of HTTP methods that should be allowed for cross-origin requests. Defaults to ['GET']. You can use ['*'] to allow all standard methods.", - "example": [ - "*" + "anyOf": [ + { + "items": { + "type": "string" + }, + "type": "array" + }, + { + "type": "null" + } ], - "env_names": [ - "metldata_cors_allowed_methods" + "default": null, + "description": "A list of HTTP methods that should be allowed for cross-origin requests. Defaults to ['GET']. You can use ['*'] to allow all standard methods.", + "examples": [ + [ + "*" + ] ], - "type": "array", - "items": { - "type": "string" - } + "title": "Cors Allowed Methods" }, "cors_allowed_headers": { - "title": "Cors Allowed Headers", + "anyOf": [ + { + "items": { + "type": "string" + }, + "type": "array" + }, + { + "type": "null" + } + ], + "default": null, "description": "A list of HTTP request headers that should be supported for cross-origin requests. Defaults to []. You can use ['*'] to allow all headers. The Accept, Accept-Language, Content-Language and Content-Type headers are always allowed for CORS requests.", - "example": [], - "env_names": [ - "metldata_cors_allowed_headers" + "examples": [ + [] ], - "type": "array", + "title": "Cors Allowed Headers" + }, + "artifact_infos": { + "description": "Information for artifacts to be queryable via the Artifacts REST API.", "items": { - "type": "string" - } + "$ref": "#/$defs/ArtifactInfo" + }, + "title": "Artifact Infos", + "type": "array" }, "loader_token_hashes": { - "title": "Loader Token Hashes", "description": "Hashes of tokens used to authenticate for loading artifact.", - "env_names": [ - "metldata_loader_token_hashes" - ], - "type": "array", "items": { "type": "string" - } + }, + "title": "Loader Token Hashes", + "type": "array" } }, "required": [ - "artifact_infos", "db_connection_str", "db_name", "service_instance_id", @@ -296,102 +413,9 @@ "dataset_change_event_topic", "dataset_deletion_type", "dataset_upsertion_type", + "artifact_infos", "loader_token_hashes" ], - "additionalProperties": false, - "definitions": { - "AnchorPoint": { - "title": "AnchorPoint", - "description": "A model for describing an anchor point for the specified target class.", - "type": "object", - "properties": { - "target_class": { - "title": "Target Class", - "description": "The name of the class to be targeted.", - "type": "string" - }, - "identifier_slot": { - "title": "Identifier Slot", - "description": "The name of the slot in the target class that is used as identifier.", - "type": "string" - }, - "root_slot": { - "title": "Root Slot", - "description": "The name of the slot in the root class used to link to the target class.", - "type": "string" - } - }, - "required": [ - "target_class", - "identifier_slot", - "root_slot" - ] - }, - "ArtifactResourceClass": { - "title": "ArtifactResourceClass", - "description": "Model to describe a resource class of an artifact.", - "type": "object", - "properties": { - "name": { - "title": "Name", - "description": "The name of the metadata class.", - "type": "string" - }, - "description": { - "title": "Description", - "description": "A description of the metadata class.", - "type": "string" - }, - "anchor_point": { - "title": "Anchor Point", - "description": "The anchor point for this metadata class.", - "allOf": [ - { - "$ref": "#/definitions/AnchorPoint" - } - ] - }, - "json_schema": { - "title": "Json Schema", - "description": "The JSON schema for this metadata class.", - "type": "object" - } - }, - "required": [ - "name", - "anchor_point", - "json_schema" - ] - }, - "ArtifactInfo": { - "title": "ArtifactInfo", - "description": "Model to describe general information on an artifact.\nPlease note, it does not contain actual artifact instances derived from specific\nmetadata.", - "type": "object", - "properties": { - "name": { - "title": "Name", - "description": "The name of the artifact.", - "type": "string" - }, - "description": { - "title": "Description", - "description": "A description of the artifact.", - "type": "string" - }, - "resource_classes": { - "title": "Resource Classes", - "description": "A dictionary of resource classes for this artifact. The keys are the names of the classes. The values are the corresponding class models.", - "type": "object", - "additionalProperties": { - "$ref": "#/definitions/ArtifactResourceClass" - } - } - }, - "required": [ - "name", - "description", - "resource_classes" - ] - } - } + "title": "ModSettings", + "type": "object" } \ No newline at end of file diff --git a/example_config.yaml b/example_config.yaml index 3bb158e5..2aa32e0d 100644 --- a/example_config.yaml +++ b/example_config.yaml @@ -204,8 +204,13 @@ db_connection_str: '**********' db_name: dev_db docs_url: /docs host: 127.0.0.1 +kafka_security_protocol: PLAINTEXT kafka_servers: - kafka:9092 +kafka_ssl_cafile: '' +kafka_ssl_certfile: '' +kafka_ssl_keyfile: '' +kafka_ssl_password: '' loader_token_hashes: - 09e5724dab34b50fe2db5ebae7ac5eac4ef2904d105f8f2b3d5a4cb2c7f43da4 log_level: trace @@ -216,6 +221,6 @@ primary_dataset_name: EmbeddedDataset resource_change_event_topic: searchable_resources resource_deletion_event_type: searchable_resource_deleted resource_upsertion_type: searchable_resource_upserted -service_instance_id: '1' +service_instance_id: '001' service_name: metldata workers: 1 diff --git a/scripts/update_readme.py b/scripts/update_readme.py index 765e4d46..244d0ba3 100755 --- a/scripts/update_readme.py +++ b/scripts/update_readme.py @@ -180,8 +180,8 @@ def get_package_details() -> PackageDetails: description = read_package_description() config_description = generate_config_docs() return PackageDetails( - **header.model_dump(), - **name.model_dump(), + **header.dict(), + **name.dict(), description=description, config_description=config_description, design_description=read_design_description(),