# 8.3 Database Connections Configuration as Code

**URL:** <https://forum.inductiveautomation.com/t/8-3-database-connections-configuration-as-code/117318>\
**Category:** Ignition\
**Created:** [October 2, 2026, 5:10pm UTC](https://forum.inductiveautomation.com/t/8-3-database-connections-configuration-as-code/117318 "2026-10-02T17:10:44Z")\
**Posts on this page:** 1\
**Showing post:** 3

<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:** [October 2, 2026, 5:32pm UTC](https://forum.inductiveautomation.com/t/8-3-database-connections-configuration-as-code/117318/3 "2026-10-02T17:32:55Z")

</div>

Consider having your CI system deliver required configuration into the `external` resource collection, so that it's immutable and cannot be removed at runtime by end users:

> [@Pre-loading configuration FileAlreadyExistsException in ignition 8.3.2](https://forum.inductiveautomation.com/t/pre-loading-configuration-filealreadyexistsexception-in-ignition-8-3-2/113241/2):
>
> The core collection is expected to be owned and managed entirely by the Ignition gateway instance. If you want to "pre load" configuration, you should do so via the external resource collection, which is treated as immutable by the gateway and loaded before other sources as a base. Some general background on how Ignition resources are encoded: Concrete advice on what you're trying to do: And some diagrams showing the single inheritance tree used for gateway configuration:

> [@Jonathan](#):
>
> Are you using the Gateway API to perform state reconciliation, or is there another supported approach?

Around February 2027, when we release our new major version, we're planning to release a series of [Ansible](https://docs.ansible.com/) extensions that work with 8.3 and 2027 and allow you to express gateway state changes. It's still the gateway REST API "under the hood", but wrapped in way you don't have to think about the details.

I'll also say,

> [@Jonathan](#):
>
> While that approach seems possible, I was under the impression that Ignition 8.3 moved gateway configuration away from the internal database and toward a flat-file based configuration model. Because of that, I expected there might be a more declarative approach available for managing gateway resources such as database connections.

How else could this possibly work? There's a set of files on disk. That's the source of truth. If you want to change what's loaded in the gateway, you have to change that set of files. Ultimately, doing that remotely is a series of CRUD calls to the REST API.

We don't put everything in one or more mega YAML files or whatever because:

- It would be extremely painful to read/write/edit
- While ~80% of them are just JSON files, there are many other types of resource file that have to be encapsulated as well - images, themes/css, keystores, driver csv files, etc, etc
- We already had a well tested, proven model for file based resources - Ignition's project system.

---

_[View the full topic](https://forum.inductiveautomation.com/t/8-3-database-connections-configuration-as-code/117318)._
