TASK-CFG-001 — Config / Integration / Deployment Inventory
- Worker: config-integration
- Date: 2026-07-21
- Repos:
/Users/leonardo/GitHub/Documentation/InfocadServer,/Users/leonardo/GitHub/Documentation/InfocadWeb - Safety: READ-ONLY. No source modified, no build/run, no commit/push. Secret values never recorded — passwords masked
***.bin/obj/packages/node_modules/.gitexcluded. - Ground truth: Backend is Oracle (ODP.NET unmanaged
Oracle.DataAccess.Client+ stored procedures, no ORM). No SQL Server / dbo / T-SQL. - Machine output:
docs/_generated/inventory-config-integration.json
1. Configuration files
Scanned patterns web.config / app.config / *.exe.config / Web.*.config (also App.config, web.*.config). ~70 matched under source (repo total 85 .config incl. transform variants).
Declare <connectionStrings> (evidence: grep -l "<connectionStrings")
InfocadServer: ECMServer/app.config, IEMServer/app.config, IEMService/App.config, InfocadServer/app.config, WindowService/app.config.
InfocadWeb: WebMachine/CASSANDRA/Web.config, WebMachine/DEM/app.config (empty <connectionStrings/>), WebMachine/RequestCenter/app.config (empty), InfocadIntegration/.../InfocadIntegrationWS/Web.config, all EXELoaders/TicketLoader*, Process{Console,Core,Service}, Queue{Console,Core,Service}, Scheduler{Console,Core,Service}, ServiceJob.LEONARDO, FS/DataAccessLayer, TI/DataAccessLayer.
DEM/app.configandRequestCenter/app.configship with an empty<connectionStrings/>— populated at deploy time (their.dll.configis also on the deploy exclude list, see §4).
Declare Oracle Membership/Role providers (OracleMembershipProvider / OracleRoleProvider)
InfocadServer/{InfocadServer,IEMServer,IEMService,ECMServer,WindowService} app.configs + InfocadIntegration/EXELoaders/{TicketLoaderCUT,TicketLoaderPOLIMI,TicketLoaderSOF,TicketLoaderSOFCAREGGI} + ServiceJob.LEONARDO.
Web tier auth:
CASSANDRA/Web.confighas no<membership>/<roleManager>sections. The web tier authenticates via a customInfocadAuthenticationModule(registered httpModule) plus pluggableExternalAuthSSO. The Oracle ASP.NET providers live in the server-side service configs and integration loaders.
2. Connection-string NAMES (values NOT captured)
providerName="Oracle.DataAccess.Client" throughout.
- Server / shared:
MainConnection,RequestCenterConnection,DEMConnection,OracleProvidersDB(ASP.NET membership/roles). - Web tier (CASSANDRA):
ConnectionString(Infocad core),RequestCenter,DEMdata. - Integration loaders:
INFOCAD_CS,RC_CS,DEM_CS,Oracle,OracleFS,OracleTI, plus reusedConnectionString/RequestCenter/DEMdataandTicketLoader_SINERGIETV.My.MySettings.Exp2INFOCADConnectionString. - Non-DB
addentries seen inside<connectionStrings>:xls/xlsx(OleDbDbProviderFactories, not databases).
3. Connection-rewrite mechanism (deploy-time)
InfocadServer/ConnectionsService — Program.cs (Descor.Applications.ConnectionsService). Evidence: Program.cs:22-116.
- Sets
APP_CONFIG_FILE=<install>/IEMServer.exe.config(hardcoded, line 26) andResetConfigMechanism()clears cachedConfigurationManagerstatic state by reflection. - Reads
<install>/Connections/connections.xml(Connection> child nodesname/connectionString/providerName;xlsadded without provider) andservice.xml(serializedList<string>;[0]=service name). Aborts if service name containswindowservice. RemoveConnectionStrings()clears<connectionStrings>, thenAddConnectionStrings()re-adds each; derivesapplicationNamefrom theMainConnectionvalue (2nd;-token) and removes + re-addsOracleMembershipProvider(system.web/membership) andOracleRoleProvider(system.web/roleManager) rewriting theirapplicationName; saves the.exe.config.- Deletes
connections.xml, sleeps 10s, thenRestartService()→Process.Start(<install>/Connections/restartserver.bat).
connections.xml,service.xml,restartserver.batare deploy-time drops — not in the repo (searched; only an unrelatedrestart.pngexists).StopService/StartServiceviaServiceControllerare present but commented; restart is delegated torestartserver.bat.
4. Deployment artifacts
- Exclude lists (used by copy/robocopy deploy):
InfocadServer/InfocadServer.ExcludeFiles.txt:*Controllers.dll,InfocadServer.exe.config,IEMServer.exe.config,Descor.IEM.IEMDAL.dll.config,ECMServer.exe.config,Oracle.DataAccess.dll,Net8.0.InfocadWeb/WebMachine/WebMachine.ExcludeDir.txt:\Bin\,\DotPlugin\,\DescorBlack\,\DescorBluPlain\,\DescorWhite\,.DataAccess.dll.InfocadWeb/WebMachine/WebMachine.ExcludeFiles.txt:.xml,.config,DEM.dll.config,RequestCenter.dll.config,Cassandra.dll.config,Oracle.DataAccess.dll,Parametric,Descor.Reporting,\DotPlugin\.- Rationale: configs + Oracle client are excluded so per-environment target configs / Oracle install are preserved;
ConnectionsServicethen rewrites connection strings in place.
.bat: onlyCASSANDRA/Authentication/SSOSaml/Schemas/RunXsd.bat(xsd.exe codegen helper — not deploy)..ps1: none. Publish profiles (*.pubxml): none.TESTIWS/*.excludeare Visual Studio "exclude from project" markers, not deploy lists.
5. Background / hosting
InfocadServer Windows services (ServiceBase): InfocadServer (InfocadServer.vb), IEMServer (IEMServer.vb; also the ConnectionsService rewrite target), IEMService, ECMServer (ECMServer.cs), WindowService (excluded from rewrite), GlobalManager, ConnectionsService.
JobScheduler: InfocadServer/JobScheduler uses Quartz.NET — quartz.config, quartz_jobs.xml, QuartzServer.cs/QuartzServerFactory.cs/IQuartzServer.cs, Program.cs, SampleJob.cs. Per-domain Scheduler/ folders also exist under GlobalInterface, GlobalManager, ReportManager, PropertyManager, DocumentBL.
InfocadIntegration services: app triads Process{Console,Core,Service}, Queue{Console,Core,Service}, Scheduler{Console,Core,Service} (Service = ServiceBase); ServiceJob.{ASE,CAI,LEONARDO,RequestCenter,UCSC} (ServiceBase), ServiceJob.CUT; TicketLoaderMBDA runs as a LoaderService : ServiceBase.
6. Integration families
| Family | Interface project | Implementations |
|---|---|---|
| ExternalAuth | Customizations/ExternalAuth.Interface (IAuthManager, IAuthInfo) |
ExternalAuth.BPER (AuthManager), CustomAuth.CUT (AuthManager); web hook CASSANDRA/Authentication/ExternalAuth + SSOSaml |
| ExternalDocSave | Customizations/ExternalDocSave.Interface (IDocManager) |
.Alfresco, .Opentext, .Docs (each DocManager : IDocManager) |
| TicketLoader |
InfocadIntegration/.../EXELoaders |
CUT, MBDA, POLIMI, SOF, SOFCAREGGI, _SINERGIETV, WebApiIntegration |
| InfocadIntegration apps | InfocadIntegration.sln (51 projects) |
Process/Queue/Scheduler triads + BaseIntegration + FS/TI (BL/DAL/EntityLayer) + InfocadIntegrationWS + IntegrationTester/TestUnits + 14 EntityLayer<Customer> |
| IEM / ECM | — | Server tier: IEMServer/IEMService/ECMServer (+ BL/DAL/Controllers/Interface/SharedObjects, IEM has *XNET net8 variants). Web: WebMachine/IEM (IEM.sln), WebMachine/ECM (ECM.sln), CASSANDRA/IEMWeb |
EntityLayer<Customer>: BDI, BPER, BS, CAI, IREN, ISTAT, MIT, NIAGARA, OF, Request, Sicuritalia, TrentinoSvil, Unicatt, FSSU.
7. InfocadServer/SQLScript/ (102 .sql across both repos; not executed)
SQLScript/ root:
CLIENTI/BPER/— per-customer (BPER) DDL:TABLE/(16,DS_SCAMBIO_*,DS_CANONI_ALL,DS_UO,DS_SETTINGS,DS_COMUNI…),TRIGGER/(22,TRG_*codice/stato lock + validation),PACKAGE/(DATA_IMPORT.sql,EXTERNAL_INTEGRATION.sql).UTILITY/—ANALISI INDICI.sql(index analysis),CONSTRAINTS Enable-Disable ALL.sql,DEM_FULLTEXT.sql.VERSION T0/Schedule/—SCRIPT.sql,Create/Tabella Maint_OJ_PROCESS.sql,Clean ODL/ODL_DOPPI - {1 CREATE_STRUCTURE, 2 FIND_REAL_CLONED, 3 RUN_CLEAN}.sql(dedup duplicate work-orders).
SQL shipped outside SQLScript/ (module bootstrap/migrations): RequestCenter.DAL.Oracle/PLSQL/ (full schema: ALLDB/ALLPackages/ALLProcedures/ALLProgrammability/ALLSequences/ALLTables/ALLTriggers + Data/*.sql seed + resetDB.sql + EnableIndexPartition.sql), DEM/DAL.OracleODP/PLSQL/ (AllProgrammability, AllTables), TicketLoaderPOLIMI/DB_SCRIPTS/ (OTRS interface), TicketLoaderSOFCAREGGI/Scripts/ (5 timestamped migrations), ServiceJob.LEONARDO/DB_script/ (11 numbered scripts), and DEFAULTVIEWEROPTIONS.sql copies.
8. Security flags
CASSANDRA/Web.configcommits LIVE plaintext Oracle credentials (active + many commented per-env variants:*_TEST38,*_TESTDEMO,*_GPE,*_TESTFS,*_TESTPMO, andINFOCAD_BIM/REQUESTCENTER_BIM/DEM_BIM). Values masked in evidence.- Several integration
app.configs embed Oracle credentials inline. Deploy excludes.configand ConnectionsService rewrites.exe.config, but committed dev/test credentials persist in git history.
Confidence
- Verified (mechanical): config file list, connection-string names, provider-config list, ConnectionsService flow (read
Program.cs), exclude lists (read verbatim), service/ServiceJob projects, integration family interfaces + implementations, SQLScript inventory. - Inferred: deploy uses copy/robocopy honoring the exclude lists (the lists exist; the copy driver script itself is not committed);
restartserver.bat/connections.xml/service.xmlshape (from code, files are deploy-time). - Unknown: exact deploy orchestrator/CI (none in repo — matches project CLAUDE.md "no CI"); runtime membership provider wiring for the web tier beyond the custom
InfocadAuthenticationModule.