Skills DirectorySkills Directory
SkillsLearnSecurityCategoriesDocsBlogPro
Sign InSubmit Skill
Skills Directory

Security-tested agent skills for Claude, coding agents, and AI workflows.

Directory

  • Browse Skills
  • All Skills A–Z
  • Claude Skills
  • Claude Code Skills
  • Agent Skills
  • Categories
  • Authors
  • Submit a Skill

Learn

  • Learn Hub
  • Install Claude Skills
  • Write SKILL.md
  • Skills vs MCP
  • Directories Compared

Security

  • Security
  • Methodology
  • Secure Claude Skills
  • Security Badges
  • Chrome Extension
  • Skill Manager

Company

  • About
  • Community
  • Blog
  • API Docs
  • Advertise

2026 Skills Directory. All rights reserved.

ProTermsPrivacyRefunds
Back to skills

Application Setup

ASecurity

Building the Keeper Secrets Manager application that a Conduit connection authenticates as: what an application, a share and a client device are, how folder and record grants bound everything the connection can ever see, read-only vs editable shares, generating the base64 device configuration in the Vault UI or Keeper Commander, verifying the realised scope from the client side, and rotating or revoking a device.

48 stars
0 votes
0 copies
0 views
Added 10/2/2026
ai-agentsgoapisecuritydocumentation

Works with

cliapi

Security Analysis

A100/100

Scanned 10/2/2026

$npx -y skills add wyre-technology/msp-claude-plugins --skill application-setup --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Application Setup?

Add the live security badge to your README — it updates automatically with every re-scan.

Security grade badge for Application Setup
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/wyre-technology-application-setup/badge)](https://www.skillsdirectory.com/skills/wyre-technology-application-setup)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
Files
SKILL.md
---
name: "Keeper KSM Application Scoping"
description: >
  Building the Keeper Secrets Manager application that a Conduit
  connection authenticates as: what an application, a share and a client
  device are, how folder and record grants bound everything the
  connection can ever see, read-only vs editable shares, generating the
  base64 device configuration in the Vault UI or Keeper Commander,
  verifying the realised scope from the client side, and rotating or
  revoking a device.
when_to_use: >-
  When creating, scoping, auditing, rotating or revoking the Keeper
  credential behind a Conduit connection. Use when: keeper secrets manager
  application, ksm app, one-time access token, base64 configuration, add
  device, keeper least privilege, keeper client add, rotate keeper
  credential, or revoke keeper access.
---

# Scoping the KSM Application

## Overview

Everything the Keeper connection can ever reach is decided in Keeper,
before the connection exists. The bridge's read-only allowlist stops
writes; it does nothing about *breadth*. A KSM application granted the
company's entire "IT Passwords" shared folder gives a read-only
connection read access to every credential in it. Scope is the control
that matters, and it is set here.

## The model

| Object | What it is |
|--------|-----------|
| **Application** | A machine identity in a Keeper vault. Lives under the **Secrets Manager** tab, not in the folder tree |
| **Share** | A grant of a shared folder (or a record) to an application, marked read-only or editable |
| **Client device** | A credential issued *for* an application. An application can hold several; each is revocable on its own |
| **One-time access token** | The single-use string that a device redeems once to materialise its configuration |
| **Base64 configuration** | The redeemed device credential — a base64 JSON blob starting `ewog…` holding `clientId`, `privateKey`, `appKey` and `hostname`. This is what Conduit stores |

The application is the security boundary. The device is the rotation
unit.

## Setup, least privilege first

**1. Create the shared folder the automation will use — do not reuse an
existing one.** The grant is folder-shaped, so the folder is the smallest
unit you can hand over in the Vault UI. Populate it with only the records
Claude should reach. Sharing "IT Passwords" because the one needed record
lives there is the single most common scoping mistake.

**2. Create the application.** Vault → **Secrets Manager** tab →
**Create Application** → name it after the connection, not the vendor
(`conduit-keeper-prod`, not `keeper`) → choose the shared folder(s). The
documentation is explicit: *"The Application will only have access to the
records in the selected folder(s)."*

**3. Grant read-only.** The wizard offers **Read Only** or **Write**.
Choose Read Only. The bridge already refuses writes, so this looks
redundant — it is not. The grant lives in Keeper and is exercised by
*anything* holding that device configuration, including a copy of it
pasted into some other tool. Defence in depth means the credential
itself cannot write.

**4. Generate the device.** Still in the wizard, **Generate Access
Token**, or later via the application's **Devices** tab → **Add Device**.
Take the **base64 configuration** output — that is what Conduit's
`KSM Base64 Configuration` field wants. Name the device for the
connection it will serve.

**5. Decide the IP lock.** By default the first IP that redeems the token
is pinned. The redeeming client is the gateway container, not the
technician's workstation, and a hosted gateway's egress address is not
guaranteed stable. Pin only if you know that address and will maintain
it; otherwise create the device unlocked and rely on the scope and
rotation discipline instead.

**6. Paste into Conduit once, then discard your copy.** The base64 blob
*is* the credential. Do not store it in a ticket, a runbook, a password
note, or a repo.

### Commander equivalents

For MSPs scripting tenant onboarding, Keeper Commander does the same
thing without the UI:

```
secrets-manager app create conduit-keeper-prod
secrets-manager share add --app conduit-keeper-prod --secret <FOLDER_OR_RECORD_UID>
secrets-manager client add --app conduit-keeper-prod --name conduit-gateway --config-init b64
```

`share add` takes `--editable` to grant writes; omitting it is the
read-only default, and `share update --readonly` demotes an existing
grant. `--config-init b64` emits the base64 configuration directly, which
is the format Conduit needs. `client add --unlock-ip` creates the device
without the IP pin.

Commander's `share add --secret` accepts a record UID as well as a
folder, which is the tightest grant available — one record, one
connection. The Vault wizard has no equivalent.

## Verify the realised scope from the client side

Do not assume the grant matches the intent. Immediately after connecting,
ask the connection what it can actually see:

1. `list_folders` — every folder reachable. Anything unexpected here is a
   share you did not mean to make.
2. `list_secrets` — every record, metadata only. Compare the count
   against what you put in the folder.

Records added to a granted folder later are reachable without anyone
re-running a wizard, so re-run this check whenever the folder's contents
change and treat it as part of a quarterly access review rather than a
one-time task.

## Rotation and revocation

Rotate by **adding, swapping, then revoking** — never by deleting first:

1. `Add Device` on the application, take the new base64 configuration.
2. Re-submit the Conduit connection with the new value.
3. Confirm with `health_check`, then remove the old device
   (`secrets-manager client remove --app <app> --client <id>`).

To cut access entirely, revoke the device — or delete the application,
which revokes every device it issued at once. Un-sharing the folder
leaves the application and its devices alive but empty; that is the right
move when the credential is fine and only the data boundary changed.

Keeper does not track credential age for you. Nothing expires a redeemed
device configuration on its own.

## Gotchas

**The one-time token is single-use and shown once.** *"Once the token is
used on a target device, it cannot be used again"*, and the dialog does
not re-display it. Lose it before redeeming and you issue a new device;
there is no recovery step.

**Never grant the application the folder holding its own configuration.**
A connection able to read the credential that created it can be escalated
by anything that can read one record.

**A "read-only" Conduit connection is not a read-only Keeper grant.**
Those are two different controls in two different systems. If the share
was created editable, the credential can still write — just not through
this tool surface.

**Secrets Manager must be enabled on the Keeper plan and the role.** An
account without it has no Secrets Manager tab, and there is no workaround
from the client side.

**One application per connection, not one per MSP.** Shared applications
make revocation an all-or-nothing event and destroy the audit trail of
which integration read what.

## Related Skills

- [api-patterns](../api-patterns/SKILL.md) — what the connection can do once the scope is set
- [finding-secrets](../finding-secrets/SKILL.md) — reading the realised scope with `list_folders` and `list_secrets`

Attribution

WYRE-AIWYRE-AI
View sourceSee grades on GitHubMore from wyre-technology →
SSkills DirectorySkills Directory

Ship a skill? Prove it's safe.

Free 120-pattern security scan, letter grade, and an embeddable README badge.

Submit a skill

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments (0)

No comments yet. Be the first to comment!

SSkills DirectorySkills Directory

Ship a skill? Prove it's safe.

Free 120-pattern security scan, letter grade, and an embeddable README badge.

Submit a skill

Related Skills

Caveman

Terse caveman voice: answer first, fluff gone, every technical fact kept. Use for /caveman, "caveman mode", "talk like caveman", "be brief", "less tokens". Stays on until "stop caveman" or "normal mode".

1100021 votes

Hyperplan

Adversarial multi-agent planning skill. Self-orchestrates 5 hostile category members (unspecified-low, unspecified-high, deep, ultrabrain, artistry) via team-mode for ruthless cross-critique debate, distills only the defensible insights, then MANDATORILY hands the distilled insight bundle to the `plan` agent for executable plan formalization. Use when planning needs maximum rigor and surfacing of weak assumptions, blind spots, and over-engineering. Triggers: 'hyperplan', 'hpp', '/hyperplan', ...

698621 votes

Writing Skills

Create and manage Claude Code skills in HASH repository following Anthropic best practices. Use when creating new skills, modifying skill-rules.json, understanding trigger patterns, working with hooks, debugging skill activation, or implementing progressive disclosure. Covers skill structure, YAML frontmatter, trigger types (keywords, intent patterns), UserPromptSubmit hook, and the 500-line rule. Includes validation and debugging with SKILL_DEBUG. Examples include rust-error-stack, cargo-dep...

3931 votes

Mcp Code Execution

Routes multi-tool workflows through MCP servers for large datasets and pipelines. Use when Bash tool overhead is limiting throughput on data-heavy tasks.

3421 votes

catchup

Recovers the conversation and failed tool calls of a previous Codex, Amp, Claude Code, Antigravity, Cline, Copilot CLI, Cursor, DeepSeek Harness, Grok Build, Kimi, OpenCode, Pi Agent, or ZCode session. Use when the user says "catch up", "what did the last session do", "get me up to speed", "I switched agents", asks to recover/summarize a previous session before continuing, or asks to diagnose or report a catchup failure. Do NOT use for the current conversation, git history, or any non-agent log.

741 votes
View all in ai-agents →