Store a secret for an app
dropyour_secret_setStore a SECRET for a graduated app (tier 4), bound to a host pattern. The value is encrypted at rest and NEVER readable back — by anyone, ever. The platform's egress membrane attaches it on outbound requests to the declared host, so your server code calls the API WITH NO KEY and never sees it. The membrane sits ABOVE the socket: it does not terminate your TLS and injects no certificate authority into your sandbox — we attach a header, we never open your connection. form says HOW it is attached: bearer (default, Authorization: Bearer), header (X-Api-Key and friends), basic (key as username), or query (?api_key=). The form belongs to the secret, not to your code — changing how an API authenticates never means editing your app. Writing an existing name rotates it: omit form and the secret KEEPS the form it already has (give form only to change it; a new name defaults to bearer). dropyour_secrets_list shows each secret's form (type and field name, never the value). The value cannot contain control characters (line break, tab, NUL). Name: UPPERCASE_WITH_DIGITS (≤32). Host: lowercase domain, leading *. wildcard allowed. Value ≤ 4096 bytes, 16 secrets per app. Requires ownership (account token or managementToken). THIS TOOL TAKES THE VALUE AS A PARAMETER, SO IT PASSES THROUGH THIS CONVERSATION. When the value must not be seen here, do NOT ask the user to paste it: point them to a way that keeps it out. Either the app's page on dropyour.io (Settings, Secrets: a masked field), or one command they run themselves, the value read from their keychain or a file and sent as the request BODY: curl -sS -X PUT --data-binary @- --config <account token header, read from the keychain> "https://dropyour.io/api/drops/<dropId>/secrets/<NAME>?host=<host>" (optional &form=basic, &form=header:X-Api-Key, &form=query:api_key; without form, a replaced secret keeps its form). The exact command is at https://dropyour.io/en/docs/operate#secrets. Same vault, same rules; the response returns the name, host, date and form only. The account token is a secret too: it is read from the keychain in that same command, never pasted here, and passed through --config, never as a command-line argument.
Tool call template
Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {
"dropId": "<dropId>",
"name": "<name>",
"host": "<host>",
"value": "<value>"
},
"name": "dropyour_secret_set"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| form | No | How the key is attached at the network boundary. Omitted: a new secret gets bearer (Authorization: Bearer), a rotated one keeps its current form. Use header for X-Api-Key style APIs, basic for key-as-username, query for ?api_key=. Your code never sends the key in ANY of these forms. | |
| host | Yes | Host pattern the secret is bound to, e.g. api.stripe.com or *.example.com | |
| name | Yes | ||
| value | Yes | ||
| dropId | Yes | ||
| managementToken | No |