Bundle Manifests
This would talk about the contents of the package.json
and include information
on the fields that can be present and what they're for. This would also have to
link to the documentation in the other sections as appropriate.
This either needs to talk about dependencies, or we need another page for it; decide when you write this one.
omphalos
The manifest must include an omphalos
key to indicate to the application that
this package is intended to be a bundle.
compatibleRange
- required
"compatibleRange": "~0.7.0",
A standard semver
version range; targets the specific version(s) of Omphalos
that this bundle is intended to work with. If this is not satisfied by the
current version of the app. the bundle won't load.
deps
- optional
"deps": {
"other-bundle": "^1.2.1"
},
A set of key-value pairs that specifies other bundles that must exist and what versions are required. Omphalos DOES NOT install these dependencies, it just ensures that bundles will only load if all of their dependencies are found and load successfully.
extension
- optional
"extension": "my_extension_code/index.js",
If given, this is a relative path to the entry point of server side extension code; this must export the appropriate lifecycle symbols.
panelPath
- optional (defaults to
'panels'
if not specified)
"panelPath": "panels",
When using panels, this specifies the folder inside of the bundle layout that all of the panel files should be relative to.
panels
- optional
"panels": [
{
"file": "panels/sample-panel.html",
"name": "sample-one",
"title": "My sample panel",
"locked": false,
"size": {
"width": 2,
"height": 4,
},
"minSize": {
"width": 2,
"height": 3,
},
"maxSize": {
"width": 4,
"height": 6,
},
"workspace": "initial",
"fullbleed": false,
},
],
If given this specifies the details on all of the panels that this bundle exposes to the dashboard.
file
- required
The HTML file that provides the content for this panel.
name
- required
The internal name for this panel.
title
- required
The title of the dashboard panel that contains this item.
locked
- optional
If true
, this panel can only be moved manually; it will not move if the user
manipulates the panel layout at runtime (it will not move out of the way of
siblings on its own).
size
- required
Specifies the initial dimensions of the panel, in rows and columns.
minSize
- optional
If given, specifies the minimum size that the panel can be sized to.
maxSize
- optional
If given, specifies the maximum size that the panel can be sized to.
workspace
- optional
Specifies the workspace this panel belongs to; all panels in the same workspace are displayed together. Any number of workspaces is possible.
If this key is missing, the panel is assumed to be in a workspace named
Workspace
.
fullbleed
- optional
If true, this panel should fill the entire dashboard. This requires that the panel be in a workspace alone since it is the only thing that can display there.
graphicPath
- optional (defaults to
'graphics'
if not specified)
"graphicsPath": "graphics",
When using graphics, this specifies the folder inside of the bundle layout that all of the graphic files should be relative to.
graphics
- optional
"graphics": [
{
"file": "index.html",
"name": "overlay-one",
"size": {
"width": 1280,
"height": 720,
},
"singleInstance": false
}
]
If given this specifies the details on all of the graphics that this bundle exposes to the dashboard.
file
- required
The HTML file that provides the content for this graphic.
name
- optional
The internal name for this graphic; if this is not given, it will be set the same as the file that represents the overlay.
size
- required
The size of this graphic; this is purely informational and is displayed in the dashboard only.
singleInstance
- optional
If this is set to true
, the system, will only allow a single instance of this
overlay to be served; other attempts will fail.