# Client security for module developers

**URL:** <https://forum.inductiveautomation.com/t/client-security-for-module-developers/14525>\
**Category:** Module Development\
**Tags:** clientsecurity, security, ignition79\
**Created:** [June 15, 2017, 1:32pm UTC](https://forum.inductiveautomation.com/t/client-security-for-module-developers/14525 "2017-06-15T13:32:02Z")\
**Posts on this page:** 8\
**Page:** 1

<div class="post-metadata">

**Author:** ![KathyApplebaum](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/kathyapplebaum/32/7261_2.png) [@KathyApplebaum](https://forum.inductiveautomation.com/u/KathyApplebaum)\
**Post date:** [June 15, 2017, 1:32pm UTC](https://forum.inductiveautomation.com/t/client-security-for-module-developers/14525/1 "2017-06-15T13:32:02Z")

</div>

As I wrote in the [named queries](http://forum.inductiveautomation.com/t/named-queries-for-module-developers/14524) post, 7.9.4 is about security, and this includes the ability to restrict when clients can do things that mutate the state of the gateway. This is done by enabling access based on the client’s roles and zones (or disabling access altogether) for about a dozen different areas.

As a module author, you can opt in to this security system. Here’s what you need to know:

- Mark gateway functions or classes that need protection with the new @ClientProtected(id=“myId”) annotation. The gateway will then allow access to that function only if the client has the proper zones and roles.
- In your designer hook, override createPermissionKeys() to return a map of your permission id’s (“myId” in this case) and their associated bundle key.
- Your properties file should have two entries for this bundle key:  
myBundleKey.Name=…  
myBundleKey.Tooltip=…
- Designer module hooks that don’t subclass AbstractDesignerModuleHook will need to implement createPermissionKeys() even if permission keys are not used. Returning null is fine. If you subclass AbstractDesignerModuleHook, there’s nothing additional you need to do if you’re not opting in to the client permission system.

---

<div class="post-metadata">

**Author:** ![Kevin.Herron](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/kevin.herron/32/7259_2.png) [@Kevin.Herron](https://forum.inductiveautomation.com/u/Kevin.Herron)\
**Post date:** [June 15, 2017, 1:34pm UTC](https://forum.inductiveautomation.com/t/client-security-for-module-developers/14525/2 "2017-06-15T13:34:18Z")

</div>

Pinned on June 15, 2017, 1:34pm UTC



---

<div class="post-metadata">

**Author:** ![mazeyrat](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/mazeyrat/32/10955_2.png) [@mazeyrat](https://forum.inductiveautomation.com/u/mazeyrat)\
**Post date:** [June 16, 2017, 7:21am UTC](https://forum.inductiveautomation.com/t/client-security-for-module-developers/14525/3 "2017-06-16T07:21:44Z")

</div>

Could you please post a link for the latest SDK (7.9.4) javadoc

---

<div class="post-metadata">

**Author:** ![KathyApplebaum](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/kathyapplebaum/32/7261_2.png) [@KathyApplebaum](https://forum.inductiveautomation.com/u/KathyApplebaum)\
**Post date:** [June 16, 2017, 2:10pm UTC](https://forum.inductiveautomation.com/t/client-security-for-module-developers/14525/4 "2017-06-16T14:10:52Z")

</div>

We don’t usually build the Javadocs for the SDK until release. Was there something particular I can help you with?

---

<div class="post-metadata">

**Author:** ![PerryAJ](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/perryaj/32/3281_2.png) [@PerryAJ](https://forum.inductiveautomation.com/u/PerryAJ)\
**Post date:** [June 16, 2017, 3:49pm UTC](https://forum.inductiveautomation.com/t/client-security-for-module-developers/14525/5 "2017-06-16T15:49:00Z")

</div>

I’ve built & published javadocs off of 7.9.4-beta1. A zip is available here: [http://files.inductiveautomation.com/sdk/javadoc/ignition79/ignition-javadoc-7.9.4-beta1.zip](http://files.inductiveautomation.com/sdk/javadoc/ignition79/ignition-javadoc-7.9.4-beta1.zip)

The online docs are in the process of being published, and the index will be available here when the upload is complete:  
[http://files.inductiveautomation.com/sdk/javadoc/ignition79/794-beta1/index.html](http://files.inductiveautomation.com/sdk/javadoc/ignition79/794-beta1/index.html)

---

<div class="post-metadata">

**Author:** ![mazeyrat](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/mazeyrat/32/10955_2.png) [@mazeyrat](https://forum.inductiveautomation.com/u/mazeyrat)\
**Post date:** [June 17, 2017, 10:23am UTC](https://forum.inductiveautomation.com/t/client-security-for-module-developers/14525/6 "2017-06-17T10:23:32Z")

</div>

Thanks, I believe the last javadoc available was 7.9.0.  
I’m looking a way to have the list of available remote tag provider, and to create a new one !

---

<div class="post-metadata">

**Author:** ![fourmajor](https://avatars.discourse-cdn.com/v4/letter/f/898d66/32.png) [@fourmajor](https://forum.inductiveautomation.com/u/fourmajor)\
**Post date:** [June 21, 2017, 9:09pm UTC](https://forum.inductiveautomation.com/t/client-security-for-module-developers/14525/7 "2017-06-21T21:09:59Z")

</div>

Thank you @PerryAJ, that’s very useful. I am wondering, could you possibly build and publish javadocs off of 7.9.3? Thank you!

---

<div class="post-metadata">

**Author:** ![PerryAJ](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/perryaj/32/3281_2.png) [@PerryAJ](https://forum.inductiveautomation.com/u/PerryAJ)\
**Post date:** [June 22, 2017, 10:47pm UTC](https://forum.inductiveautomation.com/t/client-security-for-module-developers/14525/8 "2017-06-22T22:47:03Z")

</div>

Sure. They’re going to be nearly identical to 7.9.0, especially from a public api perspective (7.9.4 has some non-breaking changes due to the new security features).

You can download the zip of docs from [here](http://files.inductiveautomation.com/sdk/javadoc/ignition79/ignition-javadoc-7.9.3.zip). The online docs are in the process of uploading. When done, should be viewable from [this index](http://files.inductiveautomation.com/sdk/javadoc/ignition79/794-beta1/index.html).
