EngineConfiguration Services Reference
This page documents service and deploy configuration models defined in:
naas_abi_core/engine/engine_configuration/EngineConfiguration_BusService.pynaas_abi_core/engine/engine_configuration/EngineConfiguration_KeyValueService.pynaas_abi_core/engine/engine_configuration/EngineConfiguration_ObjectStorageService.pynaas_abi_core/engine/engine_configuration/EngineConfiguration_SecretService.pynaas_abi_core/engine/engine_configuration/EngineConfiguration_TripleStoreService.pynaas_abi_core/engine/engine_configuration/EngineConfiguration_VectorStoreService.pynaas_abi_core/engine/engine_configuration/EngineConfiguration_Deploy.pynaas_abi_core/engine/engine_configuration/EngineConfiguration_GenericLoader.py
Related pages: Configuration, EngineConfiguration-Reference, Overview, Troubleshooting.
Adapter model pattern
Most services follow the same shape:
services:
<service_name>:
<adapter_field>:
adapter: "<adapter_name>"
config:
# adapter-specific keysFor any adapter value custom, config is loaded through GenericLoader and requires top-level keys on the adapter block:
python_modulemodule_callablecustom_config
Example:
services:
vector_store:
vector_store_adapter:
adapter: "custom"
python_module: "my_project.adapters"
module_callable: "MyVectorAdapter"
custom_config:
endpoint: "http://localhost:9999"Deploy configuration
deploy is optional in EngineConfiguration, but when present it uses:
workspace_id: strspace_name: strnaas_api_key: strenv: dict[str, str](default{})
deploy:
workspace_id: "workspace_123"
space_name: "prod"
naas_api_key: "{{ secret.NAAS_API_KEY }}"
env:
ENV: "prod"services.bus
Path: services.bus.bus_adapter
Supported adapters:
rabbitmqrabbitmq_url: str(defaultamqp://abi:abi@127.0.0.1:5672)
python_queue- no fields (use
config: {})
- no fields (use
custom- uses GenericLoader fields
services:
bus:
bus_adapter:
adapter: "rabbitmq"
config:
rabbitmq_url: "{{ secret.RABBITMQ_URL }}"services.kv
Path: services.kv.kv_adapter
Supported adapters:
redisredis_url: str(defaultredis://localhost:6379)
python- no fields (use
config: {})
- no fields (use
custom- uses GenericLoader fields
services:
kv:
kv_adapter:
adapter: "redis"
config:
redis_url: "{{ secret.REDIS_URL }}"services.object_storage
Path: services.object_storage.object_storage_adapter
Supported adapters:
fsbase_path: str(required)
s3bucket_name: str(required)base_prefix: str(required)access_key_id: str(required)secret_access_key: str(required)session_token: str | None(optional)endpoint_url: str | None(optional)
naasnaas_api_key: str(required)workspace_id: str(required)storage_name: str(required)base_prefix: str(default"")
custom- uses GenericLoader fields
services:
object_storage:
object_storage_adapter:
adapter: "fs"
config:
base_path: "storage/datastore"services.secret
Path: services.secret.secret_adapters (list)
Supported adapters:
dotenvpath: str(default.env)
naasnaas_api_key: str(required)naas_api_url: str(required)
base64secret_adapter: SecretAdapterConfiguration(nested adapter)base64_secret_key: str(required)
custom- uses GenericLoader fields
services:
secret:
secret_adapters:
- adapter: "dotenv"
config:
path: ".env"services.triple_store
Path: services.triple_store.triple_store_adapter
Supported adapters:
oxigraphoxigraph_url: str(defaulthttp://localhost:7878)timeout: int(default60)
apache_jena_tdb2jena_tdb2_url: str(defaulthttp://localhost:3030/ds)timeout: int(default60)
aws_neptuneaws_region_name: str(required)aws_access_key_id: str(required)aws_secret_access_key: str(required)db_instance_identifier: str(required)
aws_neptune_sshtunnel- all
aws_neptunefields, plus: bastion_host: str(required)bastion_port: int(required)bastion_user: str(required)bastion_private_key: str(required)
- all
fsstore_path: str(required)triples_path: str(defaulttriples)
object_storageobject_storage_service: ObjectStorageServiceConfiguration(required)triples_prefix: str(defaulttriples)
custom- uses GenericLoader fields
services:
triple_store:
triple_store_adapter:
adapter: "fs"
config:
store_path: "storage/triplestore"
triples_path: "triples"services.vector_store
Path: services.vector_store.vector_store_adapter
Supported adapters:
qdranthost: str(defaultlocalhost)port: int(default6333)api_key: str | None(optional)https: bool(defaultfalse)timeout: int(default30)
qdrant_in_memory- no fields (use
config: {})
- no fields (use
custom- uses GenericLoader fields
services:
vector_store:
vector_store_adapter:
adapter: "qdrant"
config:
host: "{{ secret.QDRANT_HOST }}"
port: {{ secret.QDRANT_PORT }}
api_key: "{{ secret.QDRANT_API_KEY }}"
https: false
timeout: 30Validation and strictness notes
- Adapter config models use
extra="forbid", so unknown keys fail validation. - For non-
customadapters,configis required by model validators. python_queue,python, andqdrant_in_memorystill require an empty object (config: {}) to satisfy validation.