Alpha Version: You are viewing the ALPHA documentation. This is an experimental version and may contain breaking changes.
Skip to main content

Plugin configuration (plugin.json)

A plugin needs almost no configuration: the generator derives what it can from the package and from what it finds in src/. What is left goes in an optional src/plugin.json, read before every build.

The shipped example is one line:

{"name": "Catalog"}

Fields

FieldDefaultWhat it does
namederived from the package name (@scope/my-catalogMyCatalog)The plugin's registered name. It appears in every GraphQL field prefix (Catalog_AddProduct), so changing it is a public API change.
heartbeatIntervalframework defaultHow often the plugin reports itself to the platform, in minutes.
excludenonePaths under src/ the generator should skip when discovering components.
runtimenonePer-component resource hints — see below.

Per-component runtime hints

Components share a handler per kind, and the shared handler is sized for the most demanding component in it. When one component needs more memory or time than its neighbours, say so here rather than raising the whole platform:

{
"name": "Catalog",
"runtime": {
"ImportProducts": {"memorySize": 1024, "timeout": 300}
}
}

Keys are component names as they appear in src/ (ImportProducts, PlaceOrder, Customers). Both fields are optional; an omitted one falls through to the per-kind default, and the higher of the hint and the default wins. On the local platform these are accepted and ignored — there is no process boundary to size.

For the deployment-wide knobs (the four command-handler flavours, reserved concurrency, ephemeral storage, log retention) see the Lambda deployment guide.

Where the rest of the configuration lives

Configuration that is not the plugin's own belongs elsewhere on purpose:

  • Which platform you run on is a functor argument at the composition root — see Run and deploy.
  • Deployment settings (region, Cognito pool, custom domain, stack references) live in the Pulumi stack config of the -aws package, not in the plugin — see the deployment guide.
  • Who counts as an operator is REVENTLESS_ELEVATED_GROUPS, deliberately an environment setting rather than anything a plugin declares — see Authorization.