ignition-api 8.3.6.post1__tar.gz → 8.3.7__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (228) hide show
  1. {ignition_api-8.3.6.post1 → ignition_api-8.3.7}/CHANGELOG.md +16 -0
  2. {ignition_api-8.3.6.post1 → ignition_api-8.3.7}/PKG-INFO +1 -1
  3. {ignition_api-8.3.6.post1 → ignition_api-8.3.7}/setup.cfg +1 -1
  4. {ignition_api-8.3.6.post1 → ignition_api-8.3.7}/src/com/inductiveautomation/factorypmi/application/script/builtin/__init__.py +3 -3
  5. {ignition_api-8.3.6.post1 → ignition_api-8.3.7}/src/com/inductiveautomation/ignition/common/script/abc/__init__.py +19 -4
  6. {ignition_api-8.3.6.post1 → ignition_api-8.3.7}/src/com/inductiveautomation/ignition/common/script/adapters/__init__.py +1 -1
  7. {ignition_api-8.3.6.post1 → ignition_api-8.3.7}/src/com/inductiveautomation/ignition/common/script/builtin/__init__.py +6 -6
  8. {ignition_api-8.3.6.post1 → ignition_api-8.3.7}/src/com/inductiveautomation/ignition/common/script/builtin/http/__init__.py +5 -5
  9. ignition_api-8.3.7/src/com/inductiveautomation/ignition/common/secrets/__init__.py +66 -0
  10. ignition_api-8.3.7/src/com/inductiveautomation/ignition/gateway/secrets/__init__.py +37 -0
  11. {ignition_api-8.3.6.post1 → ignition_api-8.3.7}/src/ignition_api.egg-info/PKG-INFO +1 -1
  12. {ignition_api-8.3.6.post1 → ignition_api-8.3.7}/src/ignition_api.egg-info/SOURCES.txt +3 -0
  13. {ignition_api-8.3.6.post1 → ignition_api-8.3.7}/src/org/python/core/__init__.py +1 -1
  14. {ignition_api-8.3.6.post1 → ignition_api-8.3.7}/src/system/db.py +0 -47
  15. ignition_api-8.3.7/src/system/secrets.py +113 -0
  16. {ignition_api-8.3.6.post1 → ignition_api-8.3.7}/LICENSE +0 -0
  17. {ignition_api-8.3.6.post1 → ignition_api-8.3.7}/MANIFEST.in +0 -0
  18. {ignition_api-8.3.6.post1 → ignition_api-8.3.7}/README.md +0 -0
  19. {ignition_api-8.3.6.post1 → ignition_api-8.3.7}/pyproject.toml +0 -0
  20. {ignition_api-8.3.6.post1 → ignition_api-8.3.7}/setup.py +0 -0
  21. {ignition_api-8.3.6.post1 → ignition_api-8.3.7}/src/ch/__init__.py +0 -0
  22. {ignition_api-8.3.6.post1 → ignition_api-8.3.7}/src/ch/qos/__init__.py +0 -0
  23. {ignition_api-8.3.6.post1 → ignition_api-8.3.7}/src/ch/qos/logback/__init__.py +0 -0
  24. {ignition_api-8.3.6.post1 → ignition_api-8.3.7}/src/ch/qos/logback/classic/__init__.py +0 -0
  25. {ignition_api-8.3.6.post1 → ignition_api-8.3.7}/src/com/__init__.py +0 -0
  26. {ignition_api-8.3.6.post1 → ignition_api-8.3.7}/src/com/codahale/__init__.py +0 -0
  27. {ignition_api-8.3.6.post1 → ignition_api-8.3.7}/src/com/codahale/metrics/__init__.py +0 -0
  28. {ignition_api-8.3.6.post1 → ignition_api-8.3.7}/src/com/google/__init__.py +0 -0
  29. {ignition_api-8.3.6.post1 → ignition_api-8.3.7}/src/com/google/common/__init__.py +0 -0
  30. {ignition_api-8.3.6.post1 → ignition_api-8.3.7}/src/com/google/common/collect/__init__.py +0 -0
  31. {ignition_api-8.3.6.post1 → ignition_api-8.3.7}/src/com/google/common/eventbus/__init__.py +0 -0
  32. {ignition_api-8.3.6.post1 → ignition_api-8.3.7}/src/com/google/common/util/__init__.py +0 -0
  33. {ignition_api-8.3.6.post1 → ignition_api-8.3.7}/src/com/google/common/util/concurrent/__init__.py +0 -0
  34. {ignition_api-8.3.6.post1 → ignition_api-8.3.7}/src/com/inductiveautomation/__init__.py +0 -0
  35. {ignition_api-8.3.6.post1 → ignition_api-8.3.7}/src/com/inductiveautomation/factorypmi/__init__.py +0 -0
  36. {ignition_api-8.3.6.post1 → ignition_api-8.3.7}/src/com/inductiveautomation/factorypmi/application/__init__.py +0 -0
  37. {ignition_api-8.3.6.post1 → ignition_api-8.3.7}/src/com/inductiveautomation/factorypmi/application/binding/__init__.py +0 -0
  38. {ignition_api-8.3.6.post1 → ignition_api-8.3.7}/src/com/inductiveautomation/factorypmi/application/components/__init__.py +0 -0
  39. {ignition_api-8.3.6.post1 → ignition_api-8.3.7}/src/com/inductiveautomation/factorypmi/application/model/__init__.py +0 -0
  40. {ignition_api-8.3.6.post1 → ignition_api-8.3.7}/src/com/inductiveautomation/factorypmi/application/script/__init__.py +0 -0
  41. {ignition_api-8.3.6.post1 → ignition_api-8.3.7}/src/com/inductiveautomation/factorypmi/application/sqltags/__init__.py +0 -0
  42. {ignition_api-8.3.6.post1 → ignition_api-8.3.7}/src/com/inductiveautomation/factorypmi/application/sqltags/project/__init__.py +0 -0
  43. {ignition_api-8.3.6.post1 → ignition_api-8.3.7}/src/com/inductiveautomation/historian/__init__.py +0 -0
  44. {ignition_api-8.3.6.post1 → ignition_api-8.3.7}/src/com/inductiveautomation/historian/common/__init__.py +0 -0
  45. {ignition_api-8.3.6.post1 → ignition_api-8.3.7}/src/com/inductiveautomation/historian/common/model/__init__.py +0 -0
  46. {ignition_api-8.3.6.post1 → ignition_api-8.3.7}/src/com/inductiveautomation/historian/common/model/data/__init__.py +0 -0
  47. {ignition_api-8.3.6.post1 → ignition_api-8.3.7}/src/com/inductiveautomation/ignition/__init__.py +0 -0
  48. {ignition_api-8.3.6.post1 → ignition_api-8.3.7}/src/com/inductiveautomation/ignition/alarming/__init__.py +0 -0
  49. {ignition_api-8.3.6.post1 → ignition_api-8.3.7}/src/com/inductiveautomation/ignition/alarming/common/__init__.py +0 -0
  50. {ignition_api-8.3.6.post1 → ignition_api-8.3.7}/src/com/inductiveautomation/ignition/alarming/common/rosters/__init__.py +0 -0
  51. {ignition_api-8.3.6.post1 → ignition_api-8.3.7}/src/com/inductiveautomation/ignition/client/__init__.py +0 -0
  52. {ignition_api-8.3.6.post1 → ignition_api-8.3.7}/src/com/inductiveautomation/ignition/client/launch/__init__.py +0 -0
  53. {ignition_api-8.3.6.post1 → ignition_api-8.3.7}/src/com/inductiveautomation/ignition/client/model/__init__.py +0 -0
  54. {ignition_api-8.3.6.post1 → ignition_api-8.3.7}/src/com/inductiveautomation/ignition/client/util/__init__.py +0 -0
  55. {ignition_api-8.3.6.post1 → ignition_api-8.3.7}/src/com/inductiveautomation/ignition/client/util/gui/__init__.py +0 -0
  56. {ignition_api-8.3.6.post1 → ignition_api-8.3.7}/src/com/inductiveautomation/ignition/client/util/gui/progress/__init__.py +0 -0
  57. {ignition_api-8.3.6.post1 → ignition_api-8.3.7}/src/com/inductiveautomation/ignition/client/util/gui/scheduling/__init__.py +0 -0
  58. {ignition_api-8.3.6.post1 → ignition_api-8.3.7}/src/com/inductiveautomation/ignition/common/__init__.py +0 -0
  59. {ignition_api-8.3.6.post1 → ignition_api-8.3.7}/src/com/inductiveautomation/ignition/common/alarming/__init__.py +0 -0
  60. {ignition_api-8.3.6.post1 → ignition_api-8.3.7}/src/com/inductiveautomation/ignition/common/alarming/evaluation/__init__.py +0 -0
  61. {ignition_api-8.3.6.post1 → ignition_api-8.3.7}/src/com/inductiveautomation/ignition/common/alarming/query/__init__.py +0 -0
  62. {ignition_api-8.3.6.post1 → ignition_api-8.3.7}/src/com/inductiveautomation/ignition/common/binding/__init__.py +0 -0
  63. {ignition_api-8.3.6.post1 → ignition_api-8.3.7}/src/com/inductiveautomation/ignition/common/browsing/__init__.py +0 -0
  64. {ignition_api-8.3.6.post1 → ignition_api-8.3.7}/src/com/inductiveautomation/ignition/common/config/__init__.py +0 -0
  65. {ignition_api-8.3.6.post1 → ignition_api-8.3.7}/src/com/inductiveautomation/ignition/common/db/__init__.py +0 -0
  66. {ignition_api-8.3.6.post1 → ignition_api-8.3.7}/src/com/inductiveautomation/ignition/common/db/namedquery/__init__.py +0 -0
  67. {ignition_api-8.3.6.post1 → ignition_api-8.3.7}/src/com/inductiveautomation/ignition/common/document/__init__.py +0 -0
  68. {ignition_api-8.3.6.post1 → ignition_api-8.3.7}/src/com/inductiveautomation/ignition/common/execution/__init__.py +0 -0
  69. {ignition_api-8.3.6.post1 → ignition_api-8.3.7}/src/com/inductiveautomation/ignition/common/expressions/__init__.py +0 -0
  70. {ignition_api-8.3.6.post1 → ignition_api-8.3.7}/src/com/inductiveautomation/ignition/common/expressions/functions/__init__.py +0 -0
  71. {ignition_api-8.3.6.post1 → ignition_api-8.3.7}/src/com/inductiveautomation/ignition/common/functional/__init__.py +0 -0
  72. {ignition_api-8.3.6.post1 → ignition_api-8.3.7}/src/com/inductiveautomation/ignition/common/gson/__init__.py +0 -0
  73. {ignition_api-8.3.6.post1 → ignition_api-8.3.7}/src/com/inductiveautomation/ignition/common/gson/reflect/__init__.py +0 -0
  74. {ignition_api-8.3.6.post1 → ignition_api-8.3.7}/src/com/inductiveautomation/ignition/common/gson/stream/__init__.py +0 -0
  75. {ignition_api-8.3.6.post1 → ignition_api-8.3.7}/src/com/inductiveautomation/ignition/common/gui/__init__.py +0 -0
  76. {ignition_api-8.3.6.post1 → ignition_api-8.3.7}/src/com/inductiveautomation/ignition/common/gui/progress/__init__.py +0 -0
  77. {ignition_api-8.3.6.post1 → ignition_api-8.3.7}/src/com/inductiveautomation/ignition/common/i18n/__init__.py +0 -0
  78. {ignition_api-8.3.6.post1 → ignition_api-8.3.7}/src/com/inductiveautomation/ignition/common/i18n/keyboard/__init__.py +0 -0
  79. {ignition_api-8.3.6.post1 → ignition_api-8.3.7}/src/com/inductiveautomation/ignition/common/i18n/translation/__init__.py +0 -0
  80. {ignition_api-8.3.6.post1 → ignition_api-8.3.7}/src/com/inductiveautomation/ignition/common/jsonschema/__init__.py +0 -0
  81. {ignition_api-8.3.6.post1 → ignition_api-8.3.7}/src/com/inductiveautomation/ignition/common/licensing/__init__.py +0 -0
  82. {ignition_api-8.3.6.post1 → ignition_api-8.3.7}/src/com/inductiveautomation/ignition/common/logging/__init__.py +0 -0
  83. {ignition_api-8.3.6.post1 → ignition_api-8.3.7}/src/com/inductiveautomation/ignition/common/messages/__init__.py +0 -0
  84. {ignition_api-8.3.6.post1 → ignition_api-8.3.7}/src/com/inductiveautomation/ignition/common/model/__init__.py +0 -0
  85. {ignition_api-8.3.6.post1 → ignition_api-8.3.7}/src/com/inductiveautomation/ignition/common/model/values/__init__.py +0 -0
  86. {ignition_api-8.3.6.post1 → ignition_api-8.3.7}/src/com/inductiveautomation/ignition/common/modules/__init__.py +0 -0
  87. {ignition_api-8.3.6.post1 → ignition_api-8.3.7}/src/com/inductiveautomation/ignition/common/opc/__init__.py +0 -0
  88. {ignition_api-8.3.6.post1 → ignition_api-8.3.7}/src/com/inductiveautomation/ignition/common/project/__init__.py +0 -0
  89. {ignition_api-8.3.6.post1 → ignition_api-8.3.7}/src/com/inductiveautomation/ignition/common/project/resource/__init__.py +0 -0
  90. {ignition_api-8.3.6.post1 → ignition_api-8.3.7}/src/com/inductiveautomation/ignition/common/script/__init__.py +0 -0
  91. {ignition_api-8.3.6.post1 → ignition_api-8.3.7}/src/com/inductiveautomation/ignition/common/script/builtin/ialabs/__init__.py +0 -0
  92. {ignition_api-8.3.6.post1 → ignition_api-8.3.7}/src/com/inductiveautomation/ignition/common/script/hints/__init__.py +0 -0
  93. {ignition_api-8.3.6.post1 → ignition_api-8.3.7}/src/com/inductiveautomation/ignition/common/script/message/__init__.py +0 -0
  94. {ignition_api-8.3.6.post1 → ignition_api-8.3.7}/src/com/inductiveautomation/ignition/common/sqltags/__init__.py +0 -0
  95. {ignition_api-8.3.6.post1 → ignition_api-8.3.7}/src/com/inductiveautomation/ignition/common/sqltags/history/__init__.py +0 -0
  96. {ignition_api-8.3.6.post1 → ignition_api-8.3.7}/src/com/inductiveautomation/ignition/common/sqltags/history/annotations/__init__.py +0 -0
  97. {ignition_api-8.3.6.post1 → ignition_api-8.3.7}/src/com/inductiveautomation/ignition/common/sqltags/model/__init__.py +0 -0
  98. {ignition_api-8.3.6.post1 → ignition_api-8.3.7}/src/com/inductiveautomation/ignition/common/sqltags/model/types/__init__.py +0 -0
  99. {ignition_api-8.3.6.post1 → ignition_api-8.3.7}/src/com/inductiveautomation/ignition/common/tags/__init__.py +0 -0
  100. {ignition_api-8.3.6.post1 → ignition_api-8.3.7}/src/com/inductiveautomation/ignition/common/tags/config/__init__.py +0 -0
  101. {ignition_api-8.3.6.post1 → ignition_api-8.3.7}/src/com/inductiveautomation/ignition/common/tags/config/types/__init__.py +0 -0
  102. {ignition_api-8.3.6.post1 → ignition_api-8.3.7}/src/com/inductiveautomation/ignition/common/tags/model/__init__.py +0 -0
  103. {ignition_api-8.3.6.post1 → ignition_api-8.3.7}/src/com/inductiveautomation/ignition/common/tags/paths/__init__.py +0 -0
  104. {ignition_api-8.3.6.post1 → ignition_api-8.3.7}/src/com/inductiveautomation/ignition/common/tags/paths/parser/__init__.py +0 -0
  105. {ignition_api-8.3.6.post1 → ignition_api-8.3.7}/src/com/inductiveautomation/ignition/common/tags/tagpaths/__init__.py +0 -0
  106. {ignition_api-8.3.6.post1 → ignition_api-8.3.7}/src/com/inductiveautomation/ignition/common/user/__init__.py +0 -0
  107. {ignition_api-8.3.6.post1 → ignition_api-8.3.7}/src/com/inductiveautomation/ignition/common/user/schedule/__init__.py +0 -0
  108. {ignition_api-8.3.6.post1 → ignition_api-8.3.7}/src/com/inductiveautomation/ignition/common/util/__init__.py +0 -0
  109. {ignition_api-8.3.6.post1 → ignition_api-8.3.7}/src/com/inductiveautomation/ignition/common/xmlserialization/__init__.py +0 -0
  110. {ignition_api-8.3.6.post1 → ignition_api-8.3.7}/src/com/inductiveautomation/ignition/common/xmlserialization/deserialization/__init__.py +0 -0
  111. {ignition_api-8.3.6.post1 → ignition_api-8.3.7}/src/com/inductiveautomation/ignition/common/xmlserialization/encoding/__init__.py +0 -0
  112. {ignition_api-8.3.6.post1 → ignition_api-8.3.7}/src/com/inductiveautomation/ignition/common/xmlserialization/serialization/__init__.py +0 -0
  113. {ignition_api-8.3.6.post1 → ignition_api-8.3.7}/src/com/inductiveautomation/ignition/common/xmlserialization/serialization/equalitydelegates/__init__.py +0 -0
  114. {ignition_api-8.3.6.post1 → ignition_api-8.3.7}/src/com/inductiveautomation/ignition/gateway/__init__.py +0 -0
  115. {ignition_api-8.3.6.post1 → ignition_api-8.3.7}/src/com/inductiveautomation/ignition/gateway/project/__init__.py +0 -0
  116. {ignition_api-8.3.6.post1 → ignition_api-8.3.7}/src/com/inductiveautomation/ignition/modules/__init__.py +0 -0
  117. {ignition_api-8.3.6.post1 → ignition_api-8.3.7}/src/com/inductiveautomation/ignition/modules/serial/__init__.py +0 -0
  118. {ignition_api-8.3.6.post1 → ignition_api-8.3.7}/src/com/inductiveautomation/ignition/modules/serial/scripting/__init__.py +0 -0
  119. {ignition_api-8.3.6.post1 → ignition_api-8.3.7}/src/com/inductiveautomation/opccom/__init__.py +0 -0
  120. {ignition_api-8.3.6.post1 → ignition_api-8.3.7}/src/com/inductiveautomation/opccom/hda/__init__.py +0 -0
  121. {ignition_api-8.3.6.post1 → ignition_api-8.3.7}/src/com/inductiveautomation/perspective/__init__.py +0 -0
  122. {ignition_api-8.3.6.post1 → ignition_api-8.3.7}/src/com/inductiveautomation/perspective/common/__init__.py +0 -0
  123. {ignition_api-8.3.6.post1 → ignition_api-8.3.7}/src/com/inductiveautomation/reporting/__init__.py +0 -0
  124. {ignition_api-8.3.6.post1 → ignition_api-8.3.7}/src/com/inductiveautomation/reporting/common/__init__.py +0 -0
  125. {ignition_api-8.3.6.post1 → ignition_api-8.3.7}/src/com/inductiveautomation/reporting/common/api/__init__.py +0 -0
  126. {ignition_api-8.3.6.post1 → ignition_api-8.3.7}/src/com/inductiveautomation/sfc/__init__.py +0 -0
  127. {ignition_api-8.3.6.post1 → ignition_api-8.3.7}/src/com/inductiveautomation/sfc/api/__init__.py +0 -0
  128. {ignition_api-8.3.6.post1 → ignition_api-8.3.7}/src/com/inductiveautomation/vision/__init__.py +0 -0
  129. {ignition_api-8.3.6.post1 → ignition_api-8.3.7}/src/com/inductiveautomation/vision/api/__init__.py +0 -0
  130. {ignition_api-8.3.6.post1 → ignition_api-8.3.7}/src/com/inductiveautomation/vision/api/client/__init__.py +0 -0
  131. {ignition_api-8.3.6.post1 → ignition_api-8.3.7}/src/com/inductiveautomation/vision/api/client/components/__init__.py +0 -0
  132. {ignition_api-8.3.6.post1 → ignition_api-8.3.7}/src/com/inductiveautomation/vision/api/client/components/model/__init__.py +0 -0
  133. {ignition_api-8.3.6.post1 → ignition_api-8.3.7}/src/com/palantir/__init__.py +0 -0
  134. {ignition_api-8.3.6.post1 → ignition_api-8.3.7}/src/com/palantir/ptoss/__init__.py +0 -0
  135. {ignition_api-8.3.6.post1 → ignition_api-8.3.7}/src/com/palantir/ptoss/cinch/__init__.py +0 -0
  136. {ignition_api-8.3.6.post1 → ignition_api-8.3.7}/src/com/palantir/ptoss/cinch/core/__init__.py +0 -0
  137. {ignition_api-8.3.6.post1 → ignition_api-8.3.7}/src/com/twilio/__init__.py +0 -0
  138. {ignition_api-8.3.6.post1 → ignition_api-8.3.7}/src/com/twilio/base/__init__.py +0 -0
  139. {ignition_api-8.3.6.post1 → ignition_api-8.3.7}/src/com/twilio/http/__init__.py +0 -0
  140. {ignition_api-8.3.6.post1 → ignition_api-8.3.7}/src/com/twilio/rest/__init__.py +0 -0
  141. {ignition_api-8.3.6.post1 → ignition_api-8.3.7}/src/com/twilio/rest/api/__init__.py +0 -0
  142. {ignition_api-8.3.6.post1 → ignition_api-8.3.7}/src/com/twilio/rest/api/v2010/__init__.py +0 -0
  143. {ignition_api-8.3.6.post1 → ignition_api-8.3.7}/src/com/twilio/rest/api/v2010/account/__init__.py +0 -0
  144. {ignition_api-8.3.6.post1 → ignition_api-8.3.7}/src/com/twilio/type/__init__.py +0 -0
  145. {ignition_api-8.3.6.post1 → ignition_api-8.3.7}/src/ignition_api.egg-info/dependency_links.txt +0 -0
  146. {ignition_api-8.3.6.post1 → ignition_api-8.3.7}/src/ignition_api.egg-info/requires.txt +0 -0
  147. {ignition_api-8.3.6.post1 → ignition_api-8.3.7}/src/ignition_api.egg-info/top_level.txt +0 -0
  148. {ignition_api-8.3.6.post1 → ignition_api-8.3.7}/src/org/__init__.py +0 -0
  149. {ignition_api-8.3.6.post1 → ignition_api-8.3.7}/src/org/apache/__init__.py +0 -0
  150. {ignition_api-8.3.6.post1 → ignition_api-8.3.7}/src/org/apache/commons/__init__.py +0 -0
  151. {ignition_api-8.3.6.post1 → ignition_api-8.3.7}/src/org/apache/commons/lang3/__init__.py +0 -0
  152. {ignition_api-8.3.6.post1 → ignition_api-8.3.7}/src/org/apache/commons/lang3/builder/__init__.py +0 -0
  153. {ignition_api-8.3.6.post1 → ignition_api-8.3.7}/src/org/apache/commons/math3/__init__.py +0 -0
  154. {ignition_api-8.3.6.post1 → ignition_api-8.3.7}/src/org/apache/commons/math3/exception/__init__.py +0 -0
  155. {ignition_api-8.3.6.post1 → ignition_api-8.3.7}/src/org/apache/commons/math3/exception/util/__init__.py +0 -0
  156. {ignition_api-8.3.6.post1 → ignition_api-8.3.7}/src/org/apache/log4j/__init__.py +0 -0
  157. {ignition_api-8.3.6.post1 → ignition_api-8.3.7}/src/org/apache/log4j/spi/__init__.py +0 -0
  158. {ignition_api-8.3.6.post1 → ignition_api-8.3.7}/src/org/apache/poi/__init__.py +0 -0
  159. {ignition_api-8.3.6.post1 → ignition_api-8.3.7}/src/org/apache/poi/common/__init__.py +0 -0
  160. {ignition_api-8.3.6.post1 → ignition_api-8.3.7}/src/org/apache/poi/common/usermodel/__init__.py +0 -0
  161. {ignition_api-8.3.6.post1 → ignition_api-8.3.7}/src/org/apache/poi/hpsf/__init__.py +0 -0
  162. {ignition_api-8.3.6.post1 → ignition_api-8.3.7}/src/org/apache/poi/poifs/__init__.py +0 -0
  163. {ignition_api-8.3.6.post1 → ignition_api-8.3.7}/src/org/apache/poi/poifs/filesystem/__init__.py +0 -0
  164. {ignition_api-8.3.6.post1 → ignition_api-8.3.7}/src/org/apache/poi/ss/__init__.py +0 -0
  165. {ignition_api-8.3.6.post1 → ignition_api-8.3.7}/src/org/apache/poi/ss/formula/__init__.py +0 -0
  166. {ignition_api-8.3.6.post1 → ignition_api-8.3.7}/src/org/apache/poi/ss/formula/eval/__init__.py +0 -0
  167. {ignition_api-8.3.6.post1 → ignition_api-8.3.7}/src/org/apache/poi/ss/formula/functions/__init__.py +0 -0
  168. {ignition_api-8.3.6.post1 → ignition_api-8.3.7}/src/org/apache/poi/ss/formula/ptg/__init__.py +0 -0
  169. {ignition_api-8.3.6.post1 → ignition_api-8.3.7}/src/org/apache/poi/ss/formula/udf/__init__.py +0 -0
  170. {ignition_api-8.3.6.post1 → ignition_api-8.3.7}/src/org/apache/poi/ss/usermodel/__init__.py +0 -0
  171. {ignition_api-8.3.6.post1 → ignition_api-8.3.7}/src/org/apache/poi/ss/util/__init__.py +0 -0
  172. {ignition_api-8.3.6.post1 → ignition_api-8.3.7}/src/org/apache/poi/util/__init__.py +0 -0
  173. {ignition_api-8.3.6.post1 → ignition_api-8.3.7}/src/org/bson/__init__.py +0 -0
  174. {ignition_api-8.3.6.post1 → ignition_api-8.3.7}/src/org/bson/codecs/__init__.py +0 -0
  175. {ignition_api-8.3.6.post1 → ignition_api-8.3.7}/src/org/bson/codecs/configuration/__init__.py +0 -0
  176. {ignition_api-8.3.6.post1 → ignition_api-8.3.7}/src/org/bson/types/__init__.py +0 -0
  177. {ignition_api-8.3.6.post1 → ignition_api-8.3.7}/src/org/joda/__init__.py +0 -0
  178. {ignition_api-8.3.6.post1 → ignition_api-8.3.7}/src/org/joda/time/__init__.py +0 -0
  179. {ignition_api-8.3.6.post1 → ignition_api-8.3.7}/src/org/joda/time/base/__init__.py +0 -0
  180. {ignition_api-8.3.6.post1 → ignition_api-8.3.7}/src/org/joda/time/field/__init__.py +0 -0
  181. {ignition_api-8.3.6.post1 → ignition_api-8.3.7}/src/org/joda/time/format/__init__.py +0 -0
  182. {ignition_api-8.3.6.post1 → ignition_api-8.3.7}/src/org/joda/time/tz/__init__.py +0 -0
  183. {ignition_api-8.3.6.post1 → ignition_api-8.3.7}/src/org/json/__init__.py +0 -0
  184. {ignition_api-8.3.6.post1 → ignition_api-8.3.7}/src/org/python/__init__.py +0 -0
  185. {ignition_api-8.3.6.post1 → ignition_api-8.3.7}/src/org/python/expose/__init__.py +0 -0
  186. {ignition_api-8.3.6.post1 → ignition_api-8.3.7}/src/org/slf4j/__init__.py +0 -0
  187. {ignition_api-8.3.6.post1 → ignition_api-8.3.7}/src/org/slf4j/event/__init__.py +0 -0
  188. {ignition_api-8.3.6.post1 → ignition_api-8.3.7}/src/system/__init__.py +0 -0
  189. {ignition_api-8.3.6.post1 → ignition_api-8.3.7}/src/system/__version__.py +0 -0
  190. {ignition_api-8.3.6.post1 → ignition_api-8.3.7}/src/system/alarm.py +0 -0
  191. {ignition_api-8.3.6.post1 → ignition_api-8.3.7}/src/system/bacnet/__init__.py +0 -0
  192. {ignition_api-8.3.6.post1 → ignition_api-8.3.7}/src/system/bacnet/enumerated.py +0 -0
  193. {ignition_api-8.3.6.post1 → ignition_api-8.3.7}/src/system/bacnet/enums.py +0 -0
  194. {ignition_api-8.3.6.post1 → ignition_api-8.3.7}/src/system/dataset.py +0 -0
  195. {ignition_api-8.3.6.post1 → ignition_api-8.3.7}/src/system/date.py +0 -0
  196. {ignition_api-8.3.6.post1 → ignition_api-8.3.7}/src/system/device.py +0 -0
  197. {ignition_api-8.3.6.post1 → ignition_api-8.3.7}/src/system/dnp.py +0 -0
  198. {ignition_api-8.3.6.post1 → ignition_api-8.3.7}/src/system/dnp3.py +0 -0
  199. {ignition_api-8.3.6.post1 → ignition_api-8.3.7}/src/system/eam.py +0 -0
  200. {ignition_api-8.3.6.post1 → ignition_api-8.3.7}/src/system/eventstream.py +0 -0
  201. {ignition_api-8.3.6.post1 → ignition_api-8.3.7}/src/system/file.py +0 -0
  202. {ignition_api-8.3.6.post1 → ignition_api-8.3.7}/src/system/groups.py +0 -0
  203. {ignition_api-8.3.6.post1 → ignition_api-8.3.7}/src/system/historian/__init__.py +0 -0
  204. {ignition_api-8.3.6.post1 → ignition_api-8.3.7}/src/system/historian/types.py +0 -0
  205. {ignition_api-8.3.6.post1 → ignition_api-8.3.7}/src/system/iec61850.py +0 -0
  206. {ignition_api-8.3.6.post1 → ignition_api-8.3.7}/src/system/kafka.py +0 -0
  207. {ignition_api-8.3.6.post1 → ignition_api-8.3.7}/src/system/math.py +0 -0
  208. {ignition_api-8.3.6.post1 → ignition_api-8.3.7}/src/system/mongodb/__init__.py +0 -0
  209. {ignition_api-8.3.6.post1 → ignition_api-8.3.7}/src/system/mongodb/types.py +0 -0
  210. {ignition_api-8.3.6.post1 → ignition_api-8.3.7}/src/system/net.py +0 -0
  211. {ignition_api-8.3.6.post1 → ignition_api-8.3.7}/src/system/opc.py +0 -0
  212. {ignition_api-8.3.6.post1 → ignition_api-8.3.7}/src/system/opchda.py +0 -0
  213. {ignition_api-8.3.6.post1 → ignition_api-8.3.7}/src/system/opcua.py +0 -0
  214. {ignition_api-8.3.6.post1 → ignition_api-8.3.7}/src/system/perspective/__init__.py +0 -0
  215. {ignition_api-8.3.6.post1 → ignition_api-8.3.7}/src/system/perspective/workstation.py +0 -0
  216. {ignition_api-8.3.6.post1 → ignition_api-8.3.7}/src/system/print.py +0 -0
  217. {ignition_api-8.3.6.post1 → ignition_api-8.3.7}/src/system/project.py +0 -0
  218. {ignition_api-8.3.6.post1 → ignition_api-8.3.7}/src/system/report.py +0 -0
  219. {ignition_api-8.3.6.post1 → ignition_api-8.3.7}/src/system/roster.py +0 -0
  220. {ignition_api-8.3.6.post1 → ignition_api-8.3.7}/src/system/secsgem.py +0 -0
  221. {ignition_api-8.3.6.post1 → ignition_api-8.3.7}/src/system/security.py +0 -0
  222. {ignition_api-8.3.6.post1 → ignition_api-8.3.7}/src/system/serial.py +0 -0
  223. {ignition_api-8.3.6.post1 → ignition_api-8.3.7}/src/system/sfc.py +0 -0
  224. {ignition_api-8.3.6.post1 → ignition_api-8.3.7}/src/system/tag.py +0 -0
  225. {ignition_api-8.3.6.post1 → ignition_api-8.3.7}/src/system/twilio.py +0 -0
  226. {ignition_api-8.3.6.post1 → ignition_api-8.3.7}/src/system/user.py +0 -0
  227. {ignition_api-8.3.6.post1 → ignition_api-8.3.7}/src/system/util.py +0 -0
  228. {ignition_api-8.3.6.post1 → ignition_api-8.3.7}/src/system/vision.py +0 -0
@@ -1,3 +1,19 @@
1
+ ## 8.3.7 (2026-06-10)
2
+
3
+ ### Feat
4
+
5
+ - **system**: add secrets module (#41)
6
+
7
+ ### Refactor
8
+
9
+ - **ia**: use Any as argument instead of PyObject (#33)
10
+
11
+ ## 8.3.6.post2 (2026-05-28)
12
+
13
+ ### Refactor
14
+
15
+ - **ia**: use Any as argument instead of PyObject (#33)
16
+
1
17
  ## 8.3.6.post1 (2026-04-29)
2
18
 
3
19
  ## 8.3.6 (2026-04-29)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: ignition_api
3
- Version: 8.3.6.post1
3
+ Version: 8.3.7
4
4
  Summary: Ignition Scripting API
5
5
  Home-page: https://github.com/ignition-devs/ignition-api
6
6
  Author: César Román
@@ -1,6 +1,6 @@
1
1
  [metadata]
2
2
  name = ignition_api
3
- version = 8.3.6.post1
3
+ version = 8.3.7
4
4
  description = Ignition Scripting API
5
5
  long_description = file: README.md
6
6
  long_description_content_type = text/markdown
@@ -523,7 +523,7 @@ class VisionUtilities(Object):
523
523
  pass
524
524
 
525
525
  def openDesktop(self, *args, **kwargs):
526
- # type: (*PyObject, **Union[str, unicode]) -> JFrame
526
+ # type: (*Any, **Union[str, unicode]) -> JFrame
527
527
  pass
528
528
 
529
529
  def openFile(self, *args, **kwargs):
@@ -834,7 +834,7 @@ class WindowUtilities(Object):
834
834
  pass
835
835
 
836
836
  def openDesktop(self, *args, **kwargs):
837
- # type: (*PyObject, **Union[str, unicode]) -> JFrame
837
+ # type: (*Any, **Union[str, unicode]) -> JFrame
838
838
  pass
839
839
 
840
840
  def openDiagnostics(self):
@@ -873,7 +873,7 @@ class WindowUtilities(Object):
873
873
  pass
874
874
 
875
875
  def transform(self, *args, **kwargs):
876
- # type: (*PyObject, **Union[str, unicode]) -> PyObject
876
+ # type: (*Any, **Union[str, unicode]) -> PyObject
877
877
  pass
878
878
 
879
879
  def warningBox(self, message, title="Warning"):
@@ -5,6 +5,7 @@ __all__ = [
5
5
  "AbstractJythonSequence",
6
6
  "AbstractMutableJythonMap",
7
7
  "AbstractMutableJythonSequence",
8
+ "ContextManager",
8
9
  "JythonMap",
9
10
  "JythonSequence",
10
11
  "MutableJythonMap",
@@ -119,7 +120,7 @@ class MutableJythonMap(object):
119
120
  raise NotImplementedError
120
121
 
121
122
  def update(self, *args, **kwargs):
122
- # type: (*PyObject, **Union[str, unicode]) -> None
123
+ # type: (*Any, **Union[str, unicode]) -> None
123
124
  raise NotImplementedError
124
125
 
125
126
  def __setitem__(self, pyKey, pyValue):
@@ -154,7 +155,7 @@ class MutableJythonSequence(JythonSequence):
154
155
  raise NotImplementedError
155
156
 
156
157
  def sort(self, *args, **kwargs):
157
- # type: (*PyObject, **Union[str, unicode]) -> None
158
+ # type: (*Any, **Union[str, unicode]) -> None
158
159
  raise NotImplementedError
159
160
 
160
161
  def __add__(self, other):
@@ -243,7 +244,7 @@ class AbstractMutableJythonMap(MutableJythonMap):
243
244
  pass
244
245
 
245
246
  def update(self, *args, **kwargs):
246
- # type: (*PyObject, **Union[str, unicode]) -> None
247
+ # type: (*Any, **Union[str, unicode]) -> None
247
248
  raise NotImplementedError
248
249
 
249
250
  def __setitem__(self, pyKey, pyValue):
@@ -278,5 +279,19 @@ class AbstractMutableJythonSequence(AbstractJythonSequence, MutableJythonSequenc
278
279
  raise NotImplementedError
279
280
 
280
281
  def sort(self, *args, **kwargs):
281
- # type: (*PyObject, **Union[str, unicode]) -> None
282
+ # type: (*Any, **Union[str, unicode]) -> None
282
283
  pass
284
+
285
+
286
+ class ContextManager(PyObject):
287
+ def __init__(self):
288
+ # type: () -> None
289
+ super(ContextManager, self).__init__()
290
+
291
+ def __enter__(self):
292
+ # type: () -> None
293
+ print("Enter")
294
+
295
+ def __exit__(self, exc_type, exc_val, exc_tb):
296
+ # type: (object, object, object) -> None
297
+ print("Exit")
@@ -69,7 +69,7 @@ class PyJsonObjectAdapter(Object):
69
69
  pass
70
70
 
71
71
  def update(self, *args, **kwargs):
72
- # type: (*PyObject, **Union[str, unicode]) -> None
72
+ # type: (*Any, **Union[str, unicode]) -> None
73
73
  pass
74
74
 
75
75
  def values(self):
@@ -78,7 +78,7 @@ class AbstractOPCUtilities(Object):
78
78
  ]
79
79
 
80
80
  def getServers(self, *args, **kwargs):
81
- # type: (*PyObject, **Union[str, unicode]) -> List[Union[str, unicode]] # noqa: W505
81
+ # type: (*Any, **Union[str, unicode]) -> List[Union[str, unicode]] # noqa: W505
82
82
  pass
83
83
 
84
84
  def getServerState(self, opcServer):
@@ -110,11 +110,11 @@ class AbstractOPCUtilities(Object):
110
110
  pass
111
111
 
112
112
  def writeValue(self, *args, **kwargs):
113
- # type: (*PyObject, **Union[str, unicode]) -> QualityCode
113
+ # type: (*Any, **Union[str, unicode]) -> QualityCode
114
114
  pass
115
115
 
116
116
  def writeValues(self, *args, **kwargs):
117
- # type: (*PyObject, **Union[str, unicode]) -> List[QualityCode]
117
+ # type: (*Any, **Union[str, unicode]) -> List[QualityCode]
118
118
  pass
119
119
 
120
120
 
@@ -422,7 +422,7 @@ class DatasetUtilities(Object):
422
422
 
423
423
  @staticmethod
424
424
  def toCSV(*args, **kwargs):
425
- # type: (*PyObject, **Union[str, unicode]) -> Union[str, unicode] # noqa: W505
425
+ # type: (*Any, **Union[str, unicode]) -> Union[str, unicode] # noqa: W505
426
426
  pass
427
427
 
428
428
  @staticmethod
@@ -442,7 +442,7 @@ class DatasetUtilities(Object):
442
442
 
443
443
  @staticmethod
444
444
  def toExcel(*args, **kwargs):
445
- # type: (*PyObject, **Union[str, unicode]) -> bytearray
445
+ # type: (*Any, **Union[str, unicode]) -> bytearray
446
446
  pass
447
447
 
448
448
  @staticmethod
@@ -806,5 +806,5 @@ class SystemUtilities(Object):
806
806
 
807
807
  @staticmethod
808
808
  def parseTranslateArguments(*args, **kwargs):
809
- # type: (*PyObject, **Union[str, unicode]) -> Tuple[Union[str, unicode], Union[str, unicode], bool] # noqa: E501, W505 # pylint: disable=line-too-long
809
+ # type: (*Any, **Union[str, unicode]) -> Tuple[Union[str, unicode], Union[str, unicode], bool] # noqa: E501, W505 # pylint: disable=line-too-long
810
810
  pass
@@ -30,19 +30,19 @@ class JythonHttpClient(Object):
30
30
  """
31
31
 
32
32
  def delete(self, *args, **kwargs):
33
- # type: (*PyObject, **Union[str, unicode]) -> Response
33
+ # type: (*Any, **Union[str, unicode]) -> Response
34
34
  pass
35
35
 
36
36
  def deleteAsync(self, *args, **kwargs):
37
- # type: (*PyObject, **Union[str, unicode]) -> Promise
37
+ # type: (*Any, **Union[str, unicode]) -> Promise
38
38
  pass
39
39
 
40
40
  def get(self, *args, **kwargs):
41
- # type: (*PyObject, **Union[str, unicode]) -> Response
41
+ # type: (*Any, **Union[str, unicode]) -> Response
42
42
  pass
43
43
 
44
44
  def getAsync(self, *args, **kwargs):
45
- # type: (*PyObject, **Union[str, unicode]) -> Promise
45
+ # type: (*Any, **Union[str, unicode]) -> Promise
46
46
  pass
47
47
 
48
48
  def getConnectTimeout(self):
@@ -276,7 +276,7 @@ class Promise(Object):
276
276
  return True
277
277
 
278
278
  def get(self, *args, **kwargs):
279
- # type: (*PyObject, **Union[str, unicode]) -> Any
279
+ # type: (*Any, **Union[str, unicode]) -> Any
280
280
  pass
281
281
 
282
282
  def getFuture(self):
@@ -0,0 +1,66 @@
1
+ from __future__ import print_function
2
+
3
+ from typing import Union
4
+
5
+ from java.lang import Record
6
+
7
+ from com.inductiveautomation.ignition.common.script.abc import ContextManager
8
+ from com.inductiveautomation.ignition.gateway.secrets import Plaintext
9
+
10
+
11
+ class PyPlaintext(ContextManager):
12
+ def __init__(self, plaintext):
13
+ # type: (Plaintext) -> None
14
+ super(PyPlaintext, self).__init__()
15
+
16
+ def clear(self):
17
+ # type: () -> None
18
+ pass
19
+
20
+ def getSecretsAsBytes(self):
21
+ # type: () -> bytearray
22
+ pass
23
+
24
+ def getSecretsAsString(self, charsetName=None):
25
+ # type: (Union[str, unicode, None]) -> Union[str, unicode]
26
+ pass
27
+
28
+
29
+ class SecretMeta(Record):
30
+ def __init__(
31
+ self,
32
+ name, # type: Union[str, unicode]
33
+ ):
34
+ # type: (...) -> None
35
+ super(SecretMeta, self).__init__()
36
+ self._name = name
37
+
38
+ def name(self):
39
+ # type: () -> Union[str, unicode]
40
+ return self._name
41
+
42
+
43
+ class SecretProviderMeta(Record):
44
+ def __init__(
45
+ self,
46
+ name, # type: Union[str, unicode]
47
+ description, # type: Union[str, unicode]
48
+ type_, # type: Union[str, unicode]
49
+ ):
50
+ # type: (...) -> None
51
+ super(SecretProviderMeta, self).__init__()
52
+ self._name = name
53
+ self._description = description
54
+ self._type = type_
55
+
56
+ def description(self):
57
+ # type: () -> Union[str, unicode]
58
+ return self._description
59
+
60
+ def name(self):
61
+ # type: () -> Union[str, unicode]
62
+ return self._name
63
+
64
+ def type(self):
65
+ # type: () -> Union[str, unicode]
66
+ return self._type
@@ -0,0 +1,37 @@
1
+ from typing import Optional, Union
2
+
3
+ from java.io import Closeable
4
+ from java.lang import Object
5
+ from java.nio.charset import Charset
6
+
7
+
8
+ class Plaintext(Object, Closeable):
9
+ def __init__(self):
10
+ # type: () -> None
11
+ super(Plaintext, self).__init__()
12
+
13
+ def clear(self):
14
+ # type: () -> None
15
+ pass
16
+
17
+ def close(self):
18
+ # type: () -> None
19
+ pass
20
+
21
+ @staticmethod
22
+ def fromBytes(bytes):
23
+ # type: (bytearray) -> Plaintext
24
+ return Plaintext()
25
+
26
+ @staticmethod
27
+ def fromString(str, charset=None):
28
+ # type: (Union[str, unicode], Optional[Charset]) -> Plaintext
29
+ return Plaintext()
30
+
31
+ def getAsString(self):
32
+ # type: () -> Union[str, unicode]
33
+ pass
34
+
35
+ def getBytes(self):
36
+ # type: () -> bytearray
37
+ pass
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: ignition-api
3
- Version: 8.3.6.post1
3
+ Version: 8.3.7
4
4
  Summary: Ignition Scripting API
5
5
  Home-page: https://github.com/ignition-devs/ignition-api
6
6
  Author: César Román
@@ -83,6 +83,7 @@ src/com/inductiveautomation/ignition/common/script/builtin/http/__init__.py
83
83
  src/com/inductiveautomation/ignition/common/script/builtin/ialabs/__init__.py
84
84
  src/com/inductiveautomation/ignition/common/script/hints/__init__.py
85
85
  src/com/inductiveautomation/ignition/common/script/message/__init__.py
86
+ src/com/inductiveautomation/ignition/common/secrets/__init__.py
86
87
  src/com/inductiveautomation/ignition/common/sqltags/__init__.py
87
88
  src/com/inductiveautomation/ignition/common/sqltags/history/__init__.py
88
89
  src/com/inductiveautomation/ignition/common/sqltags/history/annotations/__init__.py
@@ -105,6 +106,7 @@ src/com/inductiveautomation/ignition/common/xmlserialization/serialization/__ini
105
106
  src/com/inductiveautomation/ignition/common/xmlserialization/serialization/equalitydelegates/__init__.py
106
107
  src/com/inductiveautomation/ignition/gateway/__init__.py
107
108
  src/com/inductiveautomation/ignition/gateway/project/__init__.py
109
+ src/com/inductiveautomation/ignition/gateway/secrets/__init__.py
108
110
  src/com/inductiveautomation/ignition/modules/__init__.py
109
111
  src/com/inductiveautomation/ignition/modules/serial/__init__.py
110
112
  src/com/inductiveautomation/ignition/modules/serial/scripting/__init__.py
@@ -204,6 +206,7 @@ src/system/print.py
204
206
  src/system/project.py
205
207
  src/system/report.py
206
208
  src/system/roster.py
209
+ src/system/secrets.py
207
210
  src/system/secsgem.py
208
211
  src/system/security.py
209
212
  src/system/serial.py
@@ -1333,7 +1333,7 @@ class PyList(PySequenceList):
1333
1333
  pass
1334
1334
 
1335
1335
  def sort(self, *args):
1336
- # type: (*PyObject) -> None
1336
+ # type: (*Any) -> None
1337
1337
  pass
1338
1338
 
1339
1339
  def subList(self, fromIndex, toIndex):
@@ -68,7 +68,6 @@ __all__ = [
68
68
  "runPrepUpdate",
69
69
  "runSFPrepUpdate",
70
70
  "runScalarPrepQuery",
71
- "runUpdateQuery",
72
71
  "setDatasourceConnectURL",
73
72
  "setDatasourceEnabled",
74
73
  "setDatasourceMaxConnections",
@@ -714,52 +713,6 @@ def runScalarPrepQuery(
714
713
  return 42
715
714
 
716
715
 
717
- def runUpdateQuery(
718
- query, # type: Union[str, unicode]
719
- database="", # type: Union[str, unicode]
720
- tx=None, # type: Union[str, unicode, None]
721
- getKey=False, # type: bool
722
- skipAudit=True, # type: bool
723
- ):
724
- # type: (...) -> int
725
- """Runs a query against a database connection, returning the number
726
- of rows affected.
727
-
728
- Typically this is an UPDATE, INSERT, or DELETE query. If no database
729
- is specified, or the database is the empty-string "", then the
730
- current project's default database connection will be used.
731
-
732
- Note:
733
- You may want to use the runPrepUpdate query if your query is
734
- constructed with user input (to avoid the user's input from
735
- breaking your syntax) or if you need to insert binary or BLOB
736
- data.
737
-
738
- Args:
739
- query: A SQL query, usually an INSERT, UPDATE, or DELETE query,
740
- to run.
741
- database: The name of the database connection to execute
742
- against. If omitted or "", the project's default database
743
- connection will be used.
744
- tx: A transaction identifier. If omitted, the update will be
745
- executed in its own transaction.
746
- getKey: A flag indicating whether or not the result should be
747
- the number of rows returned (getKey=0) or the newly
748
- generated key value that was created as a result of the
749
- update (getKey=1). Not all databases support automatic
750
- retrieval of generated keys.
751
- skipAudit: A flag which, if set to True, will cause the update
752
- query to skip the audit system. Useful for some queries that
753
- have fields which won't fit into the audit log.
754
-
755
- Returns:
756
- The number of rows affected by the query, or the key value that
757
- was generated, depending on the value of the getKey flag.
758
- """
759
- print(query, database, tx, getKey, skipAudit)
760
- return 1
761
-
762
-
763
716
  def setDatasourceConnectURL(name, connectUrl):
764
717
  # type: (Union[str, unicode], Union[str, unicode]) -> None
765
718
  """Changes the connect URL for a given database connection.
@@ -0,0 +1,113 @@
1
+ """Secrets Functions.
2
+
3
+ The following functions are used to interact with encrypted secrets for
4
+ Secret Providers on the Gateway.
5
+ """
6
+
7
+ from __future__ import print_function
8
+
9
+ __all__ = [
10
+ "decrypt",
11
+ "encrypt",
12
+ "getProviders",
13
+ "getSecrets",
14
+ "readSecretValue",
15
+ ]
16
+
17
+ from typing import Any, Dict, List, Union
18
+
19
+ from com.inductiveautomation.ignition.common.secrets import (
20
+ PyPlaintext,
21
+ SecretMeta,
22
+ SecretProviderMeta,
23
+ )
24
+ from com.inductiveautomation.ignition.gateway.secrets import Plaintext
25
+
26
+
27
+ def decrypt(json):
28
+ # type: (Any) -> PyPlaintext
29
+ """Decrypts the given JSON object containing an encrypted secret
30
+ using the system encryption service.
31
+
32
+ Args:
33
+ json: The JSON object containing the encrypted secret to
34
+ decrypt.
35
+
36
+ Returns:
37
+ The decrypted value of the JSON string.
38
+ """
39
+ return PyPlaintext(Plaintext.fromString(json))
40
+
41
+
42
+ def encrypt(*args):
43
+ # type: (*Any) -> Dict[Union[str, unicode], Any]
44
+ """Encrypts supplied data using the Secrets Management system
45
+ encryption service and returns a JSON object containing the
46
+ encrypted secret.
47
+
48
+ Args:
49
+ *args: Variable length argument list.
50
+
51
+ Returns:
52
+ A PyDictionary containing the encrypted secret or None if the
53
+ JSON is empty.
54
+ """
55
+ return {
56
+ "ciphertext": None,
57
+ "encrypted_key": None,
58
+ "iv": None,
59
+ "protected": True,
60
+ "tag": None,
61
+ }
62
+
63
+
64
+ def getProviders():
65
+ # type: () -> List[SecretProviderMeta]
66
+ """Returns a list of Secret Providers configured in the Secrets
67
+ Management system on the Gateway. Each list entry includes the name,
68
+ description, and type of the provider.
69
+
70
+ Returns:
71
+ A List of SecretProviderMeta instances that represent all of
72
+ the Secret Providers.
73
+ """
74
+ return [
75
+ SecretProviderMeta(
76
+ "SecretProviderName", "SecretProviderDescription", "SecretProviderType"
77
+ )
78
+ ]
79
+
80
+
81
+ def getSecrets(providerName):
82
+ # type: (Union[str, unicode]) -> List[SecretMeta]
83
+ """Returns a list of objects representing all secrets available for
84
+ the named Secret Provider.
85
+
86
+ Each list entry includes the name of the secret.
87
+
88
+ Args:
89
+ providerName: The name of the Secret Provider to fetch secrets
90
+ from.
91
+
92
+ Returns:
93
+ A list of SecretMeta instances that represent all secret names.
94
+ """
95
+ print(providerName)
96
+ return [SecretMeta("SecretName")]
97
+
98
+
99
+ def readSecretValue(providerName, secretName):
100
+ # type: (Union[str, unicode], Union[str, unicode]) -> PyPlaintext
101
+ """Reads the plaintext value of a secret given the name of the
102
+ Secret Provider and the name of the secret.
103
+
104
+ Args:
105
+ providerName: The name of the Secret Provider to read the secret
106
+ from.
107
+ secretName: The name of the secret to read.
108
+
109
+ Returns:
110
+ A PyPlaintext instance that contains the secret.
111
+ """
112
+ print(providerName, secretName)
113
+ return PyPlaintext(Plaintext())
File without changes