wso2 / wso2/api-platform

Improve config.toml structure for shared policy configurations (embedding, vector DB)

Open
#1,243 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Type/Improvement
Dominant language
Go
Stars
71
Forks
111
Avg merge
1d 14h
Merged PRs (30d)
110

Description

Current Limitation

Shared policy configurations for embedding providers, vector databases, and AI safety services are configured as flat, prefix-namespaced root-level keys in config.toml. This is
visually noisy, doesn't group related settings logically, and is inconsistent with how other policy configs (e.g., [policy_configurations.ratelimit_v010]) are structured.

Example of the current state:

azurecontentsafety_endpoint = "https://..."
azurecontentsafety_key = "..."

embedding_provider = "MISTRAL"
embedding_provider_api_key = "..."
embedding_provider_endpoint = "https://api.mistral.ai/v1/embeddings"
embedding_provider_model = "mistral-embed"
embedding_provider_dimension = 1024

vector_db_provider = "REDIS"
vector_db_provider_host = "redis-db"
vector_db_provider_port = 6379
vector_db_provider_ttl = 3600
vector_db_provider_password = "password"
vector_db_provider_username = "default"
vector_db_provider_database = "cache"

awsbedrock_guardrail_region = "us-east-1"
awsbedrock_guardrail_id = "..."
awsbedrock_secret_access_key = "..."

### Suggested Improvement

Nest these under proper TOML table sections inside [policy_configurations], consistent with the existing ratelimit and JWT auth config structure.

Proposed format:

[policy_configurations.azure_content_safety]
endpoint = "https://..."
key = "..."

[policy_configurations.embedding]
provider = "MISTRAL"
api_key = "..."
endpoint = "https://api.mistral.ai/v1/embeddings"
model = "mistral-embed"
dimension = 1024

[policy_configurations.vector_db]
provider = "REDIS"
host = "redis-db"
port = 6379
ttl = 3600
password = "password"
username = "default"
database = "cache"

[policy_configurations.aws_bedrock]
region = "us-east-1"
guardrail_id = "..."
guardrail_version = "DRAFT"
access_key_id = "..."
secret_access_key = "..."
session_token = ""
role_arn = ""
role_region = ""
role_external_id = ""


### Version

_No response_

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with config.toml and compare the proposed policy_configurations.azure_content_safety, embedding, vector_db, and aws_bedrock tables with the existing ratelimit_v010 and JWT auth structure. Done means the shared policy settings are grouped under the proposed sections with the listed field names and no longer use the flat root-level keys.

Written by the indexing model from the issue text.

Assessment

Tech stack
go
Domain
backend
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.