Tech Talks After Hours: Genesis Solution Packaging Kit (SPK) from Scratch - Pt. 1
Join Tony Mallardi and Tom Linton as they walk developers through the next layer of the Genesis Solution Packaging Kit (SPK) fundamentals, combining practical architecture guidance with a hands‑on build to strengthen confidence and fluency with the platform and supporting Solution development!
Key Topics Covered
- Genesis Solution Package Kit (SPK): a collection of documentation and best practice accelerators for building next-generation Solution Exchange applications; currently in limited evaluation with trusted partners
- SPK goal: decrease time to value and create an auditable, repeatable development process for Solution Exchange application submissions
- Custom Page Configurator: the first SPK accelerator demonstrated; a four-step wizard (General, Layout, Assembly, Results) that scaffolds a maintenance unit, dashboards, and assembly files in seconds
- Maintenance unit setup: naming the unit, selecting number of pages (up to 12), and optionally creating a shared assembly for custom classes and methods shared across maintenance units
- Page layout options: configurator supports toolbar-on-top / content-below and other layout patterns; lays down placeholder dashboards to visualize the structure immediately
- Auto-generated assemblies: configurator creates a service factory and uncomments the selected services (component service, dashboard service) with starter code to hint at usage patterns
- SPK naming conventions: prefix_MaintenanceUnit_ComponentName pattern enforced throughout — CV_ (cube view), CVC_ (cube view component), CMB_ (combo box), LBL_ (label), Param_ (parameter)
- Dashboard structure: a main dashboard serves as the entry point linked into Genesis; subordinate dashboards (toolbar, content) are embedded within it
- Cube view creation: setting up POV, defining from/to scenario columns, adding income statement account rows, and referencing a parameter for dynamic scenario selection
- Parameter syntax: |!ParamName!| when referenced in a cube view field; just the parameter name (no delimiters) when set as a bound parameter on a combo box
- Member list parameters: pulling a dynamic list of all base scenarios from the cube to populate a combo box dropdown
- Combo box configuration: binding a parameter, setting a refresh target dashboard (the content dashboard) so the cube view updates when the selection changes
- Formatting parameters: using literal value parameters to centrally control font, size, bold, height, and width for labels and combo boxes — one change updates all instances
- Dashboard composition: horizontal stack panel for the toolbar row (label + combo box side by side); horizontal uniform panel for the content area (single cube view component)
- Iterative development: preview dashboards at each step; configurator output is a starting scaffold — rename, remove, or modify anything as the solution evolves
- IP protection: code submitted to OneStream for Solution Exchange review is kept confidential; only a small team reviews submissions
- Series continues: Part 2 implements the actual data copy logic, with additional episodes extending the application further

