Defines the extension's entry points and those entry points' properties and capabilities
The outer most structure is a JSON object with the key being the name of the extension. Inside that extension object is a key of modules
. Modules is an object with its keys being all the entry points for the extension.
An extension's entry points are only used for the initial load, once the entry point is loaded it is free to navigate to other URLs within its tecton outlet. If the extension needs to load a different module into the overpanel or navigate to a different extension entirely, it will need to use the showOverpanel or navigateTo capabilities.
An example of an extension's Tecton config is displayed below. It starts with an outer key containing the extension name. Inside this object is the core
indicator, which will be false
for any non-Q2 built extension. Additionally, there will be a modules
key, where this extension's entry points are defined.
You may have as many modules as you like for your extension. However, the convention is to name one of the modules "Main" to enable some default routing characteristics without specifying overrides.
{
"MyBasicExtension": {
"additionalDomains": [
"https://www.yourwebsitedomain.com"
],
"allowDirectives": [
"accelerometer"
],
"configuredOverpanels": {
"MyBasicOverpanel": {
"moduleName": "BasicOverpanel"
"options": {
"fullWidth": True,
"size": "small",
"height": "300px",
"test-id": "my-overpanel"
}
}
},
"configuredSystemVariables": [
"cdnBaseUrl"
],
"core": false,
"requiredUserCapabilities": [
"canWithdraw"
],
"modules": {
"Main": {
"url": "http://www.myextension.com/main.html",
"primary": True,
"navigable": True,
"formPostAuth": True,
"loadingOptions": {
"outlet": {
"classList": [
"foo",
"bar"
],
"style": "font-size: 1.6rem"
},
"loaders": [
{
"type": "skeleton",
"shape": "rectangle",
"row": 1,
"classList": [
"foo",
"baz"
],
"style": "font-style: bold",
"modifiers": "header",
"counts": "3"
}
]
},
"meta": {
"type": {
"shape": "Content",
"context": "None"
}
}
},
"BasicOverpanel": {
"url": "https://www.myextension.com/overpanel.html",
"overpanel": True,
"meta": {
"type": {
"shape": "Content",
"context": "None"
},
"params": {
"categoryId": {
"type": "number",
"replace": True
},
"accountId": {
"type": "string",
"replace": True
}
}
}
}
}
}
}
additionalDomains?: string[]
- An array of supported domains that Tecton could be called from. See Accessing Additional Domains.allowDirectives?: string[]
- An array of browser feature apis available to and used by your extension. See Setup Permissions Policy.configuredOverpanels?: Object
- A dictionary of modules that are configured to be displayed in the overpanel. See Modules as Overpanels.configuredSystemVariables?: string[]
- An array of system variables to make available to the extension. See Accessing Platform Variables.core: boolean
- Whether or not this is an extension authored by Q2.modules: Object
- Where the extension's modules and entry points are defined.requiredUserCapabilities?: string[]
- An array of user rights required for a user to see your feature. See User Capability Requirements.url: string
- The URL of the module that gets loaded into the <iframe>
.primary?: boolean
- Allows you to determine which module should be used by default if a module name is not specified or found when navigateTo
is isNavigable
is invoked.overpanel?: boolean
- Indicates that this module may be rendered in an overpanel. See Modules as Overpanels.navigable?: boolean
- Determines if a module can be navigated to via navigateTo
.formPostAuth?: boolean
- Indicates that authentication is handled via a form POST request from the server.meta?: Object
- An object containing additional information about the module.type: Object
- An object containing information on how the module should be rendered.params?: Object
- A dictionary of parameters that can be passed on to the module. See Passing Params to Modules.loadingOptions?: LoadingOptions
- A set of options that can be used to customize the appearance of the loading state. See Customized Loading States.requiredUserCapabilities?: string[]
- An array of user rights that are required for a user to see your module. See User Capability Requirements.