# How to determine programmatically if the gateway is a full one or Edge

**URL:** <https://forum.inductiveautomation.com/t/how-to-determine-programmatically-if-the-gateway-is-a-full-one-or-edge/100561>\
**Category:** Ignition\
**Tags:** ignition81, edge, perspective, scripting\
**Created:** [January 7, 2025, 9:56pm UTC](https://forum.inductiveautomation.com/t/how-to-determine-programmatically-if-the-gateway-is-a-full-one-or-edge/100561 "2025-01-07T21:56:36Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![patrick.maltais](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/patrick.maltais/32/3958_2.png) [@patrick.maltais](https://forum.inductiveautomation.com/u/patrick.maltais)\
**Post date:** [January 7, 2025, 9:56pm UTC](https://forum.inductiveautomation.com/t/how-to-determine-programmatically-if-the-gateway-is-a-full-one-or-edge/100561/1 "2025-01-07T21:56:36Z")

</div>

Using Ignition perspective 8.1.43. I have a project that is develloped on a full gateway and deployed on a Edge gateway. I want the project can be executable from both gateways. I want to prevent some components from displaying if the project is being executed on the Edge gateway.

---

<div class="post-metadata">

**Author:** ![ryan.white](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/ryan.white/32/73193_2.png) [@ryan.white](https://forum.inductiveautomation.com/u/ryan.white)\
**Post date:** [January 7, 2025, 10:44pm UTC](https://forum.inductiveautomation.com/t/how-to-determine-programmatically-if-the-gateway-is-a-full-one-or-edge/100561/2 "2025-01-07T22:44:05Z")

</div>

You can try setting up security zones, but those will only work if a user is logged in.

You could make the objects default to hidden unless the user is accessing from the expected zone. You could have a session property with a binding of `isAuthorized(false, "SecurityZones/Full Gateway Zone")`, and bind component visibility on that.

> **[Security Zones | Ignition User Manual](https://www.docs.inductiveautomation.com/docs/8.1/platform/security/security-zones)**
>
> A Security Zone is a list of Gateways, Computers, or IP addresses that are defined and grouped together. This group now becomes a zone on the Gateway Network, which can have additional policies and restrictions placed on it. While Users and Roles...

> **[Security in Perspective | Ignition User Manual](https://www.docs.inductiveautomation.com/docs/8.1/ignition-modules/perspective/security-in-perspective)**
>
> Security in Perspective is managed through Identity Providers (IdP). IdPs offers a way for users to log in to Ignition using credentials stored outside of Ignition. This level of security is set up through the Gateway. Setting up security is covered...

Otherwise you'll probably need to inspect your connected gateway address in the session props and if it doesn't match the address of the full gateway, hide the objects.

> **[Session Properties | Ignition User Manual](https://www.docs.inductiveautomation.com/docs/8.1/ignition-modules/perspective/perspective-sessions/session-properties#gateway-properties)**
>
> Session properties are available for use throughout Perspective Sessions. Sessions of a given project will have the same list of properties, however, the actual values are unique and independent for each running Session.

---

<div class="post-metadata">

**Author:** ![paul-griffith](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/paul-griffith/32/37249_2.png) [@paul-griffith](https://forum.inductiveautomation.com/u/paul-griffith)\
**Post date:** [January 7, 2025, 11:04pm UTC](https://forum.inductiveautomation.com/t/how-to-determine-programmatically-if-the-gateway-is-a-full-one-or-edge/100561/3 "2025-01-07T23:04:49Z")

</div>

Answering purely the question in the title, you can use [`PlatformEdition`](https://files.inductiveautomation.com/sdk/javadoc/ignition81/8.1.44/com/inductiveautomation/ignition/common/model/PlatformEdition.html):

```python
from com.inductiveautomation.ignition.common.model import PlatformEdition
print PlatformEdition.isEdge()
# or 
# print PlatformEdition.isMaker()
# print PlatformEdition.isCloud()
# print PlatformEdition.isStandard()

```

Might be a good idea for a system tag...

---

<div class="post-metadata">

**Author:** ![Chris\_Bingham](https://avatars.discourse-cdn.com/v4/letter/c/e5b9ba/32.png) [@Chris\_Bingham](https://forum.inductiveautomation.com/u/Chris_Bingham)\
**Post date:** [January 7, 2025, 11:24pm UTC](https://forum.inductiveautomation.com/t/how-to-determine-programmatically-if-the-gateway-is-a-full-one-or-edge/100561/4 "2025-01-07T23:24:47Z")

</div>

> [@paul-griffith](#):
>
> Might be a good idea for a system tag...

Yes, please!

---

<div class="post-metadata">

**Author:** ![patrick.maltais](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/patrick.maltais/32/3958_2.png) [@patrick.maltais](https://forum.inductiveautomation.com/u/patrick.maltais)\
**Post date:** [January 8, 2025, 1:15pm UTC](https://forum.inductiveautomation.com/t/how-to-determine-programmatically-if-the-gateway-is-a-full-one-or-edge/100561/5 "2025-01-08T13:15:45Z")

</div>

Thanks Paul. That's what I'm looking for!
