원클릭으로
division-access-enforcer
Use when implementing division-based access control on any endpoint
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
Use when implementing division-based access control on any endpoint
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
Record browser-based feature demos as GIFs via Playwright and optionally document them in docs/features/index.md. Trigger with "Demo <feature>" or "Demo and Document <feature>".
Use when creating service modules in apps/api/skillhub/services/
Use when writing API tests in apps/api/tests/
Use when adding services to docker-compose.yml or creating Dockerfiles
Use when implementing error handling across the API, frontend, or MCP server
Use when creating new Flask blueprints in apps/api/skillhub_flask/blueprints/
| name | division-access-enforcer |
| description | Use when implementing division-based access control on any endpoint |
Division enforcement happens in Flask (before_request) — NEVER client-side.
from flask import Blueprint, g, abort
from skillhub_flask.db import get_db
bp = Blueprint("skills_install", __name__)
@bp.route("/api/v1/skills/<slug>/install", methods=["POST"])
def install_skill(slug: str):
db = get_db()
user = g.current_user
skill = db.query(Skill).filter(Skill.slug == slug).first()
if not skill:
abort(404, description="Skill not found")
user_division = user["division"]
authorized = [sd.division_slug for sd in skill.divisions]
if user_division not in authorized:
# Log the denial
audit_log(db, "access.denied", user["user_id"], "skill", skill.id,
{"division": user_division, "required": authorized})
abort(403, description="Division not authorized for this skill")
/api/v1/skills/{slug}/access-request with reason/api/v1/admin/access-requests/{id}/review{"user_id": "uuid", "email": "...", "division": "engineering-org", "role": "Senior Engineer",
"is_platform_team": false, "is_security_team": false}
apps/api/skillhub_flask/blueprints/auth.pyapps/api/skillhub_flask/blueprints/social.pylibs/db/skillhub_db/models/audit.py