indykite-authzen-search-action — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited indykite-authzen-search-action (Agent Skill) and scored it 91/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 1 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 1 flagged
The text {match} is the classic direct prompt-injection phrasing. Placed in a skill body that the agent reads as trusted instructions, it tries to make the agent abandon its prior rules and follow whatever comes next — a full system-prompt override.
ignore/disregard/forget … previous instructions sentence.Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Action search asks the AuthZEN endpoint: which actions may this subject perform on this resource? It returns the list of granted action names under the project's currently ACTIVE KBAC policies and current graph state - not a single boolean.
It is one of three AuthZEN search endpoints, each pinning two of the three (subject, action, resource) parts and enumerating the third:
| Endpoint | Pinned | Enumerates | Skill |
|---|---|---|---|
/search/action | subject + resource | actions | this skill |
/search/resource | subject + action | resources | indykite-authzen-search-resource |
/search/subject | resource + action | subjects | indykite-authzen-search-subject |
This skill covers building and sending the request and reading the results. It does not author policies - the 2.0-kbac policies whose actions these results come from are authored with indykite-authzen-kbac.
Activate this skill when the user wants to:
linus do with gpu-node-7?");(subject, resource) pair.Do not activate this skill for a single yes/no decision (indykite-authzen-evaluation), to enumerate resources or subjects instead (the sibling search skills), to run many decisions at once (indykite-authzen-evaluations), or to author a policy or read/write graph data (search only lists actions).
subject.type / resource.type match the pair you are asking about. If none exist, author them first with indykite-authzen-kbac; search over an empty policy set returns {"results": []}.X-IK-ClientKey value).context.input_params.If a prerequisite is missing, say so - an empty result set from a missing policy or absent node looks identical to a real "nothing permitted".
Action search fixes both the subject and the resource and asks what is allowed between them. Identify each by its node external_id:
| Part | Field | Example |
|---|---|---|
| subject | subject.type + subject.id | Person / linus |
| resource | resource.type + resource.id | Server / gpu-node-7 |
There is no action field - discovering the actions is the point.
{
"subject": { "type": "Person", "id": "linus" },
"resource": { "type": "Server", "id": "gpu-node-7" },
"context": { "input_params": { "max_price": 120000 } }
}Include context.input_params only if a candidate policy's condition references a $name partial parameter; supply each key without the leading $, with the correct type (numbers stay numbers). A ready body: assets/search-action-request.json.
POST <API_URL>/access/v1/search/actionAuthentication:
X-IK-ClientKey: <AppAgent-credentials-token>.Authorization: Bearer <user-access-token> - applies only in some cases; when supplied it can narrow the results.A runnable shell helper: scripts/search-action.sh — run with --print to preview the curl (host-pinned; tokens redacted).
{ "results": [ { "name": "DEPLOY" }, { "name": "REBOOT" }, { "name": "SNAPSHOT" } ] }Each results[] entry is an action the subject may currently perform on that resource. An empty results array is a normal 200 meaning nothing is granted - not an error.
Empty or surprising results usually trace to: the policy isn't ACTIVE/matching, subject.id/resource.id aren't the nodes' external_ids, a required $param is missing or mistyped, the graph data is absent, or a Bearer token narrowed claim-gated actions. Full checklist: references/search-action-reference.md.
When this skill has been applied successfully:
POST /access/v1/search/action returns a results array of the actions a subject may perform on a specific resource under current ACTIVE policies and graph state (an empty array means nothing permitted — a normal 200).actions of the KBAC policies authored via indykite-authzen-kbac.references/search-action-reference.md - endpoint, auth, request/response shape, error codes, troubleshooting, sibling endpoints.assets/search-action-request.json - runnable action-search request body for the linus / gpu-node-7 example.scripts/search-action.sh - Bash helper that posts a search request to /access/v1/search/action (host-pinned; --print to preview).This skill uses generic markdown instructions and works across all agents listed in the README. The agent needs to be able to issue HTTP requests (curl, an HTTP client, or the IndyKite Terraform provider). No Claude Code hooks, Cursor @-mentions, or Copilot workspace context are required.
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.