dilaya-secrets
Use when a Dilaya app's backend needs a third-party API key, entered by the user out of the chat.
Skill by hereya
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/hereya-dilaya-secrets
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: backend, security
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/dilaya-secrets
What's inside
- Skill name
dilaya-secrets- Description
- Use when a Dilaya app's backend needs a third-party API key, entered by the user out of the chat.
- License
- MIT
- Instructions
- 54 lines in SKILL.md · view on GitHub
Files (1)
- SKILL.md
SKILL.md (first lines)
Tool names below are the Dilaya connector's tools; your client may show them with a prefix (e.g. `mcp__dilaya__query`).
# Integration secrets
Store a **3rd-party API key** (an OpenAI key, a Stripe key, a webhook secret, …) that an app's **web-frontend handler reads at runtime** to call an external service — no agent in the loop. The key is entered by the USER in a browser form and stored in **SSM SecureString**; it is **never** pasted into chat and is **never** visible to you or any MCP tool.
> **Frontend feature.** Secrets are read by a deployed frontend handler (`secrets.get`), so they pair with the `frontend` topic. An agent-only app that never deploys a handler has nothing to read them.
## Flow
`get-secret-setup-url` → hand the user the URL → they open it and enter the key → in your handler `const key = await secrets.get("<name>")`. Inspect with `list-secrets`; remove with `delete-secret`.
## 1. Declare the secret + get the setup URL
```
get-secret-setup-url({ schema: "myapp", name: "OPENAI_KEY", description: "OpenAI API key for the summariser" })
# → { url: "https://<customDomain>/o/<orgId>/myapp/secrets/setup?token=…", name: "OPENAI_KEY", expiresIn: 900 }
```
- `name` is an identifier — letters, digits and `_`, starting with a letter or `_` (max 64). It is what the handler reads it back by, so pick a stable, code-friendly name (e.g. `OPENAI_KEY`, `STRIPE_SECRET`).
- **Give the user the `url`** and walk them through opening it — it's single-use and expires in 15 minutes. **Never ask the user to paste the key into the chat.** Re-run to rotate the value (mint a fresh link).
- `description` (optional) is shown on the form so the user knows exactly which key to paste.
## 2. The user enters the value
They open the link, type the key into a single password field, and submit. The value goes **browser → SSM SecureString** at `/dilaya/<orgId>/apps/<app>/secrets/<name>`; it never touches this conversation. The link is single-use (a re-submit is rejected). Once submitted, `list-secrets` shows the secret as `configured: true`.
## 3. Read it in the frontend handler
The runtime layer exposes `secrets.get(name)` — reads the decrypted value from SSM (the per-app Lambda's IAM role can read ONLY this app's own `/secrets/*`):
```js
const { secrets, parseRequest } = require("hereya");
exports.handler = async (event) => {
const req = parseRequest(event);
const key = await secrets.get("OPENAI_KEY"); // throws a clear error if unset
// → call OpenAI with `key`
return { statusCode: 200, headers: { "content-type": "text/html" }, body: "…" };
};
```
`secrets.get` **throws** if the secret was never set (`secret '<name>' is not set for this app. Ask the app's agent to run get-secret-setup-url first.`) — so declare + have the user fill it before the handler relies on it. There is no write path in the handler: values are set only through the browser form.
## Inspect + remove
```
list-secrets({ schema: "myapp" }) # name / description / configured / created_at — NO values
delete-secret({ schema: "myapp", name: "OPENAI_KEY", confirm: true }) # removes the SSM value + metadata (idempotent)
```
`list-secrets` returns metadata only — it can NEVER return a value. `delete-secret` requires `confirm: true`. Dropping the app removes its secret values too.From hereya/dilaya-plugin, MIT.
More from hereya/dilaya-plugin
- 0.570score
dilaya-frontend
hereya
Use when giving a Dilaya app a website: enable it, write and deploy its handler, sign-in, static pages, staging, named actions.
SkillAFreshness: AClaude Code +9 - 0.570score
dilaya-custom-domains
hereya
Use when putting a Dilaya app's website on its own address: a Dilaya host, the customer's domain, or a domain bought through Dilaya.
SkillAFreshness: AClaude Code +9 - 0.570score
dilaya-guide
hereya
Use for user-facing help about Dilaya: welcoming a new or unsure user, turning a need described in plain words into a plan, a tutorial on a task (build…
SkillAFreshness: AClaude Code +9 - 0.565score
dilaya-catalog-install
hereya
Use when installing an app from the Dilaya app catalog (the user names a catalog app, or pastes an « Installe l'app … du catalogue Dilaya » prompt).
SkillAFreshness: AClaude Code +9 - 0.565score
dilaya-agent-setup
hereya
Use when installing, moving or reinstalling an agent of a Dilaya app (after set-agent, or when the user asks how to set one up).
SkillAFreshness: AClaude Code +9 - 0.565score
dilaya-dashboard-install
hereya
Use when installing or reproducing a live dashboard of a Dilaya app (after save-cowork-dashboard or a setup-*-console call, or on another machine).
SkillAFreshness: AClaude Code +9 - 0.564score
dilaya-update-app
hereya
Use when changing an existing Dilaya app's structure: new tables or columns, migrations, skill updates.
SkillAFreshness: AClaude Code +9 - 0.564score
dilaya-vectors
hereya
Use when a Dilaya app needs semantic search: embeddings and vector indexes.
SkillAFreshness: AClaude Code +9 - 0.564score
dilaya-write-skill
hereya
Use when writing or updating the skill (stored instructions) of a Dilaya app.
SkillAFreshness: AClaude Code +9 - 0.564score
dilaya-mail
hereya
Use when a Dilaya app must send transactional email (receipts, notifications, confirmations).
SkillAFreshness: AClaude Code +9 - 0.564score
dilaya-management
hereya
Use when looking across all the apps of a Dilaya organization: status, archive, usage, the management console.
SkillAFreshness: AClaude Code +9 - 0.564score
dilaya-dashboards
hereya
Use when creating or reproducing a live dashboard of a Dilaya app.
SkillAFreshness: AClaude Code +9
Signals
- Stars
- 0
- Forks
- 0
- Open issues
- 0
- Last commit (this folder)
- Oct 5, 2026 (24 days ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- Repository
- github.com/hereya/dilaya-plugin
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from hereya
- 0.570score
dilaya-guide
hereya
Use for user-facing help about Dilaya: welcoming a new or unsure user, turning a need described in plain words into a plan, a tutorial on a task (build…
SkillAFreshness: AClaude Code +9 - 0.570score
dilaya-frontend
hereya
Use when giving a Dilaya app a website: enable it, write and deploy its handler, sign-in, static pages, staging, named actions.
SkillAFreshness: AClaude Code +9 - 0.570score
dilaya-custom-domains
hereya
Use when putting a Dilaya app's website on its own address: a Dilaya host, the customer's domain, or a domain bought through Dilaya.
SkillAFreshness: AClaude Code +9 - 0.565score
dilaya-agent-setup
hereya
Use when installing, moving or reinstalling an agent of a Dilaya app (after set-agent, or when the user asks how to set one up).
SkillAFreshness: AClaude Code +9 - 0.565score
dilaya-catalog-install
hereya
Use when installing an app from the Dilaya app catalog (the user names a catalog app, or pastes an « Installe l'app … du catalogue Dilaya » prompt).
SkillAFreshness: AClaude Code +9 - 0.565score
dilaya-dashboard-install
hereya
Use when installing or reproducing a live dashboard of a Dilaya app (after save-cowork-dashboard or a setup-*-console call, or on another machine).
SkillAFreshness: AClaude Code +9
Cite this page
dilaya-secrets skill. Agent Mart. https://agentmart.dev/skills/hereya-dilaya-secrets (last updated 2026-10-24)