ReportArtefact
ReportArtefact manifests define top-level report outputs.
Each artefact typically corresponds to one PDF file.
Spec outline
Section titled “Spec outline”apiVersion: bino.bi/v1alpha1
kind: ReportArtefact
metadata:
name: sales_report
spec:
format: xga # logical page size (e.g. xga, a4, letter)
orientation: landscape # portrait | landscape
language: en # de | en
layoutPages: # optional: LayoutPage selection patterns
- cover # exact name match
- sales-* # glob pattern
filename: sales-report.pdf
title: "Sales Overview"
description: "Quarterly sales overview for the group."
subject: "Sales report"
author: "Group Controlling"
keywords: ["sales", "quarterly", "internal"]
signingProfile: corporateSignerFields:
spec.format– logical page size, defaultxga.spec.orientation–portraitorlandscape, defaultlandscape.spec.language– current options:deoren.spec.layoutPages– optional list of patterns to select LayoutPages bymetadata.name. Supports glob syntax (*,?,[abc]). Pages appear in pattern order; within each pattern, pages are sorted alphabetically. Default:["*"](all pages matching format).spec.filename– required output filename (relative to output directory).spec.title– required human-readable title; also used in PDF metadata.spec.description– optional description.spec.subject– optional subject stored in PDF metadata.spec.author– optional author name.spec.keywords– optional list of metadata keywords.spec.signingProfile– optional reference to aSigningProfilemanifest.
Minimal artefact
Section titled “Minimal artefact”---
apiVersion: bino.bi/v1alpha1
kind: ReportArtefact
metadata:
name: monthly_sales
spec:
filename: monthly-sales.pdf
title: "Monthly Sales Report"Artefact with signing
Section titled “Artefact with signing”---
apiVersion: bino.bi/v1alpha1
kind: SigningProfile
metadata:
name: corporateSigner
spec:
certificate:
path: ./certs/corporate-cert.pem
privateKey:
path: ./certs/corporate-key.pem
signer:
name: "Group Controlling"
location: "Headquarters"
reason: "Approved financial report"
---
apiVersion: bino.bi/v1alpha1
kind: ReportArtefact
metadata:
name: annual_sales
spec:
format: a4
orientation: portrait
language: en
filename: annual-sales.pdf
title: "Annual Sales Report"
description: "Yearly consolidated sales figures."
author: "Group Controlling"
signingProfile: corporateSignerPage selection
Section titled “Page selection”By default, a ReportArtefact includes all LayoutPages that match its spec.format. Use spec.layoutPages to explicitly select which pages to include and control their order.
---
apiVersion: bino.bi/v1alpha1
kind: ReportArtefact
metadata:
name: quarterly-report
spec:
format: xga
layoutPages:
- cover # cover page first
- executive-summary # then summary
- detail-* # all detail pages (alphabetically)
- appendix-* # appendices last
filename: quarterly-report.pdf
title: "Quarterly Report"Pattern syntax:
*matches any sequence of characters?matches a single character[abc]matches any character in the set
Pages are rendered in the order their patterns appear. Within each pattern, matching pages are sorted alphabetically by name.
Parameterized LayoutPages
Section titled “Parameterized LayoutPages”You can include the same LayoutPage multiple times with different parameter values. This is useful for generating reports that repeat a layout for different regions, time periods, or other dimensions.
Basic syntax
Section titled “Basic syntax”Use the object form with page and params to pass parameter values:
apiVersion: bino.bi/v1alpha1
kind: ReportArtefact
metadata:
name: regional-report
spec:
format: xga
layoutPages:
# String form - simple page reference
- cover-page
# Object form - page with parameters
- page: regional-sales
params:
REGION: EU
YEAR: "2024"
# Same page with different parameters
- page: regional-sales
params:
REGION: US
YEAR: "2024"
- page: regional-sales
params:
REGION: APAC
YEAR: "2024"
filename: regional-report.pdf
title: "Regional Sales Report"Each parameterized reference creates a unique page instance with the specified values substituted into the LayoutPage’s spec.
Mixing forms
Section titled “Mixing forms”You can mix string patterns and parameterized objects in the same list:
layoutPages:
- cover # String: exact name
- executive-summary # String: exact name
- page: regional-sales # Object: with params
params:
REGION: EU
- page: regional-sales
params:
REGION: US
- appendix-* # String: glob patternDynamic parameter values
Section titled “Dynamic parameter values”Parameter values can reference environment variables:
layoutPages:
- page: regional-sales
params:
REGION: ${DEFAULT_REGION} # Resolved from environment
YEAR: ${REPORT_YEAR:2024} # With fallback defaultThis enables runtime configuration of reports without modifying the manifest.
Example: Multi-region report
Section titled “Example: Multi-region report”---
# Define a parameterized LayoutPage (in pages.yaml)
apiVersion: bino.bi/v1alpha1
kind: LayoutPage
metadata:
name: regional-sales
params:
- name: REGION
type: select
required: true
options:
items:
- value: "EU"
label: "Europe"
- value: "US"
label: "North America"
- value: "APAC"
label: "Asia Pacific"
- name: YEAR
type: number
default: "2024"
spec:
titleBusinessUnit: "Sales Report - ${REGION}"
pageLayout: split-vertical
children:
- kind: Text
spec:
value: "Region: ${REGION} | Year: ${YEAR}"
- kind: Table
spec:
dataset: regional-sales-data
---
# Use it multiple times (in report.yaml)
apiVersion: bino.bi/v1alpha1
kind: ReportArtefact
metadata:
name: all-regions-report
spec:
format: xga
orientation: landscape
layoutPages:
- page: regional-sales
params:
REGION: EU
YEAR: "2024"
- page: regional-sales
params:
REGION: US
YEAR: "2024"
- page: regional-sales
params:
REGION: APAC
YEAR: "2024"
filename: all-regions-2024.pdf
title: "2024 Sales by Region"This generates a single PDF with three pages, each showing sales data for a different region.
Example: Time comparison report
Section titled “Example: Time comparison report”---
apiVersion: bino.bi/v1alpha1
kind: LayoutPage
metadata:
name: quarterly-summary
params:
- name: QUARTER
type: string
required: true
- name: START_DATE
type: date
required: true
- name: END_DATE
type: date
required: true
spec:
titleBusinessUnit: "${QUARTER} Summary"
children:
- kind: Text
spec:
value: "${QUARTER}: ${START_DATE} to ${END_DATE}"
- kind: ChartStructure
spec:
dataset: quarterly-data
---
apiVersion: bino.bi/v1alpha1
kind: ReportArtefact
metadata:
name: year-in-review
spec:
layoutPages:
- page: quarterly-summary
params:
QUARTER: "Q1 2024"
START_DATE: "2024-01-01"
END_DATE: "2024-03-31"
- page: quarterly-summary
params:
QUARTER: "Q2 2024"
START_DATE: "2024-04-01"
END_DATE: "2024-06-30"
- page: quarterly-summary
params:
QUARTER: "Q3 2024"
START_DATE: "2024-07-01"
END_DATE: "2024-09-30"
- page: quarterly-summary
params:
QUARTER: "Q4 2024"
START_DATE: "2024-10-01"
END_DATE: "2024-12-31"
filename: year-in-review-2024.pdf
title: "2024 Year in Review"For complete documentation on defining parameters in LayoutPages, see LayoutPage Parameters.