Technical Glossary
Core Concepts
Gateway
The central server application in Ignition that manages projects, modules, and connections.
The Gateway hosts Perspective sessions and serves components to clients.
public class ExampleGatewayHook extends AbstractGatewayModuleHook {
@Override
public void startup() {
// Gateway initialization code
}
}
Designer
The application used to create and configure Ignition projects, including Perspective views.
The Designer provides a component palette and property editor for configuring components.
public class ExampleDesignerHook extends AbstractDesignerModuleHook {
@Override
public void startup() {
// Designer initialization code
}
}
Component
A reusable UI element in Perspective, built with React and TypeScript.
export class MyComponent extends Component<MyComponentProps> {
render() {
return <div>{this.props.text}</div>;
}
}
Module Structure
MODL File
The packaged module format used by Ignition for distribution.
Scope
Defines where code runs: Gateway (G), Designer (D), or Client (C).
projectScopes.putAll(mapOf(
":gateway" to "G",
":designer" to "D",
":common" to "GD"
))
Hook
A Java class that initializes and manages module functionality within a specific scope.
Development Tools
Gradle
Build automation tool used for compiling code and packaging modules.
./gradlew build deployModl
Webpack
Module bundler for JavaScript applications, used to compile frontend assets.
module.exports = {
entry: "./src/index.ts",
output: {
filename: "bundle.js",
},
};
TypeScript
A typed superset of JavaScript used for component development.
interface MyProps {
text: string;
onClick?: () => void;
}
Component Architecture
Component Meta
Metadata class that describes a component's configuration and behavior.
export class MyComponentMeta implements ComponentMeta {
getComponentType(): string {
return "example.mycomponent";
}
}
Props
Properties that configure a component's behavior and appearance.
interface ButtonProps {
text: string;
onClick?: () => void;
style?: React.CSSProperties;
}
Component Descriptor
Java class that defines a component's capabilities and configuration.
public static final ComponentDescriptor DESCRIPTOR = ComponentDescriptorImpl
.ComponentBuilder.newBuilder()
.setId(COMPONENT_ID)
.setName(COMPONENT_NAME)
.build();
Resource Management
Browser Resource
A web resource (JS/CSS) served to the client's browser.
new BrowserResource(
"example-js",
"/res/example/bundle.js",
BrowserResource.ResourceType.JS
)
Resource Mounting
Process of making resources available to the web browser from the Gateway.
Development Environment
Docker
Platform used for creating consistent development environments.
version: "3.8"
services:
gateway:
image: inductiveautomation/ignition:8.1.34
Hot Reload
Development feature that updates components without full rebuilds.
npm run watch
Version Control
Version Catalog
Gradle feature for centralizing dependency versions.
[versions]
ignition = "8.1.34"
[libraries]
ignition-common = { module = "com.inductiveautomation.ignitionsdk:ignition-common", version.ref = "ignition" }
Module Version
The semantic version number of your module.
allprojects {
version = "1.0.0"
}
Testing & Debugging
External Debugger
Tool for debugging Perspective components in Designer.
Access via Tools > Launch Perspective... > External Debugger
Console Logging
Method for debugging components during development.
console.log("Component mounted:", this.props);
console.error("Error in component:", error);
Security
Module Signing
Process of digitally signing modules for verification.
keytool -genkeypair -alias mymodule -keystore keystore.jks
Certificate
Digital certificate used for signing modules.
Keep certificates and private keys secure and never commit them to version control.
Additional Resources
Common Abbreviations
- SDK: Software Development Kit
- API: Application Programming Interface
- UI: User Interface
- CSS: Cascading Style Sheets
- JSON: JavaScript Object Notation
- JDK: Java Development Kit
- NPM: Node Package Manager
Additional Terms
Want to suggest a term for this glossary? Submit an issue with the label documentation
.