Files
BAT/exchangeResources/Exchange+Resources+Style+Guide.md
2026-09-15 13:06:45 -05:00

47 KiB
Raw Blame History

Quick Reference

Perspective Vision
View / Window Nam es*
View Name
Window Name
Template Names* Template Name
Properties propertyName propertyName
Viliti Component Names ComponentName ComponentName
suazaon Page Names page-name
Fonts Use font defaults Use font defaults
Theming Built-In Theme Colors
Style Class style-class
Resource Str ucture exchange// - resourc
Exchange// - resourc
es that start lowercase
es that start uppercase
Project N ames project-name
Project Project Ti tles Project Title
Tags / UDTs Folders a nd Tag Names Exchange/ResourceName/TagFolder/Ta
Exchange/Resource Name/Tag Folder/T
gName or
ag Name
Named Query Na mes* Query Name
Queries Paramete r Names parameterName
Tabs v.s. Spaces Tabs
Project Li brary exchange.folder.script
exchange.folderName.scriptName
Variable Names variableName
Function Names functionName
Python Class Na mes ClassName
Single-Lin e Comments # Single-Line Comment
Multi-Line Comments # Multi-Line
# Comments
Single Lin e Doc Strings """Single-Line Documentation String."""
Multi-Line Doc Strings Googles Python Style Guide
Other co de style choices PEP-8
Table Na mes ex__table _name
Database ID Colum n id

OG tgritiortet

2

VERSION 1.1.0

Foreign Key Column Name foreign_table_name_id
Column Names column_name
Alarm
i
Names and Folders* Exchange/Resource Name/Alarm Pipeline
Notification
Pipelines
Custom Properties propertyName
Names and Folders* Exchange/Resource Name/SFC Name
SFCs Chart Parameters parameterName
Block Names BlockName
Names and Folders* Exchange/Resource Name/New Group
SQL Bridge Item Names* Item Name
Names and Folders* Exchange/Resource Name/New Report
Reports Parameter Names ItemName
Component Names ComponentName
WebDev Names and Folders exchange/resource-name/example-resource
Image Mana gement exchange/resource-name/image-name.jpg
Translations word
(single-word translations)
_translation_phrase
(multi-word translations)

*Top level resources may use Title Case or PascalCase

OG tgritiortet

3

VERSION 1.1.0

Table of Contents

Table of Contents 4
Ignition Exchange Best Practices 5
General Guidance 5
Project Browser Resource Structure 5
Variable / Data Storage 6
Naming Conventions 7
Projects 7
Perspective 7
Tags 9
Vision 10
Code 11
Database 14
Named Queries 15
Alarm Notification Pipelines 16
Sequential Function Charts (SFCs) 16
SQL Bridge (Transaction Groups) 17
Reports 18
Web Development Module (WebDev) 19
Miscellaneous Designer Tools 20
Before You Upload to the Exchange 22
Things to check for: 22
Check the project export 22
Include the tags 22
Dont forget database backups 22
Take notes of the steps taken when checking your project export 22
Uploading to the Exchange 23
Overview Section 23
Package Section 26
Helpful Notes 29

i tive 300.266.7798 rf bed ,/
OU Ignition.

4

VERSION 1.1.0

Ignition Exchange Best Practices

When developing Exchange Resources, following the styles outlined below will help with consistency of naming conventions.

Having resources conform to these standards helps make resources easier to understand, explore, implement, and upgrade. These best practices should be adhered to unless it is not possible for the resource in question. We encourage you to follow the naming conventions outlined here, however these conventions are not required. Consistent naming conventions are critical, regardless of what naming conventions you ultimately use .

General Guidance

Project Browser Resource Structure

exchange// - resources that start lowercase Exchange// - resources that start uppercase

Views, Styles, Scripts, etc. must all be contained within an appropriately named folder. This allows easy imports into existing projects, where those project resources wont overlap, interfere, or overwrite existing parts of a users project. It also allows for easy updates to Exchange resources for users when a new version is released. Look below to see which resource categories should start lowercase and which should start uppercase.

Project Browser ax
a allly
>- fim Exchange
~ && Sequential Function Charts
> fam Exchange
~ Bi scripting
& Gateway Events
~~ f& Project Library
> {@ exchange
~ @ Perspective
& Session Events
~ i Styles
> fmm exchange
~ Wi Views
> fam Exchange

o
2g Transaction Groups
> iam Exchange
& Client events
~ Bwi
_
> mm Exchange
-
y fo Templates
>i Exchange
~ & Named Queries
> fm Exchange
~ B Reports
> jam Exchange
~ @ Web Dev
b+ exchange

OF automationinductive — www.inductiveautomation.com8002667798 |gnitionTh AY e/

5

VERSION 1.1.0

Variable / Data Storage

Temporary Client / Session Variables

View / Window Properties

system.util.getGlobals()['exchange']['resourceName']['clientId']

Temporary Gateway Variables (Persists Until Gateway Restart)

system.util.getGlobals()['exchange']['resourceName']

Long Term Storage

Database Tables

Avoid

Perspective Session Properties Vision Client Tags

Variables that are only expected to be used by a single client / session can often be stored in properties on views or windows. For items that need to be stored even when the view or window isnt shown anymore, the globals dictionary at system.util.getGlobals() can be a great place to store these things. Data, objects, or variables intended to be used over multiple sessions can be stored in globals as well.

Although projects will often use Perspective session properties or Vision client tags for this type of storage, doing this for an Exchange resource limits the ability to import your resource into another project. Using just the variables suggested here will help ensure that importing your resource will be smooth when someone wants to use it in a separate project.

A scoping note on system.util.getGlobals():

Vision: In a Vision client, this is a dictionary inside the client, and theres a separate dictionary for each client. For scripts running in the client scope, theyll access the client globals dictionary. For scripts running in the Gateway scope, itll access the shared Gateway globals dictionary.

Perspective: the globals dictionary is always the shared Gateway globals dictionary. The same data is available from the Gateway scope and from sessions.

i tive 300.266.7798 rf bed ,/
OU Ignition.

6

VERSION 1.1.0

Naming Conventions

Consistent naming helps with projects feeling cohesive, and can also help to easily identify what type of object is being used just by looking at its name for certain resources.

Projects

Project Names

project-name

Starting in Ignition 8.1.11, these should be lowercase and use dashes for multi-word names to be URL-friendly. Project names should only include letters, numbers, hyphens, and underscores. Please do not append the version number to the end of the project name, the version number can be managed through the Exchange during the upload process.

Project Titles

Project Title

These should be Human-friendly, with capitals and spaces as appropriate.

Perspective

View Names

View Name or ViewName

Views can either be Title Case or PascalCase.. This gives view names an easy to read format.

Properties

propertyName

These should be camelCase, starting with a lowercase letter. This matches the style of the built-in properties on Perspective components.

View Properties

params.publicProperty

custom.privateProperty

For embedded views, put any property thats intended to be used to configure the view as a property in the param category. Put properties that you create for internal use inside the view itself as a property in the custom category. This separation helps make it clearer

i tive 300.266.7798 rf bed ,/
OU Ignition.

7

VERSION 1.1.0

which properties will just be used internally in the view and which are intended to be settings for the view.

Component Names

ComponentName

These should be PascalCase starting with a capital letter and capitalizing the first letter of each word. This provides consistency with the default component names.

Page Names

page-name

These should be lowercase and use dashes for multi-word names. This puts them in a format thats URL-friendly.

Message Handlers

exchange.resourceName.handlerName

or exchange.resourceName.viewName.handlerName

Unique message handler names prevent collision with existing handlers. Using exhange.resourceName as a naming convention will identify the resource in console logs as well as facilitate unique naming. This is a recommendation and not a requirement for publishing a resource on the Exchange.

Fonts

Font sizes should match the default font sizes of most components, or take advantage of styling as appropriate. Matching defaults makes the resource fit stylistically inside projects that are using Ignitions defaults.

Theming

Supporting themes is optional, but is a nice feature for users of your resource. When supporting theming, set colors to appropriate theme colors so Ignitions theming can change the colors displayed as different themes are selected. Refer to the Ignition documentation for Built-In Theme Colors.

Style Classes

style-class

This should be lowercase with dashes for multi-word names. Style class naming and hierarchy should match the hierarchy of the Perspective views they belong to. If style class is used across multiple views, place the style class at the topmost folder that

i tive 300.266.7798 rf bed ,/
OU Ignition.

8

VERSION 1.1.0

encompasses all views using it. If the style class is exclusively used in one view, create a folder named after the view name and place the style class within it. (See picture below for an example.)

@ Alarm Notification Pipelines
a Sequential Function Charts
> B scripting
~ © Perspective
& Session Events
~ fe Styles
~ fmm exchange
~ fam resource-name
~ fam another-view.name
«® only-used-in-another-view-name
> fm viewname
«® only-used-in-view-name
(® used-in-multiple-views
~ &% Views
~ fam Exchange
~ fam ResourceName
@ AnotherViewName
@ ViewName
Qy Transaction Groups
> @vision Le
B named Queries
Reports
@ web Dev

Tags

For tag names and folders, you can use either PascalCase or Title Case. Its nice that Ignition supports spaces in tag names and folders, and you may use this to your advantage to make your tags and tag folders more readable. However, you may find PascalCase to be a neater option for tag names. This structure also applies to UDT definitions.

Note that spaces in tag names may lead to property names with spaces specifically when using UDT bindings in Perspective. The designer will notify of this as non-standard, but doesnt degrade performance or affect clients in any way.

Tag Folders and Names

Exchange/ResourceName/TagFolder/TagName

or

Exchange/ResourceName/Tag Folder/Tag Name

inductive 8002667798 Th AY /
OU Ignition.

9

VERSION 1.1.0

Vision

Window Names

Window Name or WindowName

Window names can be either Title Case or PascalCase.

Template Names

Template Name or TemplateName

As with window names, template names can be either Title Case or PascalCase.

Properties

propertyName

These should be camelCase, starting with a lowercase letter. This matches the style of the built-in parameters on Perspective components.

Component Names

ComponentName

These should be PascalCase, with a capital letter and capitalizing the first letter of each word. This provides consistency with View Names and with Vision Component Names.

ProjectBronser a-x
O Fite a
£9) Alarm Notification Pipelines
1, Sequential Function Charts
> Bi scripting
> @ Perspective
im Transaction Groups
> © vision
& client Everts
+ Biwindows
~ fam Exchange
~ fam Resource Name
Another window
Ci mainwindow ©
> €3 Templates
~ fam Exchange
~ fam Resource Name
fam Another Window
> fam Main window
#€3 Template For Main Window
€3 General Template For Multiple Windows
3 Named Queries
& repors

inductive — 8002667798 | iti “ /
automation — www.inductiveautomation.com gnition e

10

VERSION 1.1.0

Code

Having good names for variables, functions, and consistency with white space is important for readability and maintainability of code.

Tabs v.s. Spaces

Ignitions editor uses tabs when the tab key is pressed. Therefore, tabs should be used for consistency, compatibility with code from other Ignition users, and maintainability.

Project Library

exchange.folder.script

exchange.folderName.scriptName

Scripts and folders in the project library should be all lowercase, and should be single words where possible.

Variable Names

variableName

These should be camelCase, starting with a lowercase letter. This is the style used in the Ignition user manual, to have consistency with property names. Note that this differs from PEP-8. Variable names that are being used to pass data to Ignitions API functions should match the names of the arguments in functions where it makes sense. For example, if youre defining a variable to pass to startDate in a function, call your variable startDate. Prefixing with another name may also make sense depending on your application, like processStartDate.

Function Names

functionName

These should be camelCase, starting with a lowercase letter. This is the style used in the Ignition user manual, to have consistency with Java method name conventions. Note that this differs from PEP-8.

Class Names

ClassName

CamelCase starting with an uppercase letter.

i tive 300.266.7798 rf bed ,/
OU Ignition.

11

VERSION 1.1.0

Single-Line Comments

# Single-Line Comment

Comments should start with a # followed by a space before adding the comment. Single-line comments should be placed one line above the code being explained.

Multi-Line Comments

# Multi-Line

# Comments

Each line should start with a # followed by a space to line up the starting word of each line.

Single-Line Documentation Strings

"""Single-Line Documentation String."""

Documentation strings are used for the first statement in functions, classes, and methods. These should appear after the def line, have one additional indent from the def line, and be wrapped in triple double-quotes on the same line as the comment itself. Each sentence should be terminated by either a period, question mark, or exclamation point.

Multi-Line Documentation Strings

"" "Multi-Line Documentation String.

Some Description.

Args, Returns, or Raises:

A description of what is returned.

Example: {foo: bar}

"""

Following the same guidelines as single line documentation strings, the main difference is the format (i.e., listing arguments, return format). Each description or summary line should be terminated by a period, question mark, or exclamation point. When writing more in the same comment block, there should be a blank line between the two descriptions. Each following line after the first, should start at the same indent spacing as the first quote in the first line. Each args, returns, or raises section title should end with a colon and the following description should be indented with tabs. Refer to Googles Python Style Guide for more examples.

i tive 300.266.7798 rf bed ,/
OU Ignition.

12

VERSION 1.1.0

Beginning with Ignition 8.1.32, custom project script functions that have docstrings defined in this manner are displayed via Ignitions autocomplete.

Line breaks and other code style choices

For everything other than the items listed above, refer to PEP-8. A number of naming conventions in Ignition match PEP-8, and a number are different (like Variable Names and Function Names). When a choice isnt covered in this style guide, use PEP-8 as a fallback reference.

eee B= % exchange. resource nane. script
- 2 | selass classname: ) fF © classine
(®) Nar Neicaton Pipcines 2° *"Single-Line Document Example explaining Classtane.**
> fnctiontnclass
~ 2,Biseriing* Sequential Funcion chars 345 dot funetdontnclass(self1 Singie-Line coment explaining the Line of code below it functéonane
Ei Gateway Evers 6 print Hello world")
~ Bi Project ubrary 4
~ fa© exchangeresmuce ame ioef Functiontne(argueentOne,““"Wults-Line DocunentationargumentTwo)String
SSM srocner socuentation coment that
~ @ aPerspecvej Session Everts u3513, Arsewraps to another Tine
> bs soles 16 sxoumentOne: A boolean axsinent
» Views v7 SxourentTwo: Another boolean azgunent.
i Transacton Grou= 198 eturs
+ @vision cy Returns either True or False if the two argurents are both Trve,
» Bi named queries a
B reports 22 Classtane().functiontnctass(
B
26 Af srgumentone and argunenttwo:
Dretum True
22 alee
29” return False
2”

Database

Some database systems are case sensitive and some do not allow upper case in table or column names by default. The following standards will ensure consistent naming regardless of database platform. In general, use snake_case for naming all database objects. This means all lowercase with underscores between words for human readability. Hyphens or dashes are not accepted as names by all database platforms. Avoid numbers, sql keywords and special characters in names.

Schema Names

ex_resource_name

Schema names should start with ex followed by the Exchange Resource name to avoid sql import/create conflicts in pre-existing schemas.

; s .
Ce Ignition /
automation — www.inductiveautomation.com by inductive automation e

13

VERSION 1.1.0

Table Names

ex_table_name (ex_cm_contacts for example) Table names should start with "ex" followed by the Exchange Resource's abbreviated project name to avoid sql import/create conflicts in pre-existing schemas.

ID Column

id

First auto-increment primary key column in all tables should be “id”. Being a primary key also allows Ignitions database query browser to support the table fully, allowing users to edit fields with Ignitions built-in tools. A consistent name for the primary key in all tables will aid in creating reusable components.

Foreign Key Column

foreign_table_name_id

Foreign key column names should be prefixed with the table name that the foreign key is referencing followed by “_id”. Thus making it easy to understand what table the foreign key ID is referencing.

Column Names

column_name

Use lowercase table names with no numbers or spaces.General Recommendations Stay consistent with column and table names. For example, do not use “order_no” for a column in one table and “order_number” in another table or “cust_number” in one place and “customer_number” in another.

err | Table Name: |my_table Schema: test
gr Charset/Colation: [Defaulth v] [DefauitCo ©] Engine: {innoDa v]
Column Name Datatype PK NN UQ B UN Z AI G__ Defaul
vid INT 4MHUOoDooorDa
> column_a VARCHAR(45) OQodcooonouod
> column_b VARCHAR(45) Ooudcdoaoogod
© column_x VARCHAR(45) Ooodgoangaodag
> column_y INT OQoOoOoodgonvgunu ug
oooao00n0odao gd

Tay inductive oe cnson Ignition

14

VERSION 1.1.0

Named Queries

Query Names and Folders

Query Name or QueryName

Named queries can be either Title Case or PascalCase.

Parameter Names

parameterName

Use camelCase, starting with a lowercase letter. These are often used in scripts and component properties, so matching Python variable names and component property name convention makes sense.

Project Browser ax
a a Exchange/ResourceName/QueryName
@ Alarm Notification Pipelines % Settings | Authoring | © Testing
4 Sequential Function Charts Database Connection Query Type
> G scripting + S| Query
> @ Perspective
8 Transaction Groups [yrameters
> © Vision Type Name Data Type +
~ B Named Queries value myValueX String 8
~ fmm Exchange Value myValueY Inta
PP Cercenare ~Reportsfam ResourceName |
@ web Dev
Query
1 SELECT column_a, column_b
2 FROM my_table
3 WHERE column_x = :myValueX
4 AND column_y = :myValueY
5

Alarm Notification Pipelines

Pipeline Names and Folders

Exchange/Resource Name/Alarm Pipeline

or

Exchange/ResourceName/AlarmPipeline

Alarm pipeline names can be either Title Case or PascalCase.

inductive — 800.2667798 | iti \ /
RICMELG | Seneca gnition.

15

VERSION 1.1.0

Custom Properties

propertyName

Use camelCase, starting with a lowercase letter. This matches the convention used in

built-in properties when accessed through Alarm Pipelines in expression or script blocks.

Project Browser Bl _ X Pipeline Blocks
OF A
~~ @) Alarm Notification Pipelines r
~ fam Exchange
PT Catrreinenae #4~Sequentialfam ResourceName Function Charts | Is itd Tapo 0
> Bi scripting pi seerrovery[E
> @ Perspective linus
Tag Browser ax
+Q CS | defauit vie

Sequential Function Charts (SFCs)

SFC Names and Folders

Exchange/Resource Name/SFC Name

or

Exchange/ResourceName/SFCName

SFC names and folders can be either Title Case or PascalCase.

Chart Parameter Names

parameterName

Use camelCase, starting with a lowercase letter. These are often used in scripts and component properties, so matching Python variable names and component property name convention makes sense.

SFC Block Names

BlockNames

Use PascalCase, starting with a capital letter and capitalizing the first letter of each word. Keep block names short and concise and avoid using multiple word names when possible.

OF inductiveautomation —— 8002667798 www.inductiveautomation.com | gnitioniti “ e/

16

VERSION 1.1.0

Project reer ax
Q 4A
~ @ Alarm Notification Pipelines 7 ; 7
fam Exchange
> fm ResourceName ®
~~ ¢y Sequential Function Charts
~ fam ResourceName
| a SFCName 2 BlockName
> EB scripting
Tag Browser+- Q S defautt avesvii |, >
Tags UDT Definitions 4
Taa Value

SQL Bridge (Transaction Groups)

Transaction Group Names and Folders

Exchange/Resource Name/New Group

or

Exchange/ResourceName/NewGroup

Transaction group names and folders can be either Title Case or PascalCase.

Item Names

Item Name or ItemName

Item names can be either Title Case or PascalCase.

Project ronser ax
a A Transaction Group > Enabled © Disabled
> . Execution Disabled
@ Alarm Notification Pipelines
> &% Sequential Function charts eee
» scripting ItemS Name SoureeV... | Latched... | Mode Target Name DataType Properties
> @ Perspective ® OPCTagitem Item NAN NAN UseUse groupsgroup's modemode Read-onlyOPC_Item StringString
+ 2 Transaction Groups z
[]> ©~ ~fapVisionCaltamcocenfapExchange Resource Name | unrItemAbays NameExpression Items SourceValueignore trigger (®) Latched Value | TargetName Data Type Properties i
BB Named queries Friggered Expression Items
Reports Tem Name. Source Value | Latched Value | Target Name Data Type Properties
© Expression Item NA NA Read-only ined

inductive 2002667798 | iti /
Nee Soman gnitions
Dy inductive automation

17

VERSION 1.1.0

Reports

Report Names and Folders

Exchange/Resource Name/New Report or

Exchange/ResourceName/NewReport

Report names can be either Title Case or PascalCase.

Parameter Names

ItemName

Report parameters are uppercase with no spaces for multi-worded names. This format matches the default naming convention when adding new parameters.

Component Names

ComponentName

Component names should be PascalCase, starting with a capital letter and capitalizing the first letter of each word.

a al oy
> aa Sequential Function Charts,
> Bscrtie L
+ @ respecte
G Session Events .
+ Be+ Viewste tare .EB 7
+ menrnnane
@ Anotherview'iame
+ Dviewvame
+ Broct @ = 4

Web Development Module (WebDev)

Source Names and Folders

exchange/resource-name/example-resource

Web Dev should be lowercase with dashes for multiple words. This format ensures that referencing the resource is web friendly.

inductive — 800.2667798 | iti \ /
automation — www.inductiveautomation.com gnition e

18

VERSION 1.1.0

Poet rower ax
a TA MtPuenos dose +) EQerbied (itera TPS Ree eraton .
> @) Alarm Notcabon peines def doGet~ request, session)
»> dyB Sequenvalscripting ancton chars Respondusing anytoofantheincomingfollowingHTTPkeysrequest. Formlate your response as a dictionary
> @ Perspective hte HTML source as a string
»» @vsionSj Tansacton Groups son A python dictionary sich will be encoded as application/json data
B named queries ile A file path to send as the response
» G reports “bytes” A byte[] to send back. Mime type will be application/octet-stream
> @weboev Af not specified
7 moctorae
Vm roacecune esponse Any Any 3 type of f plainplain texttext response
contentType* The mine type of the response. Needed only if ambiguous
Aagunents
Tequest: A dictionary with information about the inconing web request
context: A reference to the Gateway's context object
data: The data on the zequest. If the content type 45 application/}son,
val be a Python structure (list or dictionary). If not, will either be
headersPlain(dict):textAvalues dictionaryor a rawwerebytereturnedof array.headerfor: valuethe sanepairs.header,If multiplevalues will be in a tuple.
parans (dict): A dictionary of URL paroneters. If multiple values were
returmed for the sane paraneter, values will be in a tuple
xenainingPath (stz): The xenainder of the URL after this resource
renotendor (str): Returns the IP adaress of the client.
renoteliost (stx): Returns the fully qualified nane of the client
schene (Stz): Retuans the nane of the schene used to make this request
de. “http or netps
servietRequest: The underlying Java HttpServletRequest object
ServletResponse: The underlying Java HttpServletResponse object.
session: A dictionary that will be persistent across multiple requests
ron the sane session. If authentication is required, will have a “user
attribute containing information about the authenticated user, and a
retryAttenpts” attribute with the nusber of attegpts nade
2 retum {"html'; <bodjoHello World /body>")
@ crampleresource x

Loggers

Logger names should use dot separation to create a logging hierarchy, indicating where in the project the logger is used. To match the convention of other loggers used in the Ignition gateway, any logger name elements preceding the final period should be camelcase, and the logger name at the end should be PascalCase. Keep in mind that only the final logger name is shown on the logs, but a mouseover event will show the entire logger name.

It is recommended that loggers are called via scripts in the Project Library instead of directly on views, which can be difficult to find. In other words, scripts containing loggers should be called from views.

exchange.resourceName.parseData.ConversionError Time Message
EE ConversionError 28,Jun2023 10:32:03, Cannot parse variable to expected type: Str

inductive 800.2667798 | niti n,/
automation — www.inductiveautomation.com g Dy inauctiveI 10automation e

19

VERSION 1.1.0

Logger naming convention

exchange.resourceName.LoggerName

exchange.resourceName.script.scriptName.LoggerName

For projects with a large number of scripts in the project library, it may be appropriate to show an abbreviated path to the script. For instance, if the path to the script is “Exchange/MyResource/Utilities/ParseData”, a useful logger name would be “exchange.resourceName.script.utilities.parseData.ConversionError”

Miscellaneous Designer Tools

Image Management

exchange/resource-name/image-name.jpg

Images uploaded using the Image Management should be uploaded under a folder hierarchy that starts with a folder named "exchange" followed by another folder named after the resource name. Folders and image names should be lowercase and use dashes between words. Image names should be meaningful and accurately represent the image.

ll Image Management - o x
a@aciaQ@ @iF m®
Current Folder _exchange/resource-name/
e
ignition-ic..
Q Tip: You can drag images and folders into this window for easy uploading.

Translation Manager

word (single-word translations)

_translation_phrase (multi-word translations)

If the translation key is a single word, the key should match the word being translated. If translating a group of text, start the key with an underscore and replace spaces in the key with underscores.

inductive 8002667798 | iti ,/
AULoMatION _wmcntreetomaon.com gnition.
by indetve automation

20

VERSION 1.1.0

Trandlation Manager 5x
Languages Translation Terms Qu
(All) + Key English (Alternate) Spanish +
English | @® _translation_phrase This is a multi-word text translation. Esta es una traduccion de texto de varias palabras. |»
[Spanish Dm word word palabra
a
a
*

F eye
inductive 8002667798 | nition: /
automation — wwwanductiveautomation.com g by indetve automation e

21

VERSION 1.1.0

Before You Upload to the Exchange

When your resource is finalized, there are a few steps that should be taken before uploading the resource to the Exchange. The purpose of checking your own resource is to make the process as smooth as possible and get your resource published on the Exchange in a timely manner. Following the steps below will insure this and help mitigate uploading incomplete or broken resources which will result in the resource being rejected until the issues are resolved.

Things to check for:

Check the project export

If the resource to be uploaded is a project export, check that everything that needs to be included in the project was exported correctly. This can be done by importing the exported project into a brand new project and verifying that the resources works as expected.

Include the tags

Does the resource require tags and/or user defined tags (UDTs)? If the resource requires tags, make sure to export the necessary tags and/or UDTs. Then follow the same procedure as Check the project export and make sure all the tags needed in the project are included in the tag export.

Dont forget database backups

Does the resource reference a predefined table structure or include example data? Include the necessary database dumps when uploading to the Exchange and make sure to state the database vendor (i.e., MySQL, MSSQL, PostgreSQL, etc.) being used in resource description and custom installation instruction step when uploading to the Exchange.

Take notes of the steps taken when checking your project export

When uploading your resource to the Exchange, there will be a section for Custom Installation Instructions. This is where you will give step-by-step instructions on how to set-up your resource to ensure that users get started correctly. It is important to understand that the Ignition experience level of users downloading resources from the Exchange vary from beginners to intermediate so it is important to be as clear and concise as possible.

i tive 300.266.7798 rf bed ,/
OU Ignition.

22

VERSION 1.1.0

Uploading to the Exchange

The following steps go over best practices for uploading a project to the Exchange. For each section of the Exchange upload process, please fill out the following to the best of your ability.

Overview Section

Visibility

Unless the project is a private project and not intended for public use, it is recommended that the visibility of the project is set to Public (Visible to everyone).

Visibility Public (Visible to everyone) ~
publish

Title

The title should be short, concise, and identify the functionality and/or purpose of the project being uploaded. In most cases, if this is a project being uploaded, the title can match the project title given for the project. The resource title should be formatted in Title Case.

Title Perspective User Management fa]

Tagline

The tagline is a short description that accompanies the title to give users a better general understanding of the functionality of the project. This should be a one sentence, short description of the project and should not match the title.

Tagline User Management tool for Perspective projects

Description

The description expands upon the tagline to give a more detailed explanation of the project, how it is meant to be used, what types of people would benefit from this resource, etc.

inductive — 200.2667798 laniti \ /
automation — wwinductiveautomation.com gnitione

23

VERSION 1.1.0

Description | Bo J 32 i=
This Perspective User Management tool allows users to add, edit, and remove users and roles
from the Gateway.
c a detailed description of your resource. Include information likehow you
envision it being used, what types of people might benefit from this package, any
relevant industries, etc

Resource Type

Choose the best resource type from the drop down that best describes the type of resource that is being uploaded. Then choose a skill level that best fits the complexity of installation and use.

Resource Perspective View Beginner +
Type
Choose a primary resource type that Choose a skill level that best describes
best describes your resourc the complexity of installation and use

Background Image

The background image is an optional step for adding a color and design to the background of the Exchange resource card and page.

Backgroundvena © 960035930
ustomize the background of your resource with a colorful desi

Category

The category section is used for filtering Exchange resources. In order to ensure that the resource being uploaded gets proper exposure on the Exchange, select up to 3 categories that best match the resource provided.

inductive — 8002667798 | iti “ /
Nee Soman gnitions
by inductive automation

24

VERSION 1.1.0

Category Alarming Analytics Connectivity Dashboard
Diagnostics Edge Computing Enterprise HMI
vortacs HOT/MQTT MES Maintenance
Mapping/GIs Mobile Monitoring
Reporting SCADA Scripting Security
Simulation Trending/Charting Utility
Resources are displayed by category. Select up to
3 categories.

Contact the Developer

Enabling the Contact the Developer functionality allows users to directly email the resource developer with any questions or concerns about the resource. There are two options to choose from. The first option being “Let contributors contact me about all my exchange resources”, will allow all visible resources uploaded in your account to be available for contact. The second option “Let contributors contact me about this resource”,will only enable this feature for the resource that is currently being uploaded.

  • Note : Your email address will not be shown to users that are attempting to contact you. If someone chooses to contact the developer, you will receive an email with the question and the users email address. You will then have the ability to contact the user directly.

Contactthe —_Let contributors contact me about all my exchange resources ©
Developer
Let contributors contact me about this resource ©
This feature allows contributors to contact you via email directly from the resource page

Tags

Tags are another way for the resource to gain exposure on the Exchange. With the ability to create up to 10 tags, these tags will help the resource show up in the results when those tags are used as keywords in the search bar.

inductive 8002667798 | iti AY /
automation — www.inductiveautomation.com gnitions

25

VERSION 1.1.0

Tags
: Tag: ke y s( mo arc Cc ul 10 ta
User Management x Users x

Images & Screenshots

Images and Screenshots, though optional, are highly encouraged to be included with the resource. Images, for example project views, give users a better understanding of the project that cannot be explained in the title and description alone.

Images&
Screenshots
@
Drop files here to upload
(up to 10mb)
Or choosea fle

Package Section

The package section is where the resource files will be uploaded and information about Ignition and module requirements are defined.

Version

Unless uploading a subsequent package version, this package version should be Version 1.0.0 and any subsequent updates will be auto-incremented unless specified by the uploader.

Version 1 oO oO

Ignition Platform

The Ignition version should be the minimum version needed in order for the package being uploaded to be installed and run correctly. If unsure, select the Ignition platform version in which the package was developed with.

inductive — 8002667798 | iti “ /
automation — wwwinductiveautomation.com gni Ione

26

VERSION 1.1.0

Ignition Platform 81 * 3 ~
Choose the minimu f Ignition required

Release Tagline

The release tagline summarizes the changes that were made to the package version being uploaded. A title will be needed for the initial release version as well.

Release Tagline _nitial release fa}
Create a short but descriptive tagline to help identify what changes were made in this version.

Release Notes

The release notes give a more detailed explanation of the changes in the package version. Use this area to expand on the release tagline, give more information about the version, and explain how this version will impact the resource. The release version is required even for the initial release version, but may not include as much detail as subsequent version releases of the package.

ReleaseNotes = B J i= 15
Initial release
Listwere madedetailed andreleasehow theynotes willexplainingimpactwhat changedin this version. Think about what improvement
the resource.

Required Modules

If the resource requires any modules to be installed in order for the package to work correctly, select the required modules by expanding the accordion for the Inductive Automation Modules, Cirrus Link Solutions MQTT Modules, and/or Sepasoft, Inc. MES Modules.

Required . .
Modules Inductive Automation Modules Vv
Optio
Cirrus Link Solutions MQTT Modules for Ignition Vv
Sepasoft, Inc. MES Modules for Ignition Vv
Choose any modules that are required when using this resource

inductive 8002667798 | iti AY /
AULoMatION _wmcntreetomaon.com gnition.
by indetve automation

27

VERSION 1.1.0

Maker Edition

Maker Edition is a non-commercial, personal use only version of Ignition which is intended for hobbyists, students, and individuals. If the package being uploaded is intended for Maker Edition or will run in Maker Edition, enabling this option will let users know the package can be installed for their Maker Edition version of Ignition.

Maker Edition Let people know this resource is Maker Edition compatible.
fora This optionis unavailable for resources requiring unsupported Maker Edition modules
Learn more about Ignition Maker Edition™

Other Requirements

If there are other required items that need to be installed for your resource to work they need to be listed in the Other Requirements section. If there are no additional requirements for your resource this field can be left blank.

Other +
Requirementspron List any other extemal or custom requirements as separate line item

Package Files

Upload all files here that will be needed to ensure your project works as expected. This includes your project backup, tag files, etc.

Package Files

Drop files here to upload
(up to 10mb)
Or choose a file
Uploaded files
UserManagement.zip 08.97KB X
Identifying common file types will help to reducethe complexity of installatior

Custom Installation Instructions

Detailed instructions are highly encouraged for resources as they assist the users that download your resource in understanding how to utilize your resource. These instructions

inductive 8002667798 | iti AY /
Nee Soman gnitions
Dy inductive automation

28

VERSION 1.1.0

should include any necessary steps around uploading your resource and any required modules as well as instructions on how to utilize your resource once it is installed.

  • Note: If you already have detailed documentation for your resource please note it here and include the documentation file in the Package File upload.

Custom Installation Instructions Optionc
**Please Note: Managing users and roles outside of the Gateway may allow others to exploit the
security of your Gateway. Please refer to our Ignition Security Hardening Guide on ways you can
secure the Perspective User Management view from being used for malicious reasons.
https: //inductiveautomation.com/resources/article/ignition-security-hardening-guide#step--define-
application-security .
Provide clear and concise documentation to help other people understand how to install yo
files.esource.InstallationThis is onlyinstructionsnecessaryfor knownif you havefile typesselectedwill be “other”automaticallyas your filetypegeneratefor any uploaded

Helpful Notes

  • The Exchange will automatically generate a readme file from the information you have entered in the Resource Description and Custom Installation Instructions during the upload process

  • If publishing your resource in a non-English language we encourage you to include a dropdown that allows your project to be displayed in your native language as well as English. This will increase community access to your project.

  • As shown above, capitalized top level resources can be Title Case or PascalCase. Title Case increases readability, matches the default format from the Ignition Designer when creating new resources, can differentiate the resource name from the sub-resources like component names, and creates files on disk with spaces. PascalCase avoids spaces in filenames on disk, is still fairly readable, matches resource names from sub resources like component names, and is preferred by some Ignition users. Both are acceptable choices.

inductive — 8002667798 | iti “ /
Nee Soman gnitions
by inductive automation

29

VERSION 1.1.0