Back to Registry

FuelVM Access Matrix v1

Purpose

Define a consistent dual-plane access model for all non-WordPress tools:

  1. Internal plane (tool-to-tool, trusted automation)
  2. External plane (customer/integrator access)

Default policy: deny by default. Access is granted only via explicit scopes.


1) Planes and Trust Boundaries

Internal Plane

External Plane


2) Scope Model (Capabilities)

Scopes are granular permissions attached to tokens.

Core scopes:

Rules:


3) Token Classes

Required token metadata:


4) Endpoint Permission Matrix Template

Use this table in every app:

| Endpoint | Method | Internal Scopes | External Scopes | External Allowed? | Notes | |---|---|---|---|---|---| | /api/v1/reports | GET | reports.read | reports.read | Yes | Tenant-filtered results only | | /api/v1/reports/generate | POST | reports.generate | reports.generate (optional) | Conditional | External rate-limited hard | | /api/v1/reports/:id/export | POST | reports.export | reports.export | Yes | Watermark/branding rules apply | | /api/v1/connectors/sync | POST | connectors.run | — | No | Internal only | | /api/v1/connectors/config | PUT | admin.connectors.write | — | No | Internal only | | /api/v1/admin/system | POST | admin.system.full | — | No | Break-glass only | | /api/health | GET | any valid token | optional public | Yes | No sensitive internals in payload |


5) Security Controls (Mandatory)

  1. Deny-by-default router

    • Unmapped endpoints return 403.
  2. Tenant isolation

    • External token may access only matching tenant_id data.
  3. Field-level redaction

    • External responses remove secrets/internal diagnostics.
  4. Rate limits by plane

    • Internal: high, burst-tolerant
    • External: strict per-token + per-IP
  5. Key hygiene

    • Rotation support
    • Immediate revoke + kill switch
    • Expiration defaults for external keys
  6. Audit logging

    • Every privileged call logs token_id, scope used, actor, endpoint, outcome.
  7. Admin protection

    • MFA + step-up verification for operator admin actions.

6) External Operation Policy

Default external policy:

For any external write operation, require:


7) Rollout Plan (All Non-WP Apps)

  1. Add plane, scopes, tenant_id to auth middleware
  2. Implement endpoint-to-scope mapping table
  3. Enforce deny-by-default + tenant checks
  4. Add rate-limit profiles for internal/external
  5. Add audit logs + revoke flow
  6. Publish app-specific permission matrix

Priority order:

  1. seo-report-app
  2. brand-radar
  3. wp-engine-dashboard

8) Go/No-Go Checklist

Go live only if all are true:


9) Non-Negotiables