This document tracks which modules use the remote connection functionality in the Axion codebase.
The codebase has two approaches for managing remote database connections:
config.yaml under database.connectionsdatabase:
connections:
- db: referencedb.axion
ip: mariadb.netbird.cloud
name: reference-mssql
password: 1@Lemmings1206
type: mssql
user: sa
Def_RemoteConnections database tableObjConnection.py (legacy connection pool)DATABASE_<name>_<property> format (e.g., DATABASE_REFERENCE_HOST)| File | Function | Usage Count | Status |
|---|---|---|---|
factory.core/ObjData.py |
remote_connect() - Main implementation |
3+ calls | ✅ Active |
factory.core/ObjConnection.py |
RemoteInit(), Legacy pool manager |
1 call | ⚠️ Legacy |
factory.core/ConfigIni.py |
Configuration loading | 1 call | ✅ Active |
Location: factory.core/ObjData.py:1047-1381
Features:
REMOTE_CONNECTIONS_LOCK)Global Variables:
REMOTE_CONNECTIONS_LOCK = threading.RLock()
REMOTE_CONNECTIONS_INI: list = []
get_remote_connections_cache() -> dict # Thread-local storage
| Module | Usage Count | Purpose |
|---|---|---|
ObjDataTransfer.py |
8 | Data transfer between databases |
ObjHook.py |
4 | Hook execution across databases |
ObjData.py |
3 | Core remote connection implementation |
ObjAlert.py |
2 | Cross-database alerting |
ObjReport.py |
2 | Reporting from multiple databases |
ObjApi.py |
1 | API calls to remote databases |
ObjBackup.py |
1 | Database backup operations |
ObjCompute.py |
1 | Remote compute operations |
ObjDataExport.py |
1 | Export data from remote databases |
ObjDataImport.py |
1 | Import data to remote databases |
ObjFtp.py |
1 | FTP operations with database logging |
ObjScheduler.py |
1 | Scheduled tasks across databases |
Core Services:
ObjServiceCalculation.py - Calculations using remote dataObjServiceDecision.py - Decision engine with remote lookupsObjServiceFilefeed.py - File processing with remote storageObjServiceImportParser.py - Parsing data from remote sourcesObjServiceScorecard.py - Scoring using remote dataObjServiceCommunication.py - Cross-database messagingPackage-specific Services (fullhouse):
ObjServiceTrader.py - Integration with Trader systemObjServiceTransferSql.py - SQL transfers between databasesObjServiceDatalake.py - Data lake operationsObjServiceExperian.py - Credit bureau integrationObjServiceFHStatement.py - Statement generationObjServiceFullHouse.py - Main FullHouse integrationObjServiceImportSql.py - SQL import operationsPackage-specific Services (homechoice):
ObjServiceHCExperian.py - Experian integrationObjServiceHCExperian_ESW.py - Eswatini specificObjServiceHCExperian_LES.py - Lesotho specificObjServiceHCExperian_NAM.py - Namibia specificObjServiceXds.py - XDS integrationObjServiceXdsV2.py - XDS v2 integrationOther Package Services:
package.chrysalistp/ObjServicePaythru.py - Payment processingpackage.intelect/ObjServiceMcf.py - MCF integrationpackage.intelect/ObjServicePaulmambu.py - Mambu integrationpackage.sunswept/ObjServiceHami.py - Hami integration| Module | Purpose |
|---|---|
ObjAcl.py |
Access control across databases |
ObjUser.py |
User management with remote auth |
WebForm.py |
Forms with remote data sources |
WebFormElement.py |
Form elements from remote DBs |
WebHooks.py |
Webhook handling with remote logging |
| Module | Purpose |
|---|---|
ObjTextField.py |
Text field processing with remote data |
ObjTextQuery.py |
Query execution on remote databases |
ObjTextQueryfull.py |
Full-text search across databases |
ObjTextRunsql.py |
SQL execution on remote databases |
package.fullhouse/ObjTextFHInstalment.py |
Instalment text generation |
package.fullhouse/ObjTextFHSettlement.py |
Settlement text generation |
| Module | Purpose |
|---|---|
ObjSmsConnect.py |
SMS gateway connections |
ObjSmsEbulk.py |
EBulk SMS provider |
ObjSmsEsoft.py |
ESoft SMS provider |
ObjSmsSmsPortal.py |
SMS Portal provider |
| Module | Purpose |
|---|---|
ObjReportStratops.py |
Strategic operations reporting |
package.fullhouse/ObjReportFHproductjson.py |
Product JSON export |
package.system/ObjReportDataexport.py |
System data export |
| Module | Purpose |
|---|---|
WebPageDocument.py |
Document pages with remote storage |
WebPageForm.py |
Form pages with remote data |
WebPageGo.py |
Navigation with remote context |
| Module | Purpose |
|---|---|
package.core/ObjFieldRadio.py |
Radio fields with remote options |
package.core/ObjFieldSumoselect.py |
Select fields with remote data |
| Module | Purpose |
|---|---|
package.switchx/ObjHookDevelopments.py |
Development webhooks |
The following modules are in archive/ folders and may not be actively used:
ObjServiceAnalytics.pyObjServiceApiYalu.pyObjServiceCompuscan.pyObjServiceImportParser.pyObjServicePublishJourney.pyObjReportDocForm.pyreference:
database:
connections:
- name: reference-mssql
type: mssql
ip: mariadb.netbird.cloud
db: referencedb.axion
user: sa
- name: reference-mysql
type: mysql
ip: mariadb.netbird.cloud
db: referencedb.axion
user: axion
- name: janee
type: mysql
ip: mariadb.netbird.cloud
db: janeedb.axion
user: axion
password: (encrypted)
- name: sync
type: mysql
ip: mariadb.netbird.cloud
db: syncdb.axion
user: axion
password: (encrypted)
| Category | Module Count | Status |
|---|---|---|
| factory.core | 14 active modules | ✅ Core infrastructure |
| factory.service | 50+ modules | ✅ Heavily used |
| factory.web | 5 modules | ✅ Active |
| factory.text | 6 modules | ✅ Active |
| factory.sms | 5 modules | ✅ Active |
| factory.report | 3 modules | ✅ Active |
| factory.pages | 3 modules | ✅ Active |
| factory.field | 2 modules | ✅ Active |
| factory.webhook | 1 module | ✅ Active |
| Archive modules | 20+ modules | ⚠️ Deprecated |
Def_RemoteConnections may still be in use by older codeObjDataTransfer.py)Def_RemoteConnections usageMIGRATION PLAN: Remote database connection credentials will be migrated from their current storage locations to Infisical secret management:
config.yaml under database.connectionsDef_RemoteConnections database tableremote_connect() method will be updated to support Infisical lookupsDATABASE_<name>_<property> (e.g., DATABASE_REFERENCE_HOST, DATABASE_REFERENCE_USER)To migrate from table-based to YAML-based remote connections:
Def_RemoteConnections tableconfig.yaml under database.connectionsLast Updated: 2026-02-02
Maintainer: Axion Development Team