pii-audit

GitHub

用于审计数据库 schema 和查询中的个人身份信息(PII),检测敏感数据泄露风险,生成合规清单以支持 GDPR/CCPA/HIPAA 等法规要求。

.opencode/skills/pii-audit/SKILL.md AltimateAI/altimate-code

Trigger Scenarios

扫描数据库 schema 识别 PII 列 检查 SQL 查询是否暴露 PII 数据 审计 dbt 模型中的 PII 泄露风险 生成符合 GDPR/CCPA/HIPAA 的 PII 资产清单

Install

npx skills add AltimateAI/altimate-code --skill pii-audit -g -y
More Options

Non-standard path

npx skills add https://github.com/AltimateAI/altimate-code/tree/main/.opencode/skills/pii-audit -g -y

Use without installing

npx skills use AltimateAI/altimate-code@pii-audit

指定 Agent (Claude Code)

npx skills add AltimateAI/altimate-code --skill pii-audit -a claude-code -g -y

安装 repo 全部 skill

npx skills add AltimateAI/altimate-code --all -g -y

预览 repo 内 skill

npx skills add AltimateAI/altimate-code --list

SKILL.md

Frontmatter
{
    "name": "pii-audit",
    "description": "Classify schema columns for PII (SSN, email, phone, name, address, credit card) and check whether queries expose them. Use for GDPR\/CCPA\/HIPAA compliance audits."
}

PII Audit

Requirements

Agent: any (read-only analysis) Tools used: altimate_core_classify_pii, altimate_core_query_pii, schema_detect_pii, schema_inspect, read, glob

When to Use This Skill

Use when the user wants to:

  • Scan a database schema for PII columns (SSN, email, phone, name, address, credit card, IP)
  • Check if a specific query exposes PII data
  • Audit dbt models for PII leakage before production deployment
  • Generate a PII inventory for compliance (GDPR, CCPA, HIPAA)

Do NOT use for:

  • SQL injection scanning -> use sql-review
  • General SQL quality checks -> use sql-review
  • Access control auditing -> finops role tools in cost-report

Workflow

1. Classify Schema for PII

Option A — From schema YAML/JSON:

altimate_core_classify_pii(schema_context: <schema_object>)

Analyzes column names, types, and patterns to detect PII categories:

  • Direct identifiers: SSN, email, phone, full name, credit card number
  • Quasi-identifiers: Date of birth, zip code, IP address, device ID
  • Sensitive data: Salary, health records, religious affiliation

Option B — From warehouse connection:

First index the schema, inspect it, then classify:

schema_index(warehouse: <name>)
schema_inspect(warehouse: <name>, database: <db>, schema: <schema>, table: <table>)
schema_detect_pii(warehouse: <name>)

schema_detect_pii scans all indexed columns using pattern matching against the schema cache (requires schema_index to have been run).

2. Check Query PII Exposure

For each query or dbt model, check which PII columns it accesses:

altimate_core_query_pii(sql: <sql>, schema_context: <schema_object>)

Returns:

  • Which PII-classified columns are selected, filtered, or joined on
  • Risk level per column (HIGH for direct identifiers, MEDIUM for quasi-identifiers)
  • Whether PII is exposed in the output (SELECT) vs only used internally (WHERE/JOIN)

3. Audit dbt Models (Batch)

For a full project audit:

glob models/**/*.sql

For each model:

  1. Read the compiled SQL
  2. Run altimate_core_query_pii against the project schema
  3. Classify the model's PII risk level

4. Present the Audit Report

PII Audit Report
================

Schema: analytics.public (42 tables, 380 columns)

PII Columns Found: 18

HIGH RISK (direct identifiers):
  customers.email          -> EMAIL
  customers.phone_number   -> PHONE
  customers.ssn            -> SSN
  payments.card_number     -> CREDIT_CARD

MEDIUM RISK (quasi-identifiers):
  customers.date_of_birth  -> DOB
  customers.zip_code       -> ZIP
  events.ip_address        -> IP_ADDRESS

Model PII Exposure:

| Model | PII Columns Exposed | Risk | Action |
|-------|-------------------|------|--------|
| stg_customers | email, phone, ssn | HIGH | Mask or hash before mart layer |
| mart_user_profile | email | HIGH | Requires access control |
| int_order_summary | (none) | SAFE | No PII in output |
| mart_daily_revenue | zip_code | MEDIUM | Aggregation reduces risk |

Recommendations:
1. Hash SSN and credit_card in staging layer (never expose raw)
2. Add column-level masking policy for email and phone
3. Restrict mart_user_profile to authorized roles only
4. Document PII handling in schema.yml column descriptions

Usage

  • /pii-audit -- Scan the full project schema for PII
  • /pii-audit models/marts/mart_customers.sql -- Check a specific model for PII exposure
  • /pii-audit --schema analytics.public -- Audit a specific database schema

Version History

  • 8c9a9a8 Current 2026-07-25 06:35

Same Skill Collection

.opencode/skills/altimate-setup/SKILL.md
.opencode/skills/cost-report/SKILL.md
.opencode/skills/data-parity/SKILL.md
.opencode/skills/dbt-analyze/SKILL.md
.opencode/skills/dbt-docs/SKILL.md
.opencode/skills/dbt-pr-review/SKILL.md
.opencode/skills/dbt-test/SKILL.md
.opencode/skills/dbt-troubleshoot/SKILL.md
.opencode/skills/dbt-unit-tests/SKILL.md
.opencode/skills/lineage-diff/SKILL.md
.opencode/skills/query-optimize/SKILL.md
.opencode/skills/schema-migration/SKILL.md
.opencode/skills/sql-review/SKILL.md
.opencode/skills/sql-translate/SKILL.md
.opencode/skills/teach/SKILL.md
.opencode/skills/train/SKILL.md
.opencode/skills/training-status/SKILL.md
.opencode/skills/data-viz/SKILL.md
.opencode/skills/dbt-develop/SKILL.md
.opencode/skills/dbt-schema-verify/SKILL.md

Metadata

Files
0
Version
e27aeac
Hash
455a7710
Indexed
2026-07-25 06:35

inicio - Wiki
Copyright © 2011-2026 iteam. Current version is 2.155.2. UTC+08:00, 2026-08-20 05:24
浙ICP备14020137号-1 $mapa de visitantes$