Files
zooqueenandHanzo Dev f717dd89ad keys: the key a user pastes is sk-, not the retired hk-
28 apps told the user to paste an `hk-` key — input placeholders, settings
help text, READMEs, the error thrown when the field is empty — and five of
them validated that paste against /^hk-/ before sending it as a bearer.
Nothing mints that prefix any more: cloud accepts pk- and sk-, IAM mints
sk-. So the guard admitted a credential that authenticates nothing, and the
panel failed later at the gateway with nothing on screen to explain it.

The three leak detectors keep hk- and gain sk-. Salesforce's source scan
and the two Zendesk tests exist to catch a key committed to source or
echoed back through a request; retired keys are still in circulation and
leak exactly as badly, while a detector that only knew hk- would have gone
blind to every key minted from here on.

`sk-` used to be the example of the foreign key the guard screened out — an
OpenAI key. It cannot mean that now, and shape alone cannot tell one
vendor's sk- from another's, so those comments say what the check really
proves and point at the /v1/models call that proves the rest. The three
tests that pinned "sk- is rejected" now pin "hk- is rejected", which is the
invariant that survived.

Verified: 2029 tests pass across the 28 packages; typecheck clean on 25 of
them (hubspot, jupyter and teams fail identically at HEAD on JSX and ESM
type conflicts in files this does not touch); salesforce validate-source
green.

Co-authored-by: Hanzo Dev <[email protected]>
2026-08-13 18:07:16 -07:00

19 lines
1.2 KiB
JSON

{
"app": {
"name": "Hanzo AI",
"short_description": "AI in the ticket sidebar: summarize, draft replies, and suggest next steps.",
"long_description": "Hanzo AI reads the current ticket and its conversation and helps your agents resolve it faster. Summarize a long thread, draft the next reply in the agent's voice, suggest next steps or a macro, or ask anything about the ticket — then insert the result into the reply editor or add it as an internal note with one click. Powered by the Hanzo AI gateway (api.hanzo.ai). Your Hanzo API key is stored as a secure app setting and is never exposed to the browser.",
"installation_instructions": "Enter your Hanzo API key (starts with sk-) as the secure API key setting, optionally set a default model, then save. Generate a key at https://hanzo.ai. The app appears in the ticket sidebar.",
"parameters": {
"hanzo_api_key": {
"label": "Hanzo API key",
"helpText": "Your Hanzo API key (sk-…). Stored securely and used server-side; it is never sent to the browser. Generate one at https://hanzo.ai."
},
"default_model": {
"label": "Default model",
"helpText": "Optional. The model to route requests to (e.g. zen5). Defaults to zen5."
}
}
}
}