humanmade / humanmade/hm-rest-ability

Guard rails for destructive REST actions

Open
#28 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
PHP
Stars
2
Forks
0
Avg merge
1d 12h
Merged PRs (30d)
16

Description

The plugin exposes the whole REST API through one ability, `rest-api/call`. A harness that gates MCP tools by name can only allow or deny everything at once. There is no way to let reads through and hold back writes and deletes.

WordPress capabilities stay the only thing that decides what a user may do. This work adds a layer on top: it lets a harness express different policy per action, and it nudges a model to confirm before changes that affect the live site.

Tracking issue for a five-part series:

- [x] #29 — Deny permission for unmatched routes
- [x] #30 — Split `rest-api/call` into `rest-api/read`, `rest-api/write`, `rest-api/delete`
- [x] #31 — Route risk classification and confirmation guidance
- [x] #32 — Filterable policy layer, permissive by default
- [ ] #33 — Research spike: elicitation-based confirmation (no implementation yet)

Each ships as its own PR.

Contributor guide

No contributing guide indexed for this repository

Research direction

Treat this as the parent tracking issue: review the completed #29–#32 entries and focus on the unchecked #33 research spike. Start from the stated elicitation-based confirmation requirement; completion is a research outcome, since the issue explicitly says no implementation yet.

Written by the indexing model from the issue text.

Assessment

Tech stack
php
Domain
api, security
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Active
Clarity
Needs clarification
Newbie friendliness
30/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.