package.yaml describes it, and there is one per package.
package.yaml
name, displayName and version are required. The rest earn their place below.
What the marketplace shows
Categories are
ai, storage, ingest, communication, cloud, flow, media,
search and productivity.
This is a different list from the category on a node. A package category groups it in the
marketplace; a node category describes the job that node does. Both are enums, and confusing
them is a lint error rather than a silently wrong grouping.
You do not list the nodes here. Every node.yaml under nodes/ is found on its own, so the
package cannot disagree with what it actually contains.
allowedHosts: the hosts your nodes may call
Every host any node in this package reaches, and nothing else is permitted.
*.example.com matches exactly one level, so files.example.com passes and
a.files.example.com does not.
The list is checked when you lint and again at run time, after the URL has been assembled.
That second check matters because a host can itself come from a Handlebars string, and only the
finished URL can be judged.
Keep it short and keep it honest. A list of two hosts is read in a second, and it is the
promise anyone installing the package can check.
requires: what the platform must support
Every capability the packageβs nodes use: each credential scheme, each transport, and each
of paginate, chunk, poll and state a call names.
Sharing what nodes have in common
Two folders sit besidenodes/, and both exist so a value has one home.
example
package.yaml
credentials
exampleCredential.yaml
shared
endpoints.yaml
models.yaml
nodes
credentials/ describes each credential the packageβs nodes ask for. shared/ holds
fragments more than one node reuses, reached with $ref.
When it goes wrong
Next steps
Troubleshooting
When a node loads but does nothing.
package.yaml
Every field the package envelope takes, generated from the schema.

