POST /api/v1/admin/orgs/:slug/blocklist
This page is auto-generated from
src/admin/routes.ts. Do not edit by hand — seedocs/dev/docs-auto-sync.md.
:warning: Heuristic extraction — not a contract. Response shapes below are mined from
c.json(...)literals in the handler via an AST walker. Computed fields, ternaries, and non-literal returns are shown as placeholders. Refer to the linked source file for the authoritative behaviour.
POST /api/v1/admin/orgs/:slug/blocklist
Section titled “POST /api/v1/admin/orgs/:slug/blocklist”Authentication
Section titled “Authentication”Requires the following capability(ies):
policy:w
Middleware
Section titled “Middleware”Other middleware observed on this route (heuristic):
requireCapabilityadminBodyLimit
Description
Section titled “Description”POST /api/v1/admin/orgs/:slug/blocklist — add a custom block. We don’t
allow setting source to anything other than custom so the per-org
rows are clearly distinguishable from synced global rows.
#116 — gated on policy:w (proof-of-concept WRITE binding).
Responses
Section titled “Responses”HTTP 400
Section titled “HTTP 400”{ "error": "Invalid JSON body"}HTTP 400
Section titled “HTTP 400”{ "error": "Body must be a JSON object"}HTTP 400
Section titled “HTTP 400”{ "error": "packageName is required"}HTTP 400
Section titled “HTTP 400”{ "error": "versionRange is required"}HTTP 404
Section titled “HTTP 404”{ "error": "Org not found"}HTTP 201
Section titled “HTTP 201”{ "id": <member-expr>, "source": "custom", "sourceId": <sourceId>, "packageName": <member-expr>, "versionRange": <member-expr>, "severity": <severity>, "summary": <summary>, "tenantId": <member-expr>}Source
Section titled “Source”- File:
src/admin/routes.ts - Line: 5943