Skip to content

Credentials

credentials

Value-free credential provenance collected from axm-vault.

CredentialProvenance

Bases: BaseModel

The serving layer and presence of one credential coordinate.

Source code in packages/axm-doctor/src/axm_doctor/credentials.py
Python
class CredentialProvenance(BaseModel, frozen=True):  # type: ignore[explicit-any]
    """The serving layer and presence of one credential coordinate."""

    coordinate: str
    kind: str = "credential"
    layer: str
    present: bool

ProvenanceEntry

Bases: Protocol

Structural shape accepted from an injected provenance probe.

Source code in packages/axm-doctor/src/axm_doctor/credentials.py
Python
class ProvenanceEntry(Protocol):
    """Structural shape accepted from an injected provenance probe."""

    kind: str
    layer: str
    present: bool

collect_credential_provenance(*, probe=None)

Translate vault provenance into typed rows without carrying values.

Source code in packages/axm-doctor/src/axm_doctor/credentials.py
Python
def collect_credential_provenance(
    *, probe: ProvenanceProbe | None = None
) -> list[CredentialProvenance]:
    """Translate vault provenance into typed rows without carrying values."""
    catalog: Catalog | None = None
    provenance: Mapping[str, ProvenanceValue]
    declared_kinds: dict[str, str] = {}
    if probe is None:
        catalog = load_catalog()
        provenance = doctor_data(catalog=catalog)
        declared_kinds = _catalog_kinds(catalog)
    else:
        provenance = probe()
    rows: list[CredentialProvenance] = []
    for coordinate, entry in provenance.items():
        kind = declared_kinds.get(coordinate, "unknown")
        try:
            if kind == "unknown":
                kind = _entry_kind(entry)
            layer, present = _entry_fields(entry)
        except Exception:  # noqa: BLE001 # isolate one malformed declaration
            layer = "unknown"
            present = False
        rows.append(
            CredentialProvenance(
                coordinate=coordinate,
                kind=kind,
                layer=layer,
                present=False if layer == "missing" else present,
            )
        )
    if catalog is not None:
        rows.extend(_auth_dependency_rows(catalog))
    return rows