Security

Permission model

The permission set, what each one allows, and what is not available.

Availability note — these docs describe both working and planned product areas. Account authentication, administrator-managed AIHK/AICA tenant regions and keys, signed-in Composer runs and public Guard scans are connected. Skills, Memory, Agents, Workflows, Apps, billing, the public SDK/CLI and the unified API are previews unless a section explicitly says otherwise.


Roadmap and package-contract reference: this page describes the intended GenCMS runtime. The current deployment persists workspace records and drafts but does not execute marketplace Skills, index Memory for retrieval, publish packages, or run Agents, Workflows or Apps. See the deployed API reference for the routes available today.

Permissions are declared in the manifest, shown before install and enforced at run time. A Skill can only do what it declared, and Guard reports the gap when the code does more.

PermissionAllowsIn MVP
web.fetchFetch public web pagesYes
files.readRead files supplied to the runYes
files.writeWrite output files inside the run directoryYes
http.callCall external HTTP endpointsYes
memory.readRead Memory collections granted to the runYes
memory.writeWrite to Memory collections granted to the runYes
api.callCall GenCMS API endpointsYes
code.executeExecute code in the sandboxRestricted
email.read / email.sendMailbox accessNo
calendar.read / calendar.writeCalendar accessNo
shellHost shell executionNo — not available to marketplace Skills

Enforcement

  • Secrets are held outside the package and never passed into it as environment.
  • Execution has a timeout and a size limit.
  • Network egress is controlled per permission, not per package.
  • Memory access is scoped to the collections granted for that run.
  • Every run is logged with the permissions it actually exercised.
  • A kill switch can disable a Skill everywhere it is installed.