MyronCMS Developers Hub Docs sandbox review

Marketplace Readiness

Security Posture

Marketplace security is future/prep. Current MyronCMS extension security comes from local SDK boundaries: manifest validation, operator grants, caller scopes, namespace checks, migration isolation, and load error capture.

There is no current package signing, sandboxing, dependency resolution, or marketplace trust automation.

Current Controls

ControlCurrent behavior
Manifest validationExtensionManifest.php validates vendor, name, version, scopes, and admin route shape.
Vendor namespaceExtension actions must stay under /api/v1/x/{vendor}/ and x.{vendor}..
Operator grant gateExtensions must be registered, enabled, and granted required manifest scopes.
Caller scope gateAPI and MCP callers still need the action's requiredScope.
MCP exposure gateMCP tools/list respects exposeToMcp and caller scopes.
Migration isolationSQL migrations may only create, alter, drop, or index {vendor}_* tables.
Load error captureManifest, migration, and bootstrap failures are recorded without taking core requests down.
Audit and rate limitsAPI/MCP action dispatch uses centralized authorization, audit, and rate-limit behavior where configured.

Not Current

SurfaceCurrent status
Package signingNot implemented.
Signature verificationNot implemented.
Sandbox isolationNot implemented.
Dependency resolutionNot implemented.
Marketplace package trust recordsNot implemented.
Marketplace install audit trailNot implemented.
AI self-install or self-grantProhibited by trust-gate policy.

Human Path

For current local extension work:

  1. Keep code inside app/extensions/{vendor}/.
  2. Use a valid manifest.
  3. Request only necessary base scopes.
  4. Use isolated {vendor}_* tables for extension storage.
  5. Register and grant the extension through an administrator.
  6. Verify load health and errors from the Installed Extensions surface.

For future marketplace work, treat signing, sandboxing, dependency policy, package trust, and install audit as open platform questions.

AI Path

An AI coding agent can review source files and local package docs against this posture.

An installed MCP client cannot install packages, sign packages, verify signatures, sandbox code, resolve dependencies, or grant itself scopes. Those are security parity gaps and trust-boundary questions for future contracts.

Scopes

This page requires no runtime scope to read.

Current security-relevant runtime access uses:

  • extension manifest scopes,
  • operator grant scopes,
  • action requiredScope,
  • caller scopes,
  • hidden or exposed MCP policy.

No marketplace-specific security scope exists today.

Artifacts

Current security artifacts:

  • manifest.json
  • extension grant rows,
  • extension load errors,
  • action metadata,
  • migration files,
  • extension-owned tables,
  • audit records for reached API/MCP actions where configured.

Future marketplace security artifacts are not implemented.

Safety Boundary

Do not tell AI clients to solve security failures by expanding their own access. If a call fails from missing scope, missing grant, hidden MCP exposure, or rate limiting, the safe response is to stop or ask the operator.

Do not claim package signing, sandboxing, dependency resolution, or package trust automation until those controls exist in runtime.

Verification

Current verification:

php app/tests/verify-extension-system-foundation.php

Review that the package:

  • declares only base extension scopes,
  • registers only vendor-namespaced actions,
  • uses non-empty action schemas,
  • keeps migrations inside {vendor}_* tables,
  • documents MCP exposure honestly,
  • has no hard-coded secrets in extension docs or transport examples.

Future security verification is not available until the platform implements the corresponding runtime controls.

Failure Modes

FailureLikely causeSafe response
Package claims to be signedFuture trust controls were overstated.Mark signing as not current.
Extension depends on sandbox isolationRuntime sandboxing does not exist.Remove the assumption or evaluate sandbox support.
AI client asks to grant itself scopeTrust gate boundary was violated.Keep grants human-admin-only.
Migration touches a core tableStorage isolation was bypassed.Use {vendor}_* tables or contract a core feature.
Load error is ignoredExtension failed closed but docs implied success.Fix the local package and review Installed Extensions load health.