bino graph
bino graph prints a dependency graph of your bundle.
Use it to understand how datasources, datasets, layouts, and artefacts are connected.
Common flags:
--work-dir- report bundle directory.--artefact- focus on specific artefact names (can be repeated).--exclude-artefact- exclude certain artefact names (can be repeated).--view- output format:tree(default) orflat.
Examples
Section titled “Examples”View the full dependency tree for all reports:
Focus on a single artefact:
You can copy graph output into your docs and accompany it with a der diagram image for easier reading.
Column references
Section titled “Column references”Every component in the graph lists the dataset columns it reads. Check it before you rename or remove a column.
Each dataset gets one entry:
<dataset> is the name as written in the component, $name for a DataSource. A component that reads several datasets gets one entry per dataset.
The roles, in output order:
scenario- scenario columns fromscenarios, and fromcolumnthereofin a Table.variance- the scenario columns a variance is computed from.dac1_pp1_posreadsac1andpp1.measure- value columns of ChartScatter, ChartBubble and ChartBullet, from fields such asx,yoractual.group- columns the rows are grouped by, such asrowGroupandrowGroupIndexfor a grouped Table, orcategoryfor a chartlevel.order- columns fromorder.filter- columns named infilter.attribute- columns in Tableattributesexpressions, such aspl1inmax(pl1).template- columns in Text values like\${data.kpi[0].ac1}.implicit- columns the component always reads. A Table readscategory,categoryIndexandoperation, a ChartTime readsdateandoperation.
The column auto means the engine picks the column from the data at render time. You see it when a field such as scenarios or level is empty or set to auto.
inherited-page and inherited-closest are resolved from the title fields (titleScenarios, titleVariances, titleOrder) of the page and card around the component. A value that cannot be resolved, such as inherited-page without a page title or a ${PARAM} placeholder, is shown as written.
In the tree view each entry is an extra line under the component:
In the flat view the entries are added to the DETAILS cell:
bino build writes the flat view to a .bngraph file next to each PDF (for example monthly_sales.pdf.bngraph), so the file lists the columns too.
Limits
Section titled “Limits”- The list is built from the manifests only. bino does not run any SQL for it.
- The rules follow template engine v1.0.0-next.27. A newer engine or a new spec field is not detected.
autois not resolved to a column. Dataset defaults (_spec_*columns) are not read, so a field set only by a dataset default shows asautoor not at all.- Fields the engine does not use to read data print nothing, for example Table
barColumnsand ChartTimestackanddateInterval. - A component bound to several datasets lists the same columns for each of them, even though the engine reads only one.
- Inline datasets appear under their generated name
_inline_dataset_<hash>. filterand Text values are read by simple pattern matching, so an unusual expression can give a wrong list. Text placeholders are only seen when written as\${...}.- The engine finds the inherited page or card once per component, from its first inherited field. bino resolves each field on its own, so the list can differ when one component mixes
inherited-pageandinherited-closestinside a card. - Tree nodes that use
reflist no columns. Components on a page that an artefact uses withparamsshow the${PARAM}placeholders as written.