2.8 KiB
2.8 KiB
ADDED Requirements
Requirement: PostgreSQL Candidate And Current-State Authority
Normal provider workers SHALL claim one fenced PostgreSQL candidate at a time and SHALL transactionally insert the result, update keycheck_current_state, complete that candidate, and create a projection job.
Scenario: Compatibility files lag or fail
- WHEN keycheck JSONL or status projection is delayed or quarantined
- THEN the committed PostgreSQL result and current state SHALL remain authoritative and unrelated candidates SHALL continue
Scenario: Explicit compatibility input
- WHEN an operator selects
--input-mode jsonl - THEN the bounded legacy JSONL reader MAY be used, but
--inputSHALL be rejected in normal PostgreSQL mode
Requirement: Provider Support Uses Detector And Keychecker Pair
New provider API key support SHALL include both detection and validation when a safe validation endpoint is available.
Scenario: Provider has safe validation endpoint
- WHEN support is added for a provider with a non-generating authentication or model-list endpoint
- THEN the change SHALL include a detector or detector routing rule and a keychecker for that provider
Scenario: Provider has no safe validation endpoint
- WHEN a provider does not have a safe validation endpoint
- THEN the detector MAY be added only with explicit documentation that validation is unavailable
Requirement: Ambiguous Key Formats Use Context Routing
The scanner SHALL use nearby provider-specific context to route ambiguous key formats to the correct keychecker when possible.
Scenario: Qwen context around generic key
- WHEN an
sk-...key is found near Qwen or DashScope context - THEN the key SHALL be routed away from unrelated generic
sk-...checkers such as DeepSeek when the context does not also identify that provider
Scenario: Weak context around generic key
- WHEN an ambiguous key has no strong provider-specific context
- THEN the scanner SHALL avoid speculative rerouting that would suppress the existing detector result
Requirement: Keycheckers Avoid Token-Generating Probes By Default
Provider keycheckers SHALL prefer safe non-generating validation endpoints where available.
Scenario: Provider exposes model-list endpoint
- WHEN a provider exposes an authenticated model-list or account-status endpoint
- THEN the keychecker SHALL use that endpoint before considering any generation-style probe
Requirement: Keycheck Results Remain Linkable To Findings
Provider keycheckers SHALL emit detector names and result metadata that can be linked back to scanner findings.
Scenario: Custom detector result is validated
- WHEN a keychecker validates a key from a custom detector finding
- THEN the result SHALL include a stable detector name and source metadata sufficient for DB link repair