Skip to content

feat(config): provider connection blocks in the model registry - #121

Merged
chubirka merged 1 commit into
developmentfrom
feat/registry-connections
Nov 6, 2026
Merged

chubirka merged 1 commit into
developmentfrom
feat/registry-connections

Conversation

@gurnben

@gurnben gurnben commented Nov 6, 2026 •

Copy link
Copy Markdown
Member

What

A provider section in model-registry.yaml may now carry a connection block — the wire it speaks (type), its endpoint (base_url), the harness fronting it (harness) and where its credential lives (credential: source, and for a secret its name and key):

providers:
  rits:
    data_handling: approved
    connection:
      type: openai-compatible
      base_url: https://gateway.example.invalid/v1
      harness: omp
      credential: {source: secret, name: sci-enmaas-model, key: GATEWAY_API_KEY}
    models: {...}

The block is optional — absent keeps the default routing (the Anthropic wire, the environment's credential) — so existing registries load unchanged.

Why

The provider routing and credential configuration for model execution belongs in core's configuration, not in SCI's executor (the SCI-side implementation was closed in SCI #285/#287). The executor should receive the resolved routing from core, the same pattern as {repo_url}. This schema change is the contracts half; traust-core's feat/registry-connections branch consumes it (it pins this branch's head until this merges — retarget its pin to the merge commit afterwards).

Stack

Based on feat/remediation-scheduling-tables (#117, the SHA traust-core currently pins) so the diff shows only this change; retarget to development when #117 merges.

Shape of the change

  • The schema checks the block's shape only: type and credential (with credential.source) required, unknown keys rejected, no empty strings.
  • Which types, harnesses and credential sources exist, and the cross-field rules (a compatible type requires a base_url, a proprietary one forbids it; a secret credential requires its name and key), stay the consumer's closed set, like tier names: traust-core owns them, rejects an unroutable connection at config load, and serves the resolved routing over GET /v1/registry/resolve.

Testing

  • tests/test_model_registry_connections.py: a provider without a block still loads; a full block loads and rides the typed section; malformed blocks (missing type/credential/source, unknown keys, empty strings) are rejected.
  • Full suite: 1380 passed, 48 skipped; make lint green.

💘 Generated with Crush

@gurnben
gurnben requested a review from a team as a code owner November 6, 2026 18:36
@openshift-ci openshift-ci Bot added the approved Indicates a PR has been approved by an approver from all required OWNERS files. label Nov 6, 2026
@qodo-code-review

qodo-code-review Bot commented Nov 6, 2026 •

Copy link
Copy Markdown

Code Review by Qodo

🐞 Bugs (0) 📘 Rule violations (0) 📎 Requirement gaps (0)

Grey Divider

Great, no issues found!

Qodo reviewed your code and found no material issues that require review

Grey Divider

Tip of the day
💡 Did you know, you can switch off images and animations for a plain-text comment

More tips ↗ | Customize Qodo ↗ | Qodo docs ↗

Grey Divider

Previous reviews

Review updated until commit 6178d03 ⚖️ Balanced

Results up to commit 6f898ff ⚖️ Balanced


No changes from previous review

Results up to commit f4f783b ⚖️ Balanced


No changes from previous review

Results up to commit a74bdc1 ⚖️ Balanced


No changes from previous review

Grey Divider

Qodo Logo

@gurnben
gurnben force-pushed the feat/registry-connections branch from 6f898ff to f4f783b Compare November 6, 2026 18:48
@gurnben
gurnben changed the base branch from development to feat/remediation-scheduling-tables November 6, 2026 18:48
@qodo-code-review

Copy link
Copy Markdown

Code review by qodo was updated up to the latest commit f4f783b

@gurnben
gurnben force-pushed the feat/registry-connections branch from f4f783b to a74bdc1 Compare November 6, 2026 18:54
@gurnben

gurnben commented Nov 6, 2026

Copy link
Copy Markdown
Member Author

/agentic_review

@qodo-code-review

Copy link
Copy Markdown

Code review by qodo was updated up to the latest commit a74bdc1

@smith-xyz
smith-xyz force-pushed the feat/remediation-scheduling-tables branch from 620b838 to b176d64 Compare November 6, 2026 19:55
@smith-xyz
smith-xyz force-pushed the feat/remediation-scheduling-tables branch from 7c4c57c to 7c9554c Compare November 6, 2026 20:27
A provider section may now carry a connection block: the wire it speaks
(type), its endpoint (base_url), the harness fronting it (harness) and
where its credential lives (credential: source, and for a secret its
name and key). The block is optional — absent keeps the default routing
(the Anthropic wire, the environment's credential) — so existing
registries load unchanged.

The schema checks the shape only. Which types, harnesses and credential
sources exist, and the cross-field rules (a compatible type requires a
base_url, a proprietary one forbids it; a secret credential requires its
name and key), are the consumer's closed set, like tier names: traust-
core owns them and rejects an unroutable connection at config load, and
serves the resolved routing over its REST API (GET /v1/registry/resolve).

💘 Generated with Crush

Assisted-by: Crush:rits/zai-org/glm-5-3
@gurnben
gurnben force-pushed the feat/registry-connections branch from a74bdc1 to 6178d03 Compare November 6, 2026 20:52
@gurnben
gurnben changed the base branch from feat/remediation-scheduling-tables to development November 6, 2026 20:52
@qodo-code-review

Copy link
Copy Markdown

Code review by qodo was updated up to the latest commit 6178d03

@openshift-ci openshift-ci Bot added the lgtm Indicates that a PR is ready to be merged. label Nov 6, 2026
@openshift-ci

openshift-ci Bot commented Nov 6, 2026

Copy link
Copy Markdown

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: chubirka, gurnben

The full list of commands accepted by this bot can be found here.

The pull request process is described here

Details Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@chubirka
chubirka merged commit 6f9f217 into development Nov 6, 2026
3 of 4 checks passed
chubirka added a commit that referenced this pull request Nov 6, 2026
Development landed the reworked remediation-scheduling slice (#117, #121, #123):
run_order gains work_item_id plus fork_url/fork_branch, the remediation /
remediation_finding tables are retired (remediation.schema.json is the system
of record), and the upgrades/ channel is dropped (7c9554c). This merge takes
development's decisions wholesale for the DB surface and keeps this branch's
sole addition: the benchmark-scorecards view contract, its tests and README
section, layered after the compliance-precision section.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

approved Indicates a PR has been approved by an approver from all required OWNERS files. lgtm Indicates that a PR is ready to be merged.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants