# Update Security Level Configuration via Script

**URL:** <https://forum.inductiveautomation.com/t/update-security-level-configuration-via-script/112369>\
**Category:** Ignition\
**Tags:** ignition81, perspective, scripting\
**Created:** [November 21, 2025, 9:20pm UTC](https://forum.inductiveautomation.com/t/update-security-level-configuration-via-script/112369 "2025-11-21T21:20:32Z")\
**Posts on this page:** 1\
**Showing post:** 8

<div class="post-metadata">

**Author:** ![pturmel](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/pturmel/32/3295_2.png) [@pturmel](https://forum.inductiveautomation.com/u/pturmel)\
**Post date:** [November 21, 2025, 11:40pm UTC](https://forum.inductiveautomation.com/t/update-security-level-configuration-via-script/112369/8 "2025-11-21T23:40:04Z")

</div>

> [@ryan.white](#):
>
> further detail.

One of the fundamental differences between CPython and Jython is that the latter is fully and truly **multi-threaded**. Jython has no GIL.

That `import` always takes a lock doesn't create additional lock contention in CPython because the contention is on CPython's GIL.

Ignition performs auto-importing of project library scripts on first use after a project start or restart (edits). That auto-import is _ **lockless** _, for huge performance wins under busy event load. (But just the fast path is lockless in v8.3, fixing a [longstanding bug](https://forum.inductiveautomation.com/t/ign-6503-project-library-script-initialization-races/98636).)

This is a huge performance win in Ignition because many, many events firing at high rates will crush that interpreter-wide import lock.

---

_[View the full topic](https://forum.inductiveautomation.com/t/update-security-level-configuration-via-script/112369)._
