Skip to content

Identity: return only metadata from credential requests - #360

Merged
raubrey-stripe merged 2 commits into
mainfrom
drapeau/identity-request-metadata
Sep 21, 2026
Merged

raubrey-stripe merged 2 commits into
mainfrom
drapeau/identity-request-metadata

Conversation

@drapeau-stripe

@drapeau-stripe drapeau-stripe commented Sep 21, 2026

Copy link
Copy Markdown
Contributor

Credential requests currently print the full credential and claim values in JSON and piped output, putting sensitive data into agent transcripts. Match attestation requests: save the full artifact and return only its path and metadata in every output mode, including --full-output. Scripts can read the credential and holder key from disk to sign presentations. No option to print credential contents is added.

The commands remain Unlisted, behind LINK_IDENTITY_COMMANDS, and excluded from MCP.

LINK_IDENTITY_COMMANDS=1 link-cli identity credentials request --format json

Example output:

{
  "issuer": "https://api.link.com",
  "expires_at": "2026-10-21T00:00:00Z",
  "holder": {
    "path": "/home/agent/.link/holder-key.jwk",
    "thumbprint": "..."
  },
  "claim_names": ["email", "name", "phone"],
  "output_file": "/home/agent/.link-cli/credentials/current.json"
}

Validation: SDK/CLI builds, CLI typecheck, lint, and 65 identity tests passed. Shared tests cover all five formats, the JSON alias, and full-output envelopes in both terminal modes; the regression tests also detected credential disclosure in the original handler. All 84 built-CLI checks passed across credential requests, pooled attestation requests, and exports using pipes and real pseudo-terminals: artifacts persisted with 0600 permissions and fixture secrets stayed out of stdout/stderr. The saved holder key successfully signed data that verified against the credential's holder public key. Issuer responses were mocked; no live issuance was tested.

r? @drapeau-stripe

-- Written by Codex

Match attestation requests so selecting JSON or piping output does not put credentials and claim values into agent transcripts. Keep the full artifact and holder key available on disk for scripts that sign presentations.

Committed-By-Agent: codex
Co-authored-by: codex <noreply@openai.com>
@drapeau-stripe
drapeau-stripe requested a review from a team as a code owner September 21, 2026 22:39
@drapeau-stripe drapeau-stripe self-assigned this Sep 21, 2026
Exercise JSONL and every full-output format alongside both terminal modes so credential and attestation requests keep the same metadata-only output contract.

Committed-By-Agent: codex
Co-authored-by: codex <noreply@openai.com>

@raubrey-stripe raubrey-stripe left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice

@raubrey-stripe
raubrey-stripe merged commit 0c1155b into main Sep 21, 2026
6 checks passed
@raubrey-stripe
raubrey-stripe deleted the drapeau/identity-request-metadata branch September 21, 2026 23:29
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants