Atlas / Skills / builderio / Security

SecurityCAUTION

skills/builderio/security

A framework for building agentic apps

Verdict
CAUTION
Grade
B
Trust score
89 /100
Version
—
Hosts
—
License
—
Stars
7,191
01

Overview

A framework for building agentic apps

Read from source at commit d31edd75948aOBSERVED · 2026-10-14
Advertisement
02

What it tells the agent

The instruction file, verbatim from the audited commit — this is the text the model reads, and the surface the audit's instruction layer examines. Quoted here so you can judge it without cloning anything.

---
name: security
description: >-
  Secure app data, actions, routes, and external input. Use when changing
  authentication, authorization, database access, uploads, untrusted content,
  or server-side requests to user-provided URLs.
scope: dev
---

# Security

## Rule

Treat each action, route, query, and external request as a trust boundary.
Validate inputs, check the caller's authority for every row, and fail closed
when access cannot be established.

## Validate input and queries

- Define action inputs with a Zod `schema`; validate data from forms, URLs,
  providers, and files before using it.
- Build database queries with Drizzle. For raw SQL, bind values as parameters;
  never concatenate user input into SQL text.
- Keep large uploads and file contents in file storage. Store only their
  returned ids or URLs in SQL.

## Authorize rows and actions

Choose a table's access model when designing its data:

| Data | Access model |
| --- | --- |
| Private user rows | Store `owner_email` and filter every read and write by the current caller. |
| Organization-wide catalog | Store `org_id` and scope action queries to the active org; gate restricted mutations by org or app role. |
| Team-shared or individually shareable resources | Use `ownableColumns()`, register the resource type, and check access with the sharing helpers. |
| Child rows | Check access to the parent before reading or changing children; add any child-specific rules in the action. |

Do not make a team-wide catalog private by adding a per-user owner filter. For
an organization-owned catalog, `org_id` without `owner_email` is valid: scoped
database tools expose only the active organization's rows, while app actions
still need their own org filter and authorization. For resources users can
share, use these helpers:

- Add `accessFilter(table, sharesTable)` to list and read-many queries.
- Use `resolveAccess(type, id)` for an optional read by id, or
  `assertAccess(type, id, role)` before a read or write that requires access.
- Use an action's `authorize` gate for role-wide restrictions. It decides who
  may call the operation; it does not replace row-level access checks.

Prefer actions for normal app data. A custom HTTP route is appropriate for
protocols such as uploads, streaming, webhooks, OAuth callbacks, or public
unauthenticated resources. An authenticated custom route must establish the
session/request context and apply the same row-level access checks as an action.

## Handle untrusted content and URLs

- React escapes rendered text. Do not pass untrusted content to
  `dangerouslySetInnerHTML`, `innerHTML`, `eval`, or `document.write`.
- Use `ssrfSafeFetch` from `@agent-native/core/extensions/url-safety` for
  server-side requests to user- or agent-controlled URLs. It checks private
  network destinations and redirects.
- Treat provider error bodies and uploaded files as untrusted input. Return a
  useful, bounded error to the user without exposing internal details.

## Protect credentials and consequential actions

Never put credential values in source, prompts, action arguments or results,
application state, client bundles, logs, or error messages. Use the shared
credential flow in the `secrets` skill.

For a genuinely high-consequence outward action, such as sending a message,
charging a payment method, or publishing publicly, use `needsApproval` to ask
the user to approve that call. Approval does not grant access: keep the normal
`authorize` and row-level checks as well.

## Related skills

- `actions` — define validated operations shared by the agent and UI.
- `secrets` — connect external services and resolve credentials safely.
- `sharing` — configure access to shareable resources.
03

Trust audit

CAUTIONgrade B · trust 89/100 Install with care. The audit found things worth knowing before you trust its output.

LayerWhat it checksResult
L0Provenance & inventoryWARN
L1Static analysis of the codeNA
L2Instruction surface (what it tells the agent)PASS
L3Class-specific surfacePASS
L4Behavioural (sandbox)SKIPPED

What the source does

Filesystem
none-observed
Network
none-observed
Shell
none-observed
Dependencies
pinned
Secrets in source
none-found

Findings (5)

MEDIUMInventory / provenance · inv.symlink · CWE-1104
.agents/skills/an
.agents/skills/an
Why it matters. link not followed
MEDIUMInventory / provenance · inv.symlink · CWE-1104
.agents/skills/content-product-development
.agents/skills/content-product-development
Why it matters. link not followed
MEDIUMInventory / provenance · inv.symlink · CWE-1104
.agents/skills/design-exploration
.agents/skills/design-exploration
Why it matters. link not followed
MEDIUMInventory / provenance · inv.symlink · CWE-1104
.agents/skills/turn-into-app
.agents/skills/turn-into-app
Why it matters. link not followed
MEDIUMInventory / provenance · inv.symlink · CWE-1104
.agents/skills/visual-edit
.agents/skills/visual-edit
Why it matters. link not followed

Gates applied: no_behavioural_pass.

Audited 2026-10-14 · audit v0.4.1 · source sha d31edd75948afull audit observations/trust-audit/skill/builderio__security.json · Report an issue / request a re-scan
04

Audit history

Every audit this skill has had.

DateSourceVerdictGradeScoreChange
2026-10-14d31edd75948aCAUTIONB89first audit
05

Questions

What does the Security skill do?

A framework for building agentic apps

Is Security safe to install?

With care. The audit graded it B (89/100) and found 5 things worth knowing before you trust this skill, listed below with the exact line each was found on.

What can Security access on my machine?

The audit observed no filesystem, network or shell use at all in its source.

How current is this page?

The grade is for one exact copy of the source (d31edd75948a), read on 2026-10-14. The repository is watched, and a new audit runs when it changes — this is the first audit.

Add this badge to your README

Shows this page's audit result and links back to it. It updates when the audit does.

ModelsAtlas audit badge

Markdown
[![ModelsAtlas audit: Security](https://modelsatlas.com/skills/builderio/security/badge.svg)](https://modelsatlas.com/skills/builderio/security/)

Not your listing, or something out of date? Claim or update your listing.

Advertisement