generate-contentful-graph
v4.0.3
Published
Contentful Content Type Dependency Graph
Maintainers
Readme
Contentful Content Type Dependency Graph
This Node.js script generates a Graphviz diagram of the relationships between Contentful content types, based on their fields and links to other content types.
Usage To run the script, open your terminal or command prompt and navigate to the project directory. Then, run the following command:
SPACE_ID={CONTENTFUL_SPACE_ID} ENVIRONMENT={CONTENTFUL_ENVIRONMENT_ID} CONTENT_DELIVERY_ACCESS_TOKEN={CONTENTFUL_CONTENT_DELIVERY_API_ACCESS_TOKEN} npx generate-contentful-graphThe script will retrieve the content types from your Contentful space and environment, examine their fields and links, and produce a Graphviz diagram in DOT format. The DOT output will be displayed in the console.
You can save the DOT output to a file by redirecting it to a file, like so:
SPACE_ID={CONTENTFUL_SPACE_ID} ENVIRONMENT={CONTENTFUL_ENVIRONMENT_ID} CONTENT_DELIVERY_ACCESS_TOKEN={CONTENTFUL_CONTENT_DELIVERY_API_ACCESS_TOKEN} npx generate-contentful-graph > diagram.dotAlternatively, you can use Graphviz's command-line tools to transform it into an image file, such as a PNG or PDF. For instance, to render the diagram as a PNG file, run the following command:
SPACE_ID={CONTENTFUL_SPACE_ID} ENVIRONMENT={CONTENTFUL_ENVIRONMENT_ID} CONTENT_DELIVERY_ACCESS_TOKEN={CONTENTFUL_CONTENT_DELIVERY_API_ACCESS_TOKEN} npx generate-contentful-graph | dot -Tsvg -o diagram.svgReleasing (Semantic Versioning)
The project uses an automated GitHub Actions workflow to bump the npm package version and publish on pushes to the main branch when the latest commit message follows certain Conventional Commit prefixes.
Triggers
The release logic inspects ONLY the latest commit on main:
Commit prefix / pattern -> Bump type:
feat!:orfeat(scope)!:-> majorfix!:orfix(scope)!:-> majorfeat:/feat(scope):-> minorfix:/fix(scope):-> patch- Any commit body line starting with
BREAKING CHANGE:-> major (even without!)
If the last commit subject does not start with feat, fix, or their breaking variants, and there's no BREAKING CHANGE: line, the workflow skips versioning & publish.
Examples
refactor: output format changed => major
feat: add color legend => minor bump (x.Y.z)
feat(parser)!: rewrite to support locales => major bump (X.y.z)
fix: correct null handling => patch bump (x.y.Z)
fix(api)!: remove deprecated endpoint => major
chore: update docs => no release
docs: readme/typo fix => no release
ci: update CI configuration => no release