Publish
Any public repo can list its graphs and nodes here.
What you can share
A graph is a graph.json file. It is the export of:
canopy graph export
A node is a node.json file. It carries format_version, name, kind and config, with an optional description and preset.
Shared documents never carry platform, model or cli. The person who installs chooses the harnesses.
Where it goes in your repo
Put the graph at graphs/<slug>/graph.json.
Put the node at nodes/<slug>/node.json.
Add a README.md in the same folder. It says what the document does.
The <slug> in the path equals the document's name. It matches ^[a-z0-9-]{1,48}$.
Mark the repo
The repo must be public.
Add the canopy-graph topic on GitHub. Find it under Settings → About → Topics.
Check it before sharing
Check the file with canopy 3.2 or later. It reports every problem with its path:
canopy graph validate graphs/flow/graph.json
Or check the file against the JSON Schemas: graph.schema.json and node.schema.json.
When it shows up
GitHub indexes a new topic within minutes.
The catalogue re-indexes every 15 minutes, so new documents appear within 15 minutes.
How people install it
People install the graph with:
canopy graph install acme/things/flow
People install the node with:
canopy node install acme/things/cool-node
The commands are the same ones each document page prints.
Official documents
Official documents live in UniverLab/canopy-graphs. They are proposed by pull request there, and forking UniverLab/canopy-graphs — or using it as a template — is the quickest way to start a graphs repo.
Reporting and removal
Anyone can report a graph or node through the Report link on its page, which opens a pre-filled GitHub issue. Maintainers decide whether to remove it by pull request to blocked.json, and the indexer honours the list on its next run. An author can appeal on the same issue.