Agent skill · security · jeremylongshore
appfolio-security-basics
Secure AppFolio API credentials and tenant data.
Why this skill is useful
Provides specific security patterns and code snippets for managing AppFolio API credentials and protecting tenant data that the AI wouldn't reliably generate on its own.
What it needs
About 3k tokens when loaded. Last updated 2026-08-07. 2,604 stars on the source repository.
What this skill does
AppFolio Security Basics Overview AppFolio manages property portfolios containing tenant PII (SSNs, bank accounts, lease terms), owner financial data, and maintenance vendor records. A breach exposes rent rolls, payment histories, and personally identifiable tenant information across every managed property. Secure every integration point: API credentials, webhook endpoints, and any pipeline that touches tenant or owner financial records. Prerequisites A verified AppFolio contract stating the permitted endpoint, authentication, webhook, data-retention, and portfolio-scoping requirements for the target environment. A secret manager, separate sandbox credentials, and a named security owner for rotations, access review, and incident response. A raw-body route configuration for any signed webhook: signature verification must run before JSON parsing, mutation, or logging of the request payload. Instructions 1. Load credentials from the approved secret boundary, validate the HTTPS base URL, and give each worker only the scope it requires. 2. Receive webhook requests as bounded raw bytes, validate the signature shape and HMAC in constant time, then parse and schema-validate the payload. 3. Encrypt or minimize sensitive stored fields, redact nested PII before logs, and record access through a durable audit trail. 4. Run a rotation and webhook-negative-path rehearsal in sandbox; a failed signature, missing secret, or unverifiable endpoint is a no-go condition. …
How to use it
Reference it in AdaL, Claude Code, Cursor or any coding agent — nothing to install:
@skills jeremylongshore/appfolio-security-basics