Multi-credential connectors (multi auth style) + Datadog#32
Merged
Conversation
Some services need more than one credential; the vault holds one per
(subject, service). The multi auth style stores a JSON bundle in the single
slot and places each field in its own header/query.
- ('multi', ((placement, name, field), ...)): parses the JSON credential and
maps each field to a header or query parameter. A malformed bundle is a
clean ConnectorError and the bundle is never echoed in an error.
- Datadog ships on it (DD-API-KEY + DD-APPLICATION-KEY). Catalog now 47
services / 115 tools.
254 tests (+6), mypy --strict, ruff (whole repo), catalog freshness all green.
v0.24.0.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Some services need more than one credential (Datadog's API key + app key), but the vault holds one credential per (subject, service). The
multiauth style closes that gap.("multi", ((placement, name, field), ...))— the user stores a JSON bundle in the single slot, and each field is placed in its own header or query parameter. A malformed bundle is a cleanConnectorError, and the bundle is never echoed in an error.DD-API-KEY+DD-APPLICATION-KEY):datadog_list_monitors,datadog_get_monitor,datadog_list_dashboards,datadog_list_events. Catalog now 47 services / 115 tools.6 new tests: field placement (header + query), non-JSON rejected, missing-field rejected without echoing the present credential, and end-to-end (both keys reach the request; bad bundle is a clean error). 254 tests, mypy --strict, ruff (whole repo), catalog-freshness green. Backward compatible; v0.24.0.