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(),