Skip to content

Overview of Configuration Files


web.config (/app/web.config)

The primary server-side configuration file. Every environment-specific setting lives here.

<connectionStrings>

<add name="MyCompany"
     connectionString="Data Source=mart.zadns.co.za;
       Initial Catalog=conprosoft_bmhcrp;
       Persist Security Info=True;
       User ID=conprosoft_dbadmin;
       Password=[configured]"
     providerName="System.Data.SqlClient"/>
  • MyCompany is the connection string name used throughout the entire application — by the framework, all controllers, and all custom business rules.
  • On deployment to a new environment, update Data Source, Initial Catalog, User ID, and Password.

<appSettings> — BLOB Adapter Keys

Each key maps a named BLOB adapter to a storage mechanism. In the current deployment all values are empty strings, meaning BLOB data is stored directly in SQL Server (the default behaviour). If Azure Blob Storage or a filesystem path is configured in future, the values here would point to the storage connection.

Key Entity Field
PersonResourceProfilePictureBlobAdapter Person ProfilePicture
TrainingCertificateBlobAdapter Training Certificate
MedicalScreeningMedicalDocumentBlobAdapter MedicalScreening MedicalDocument
GoodsReceiptAttachmentBlobAdapter GoodsReceipt Attachment
PaymentsAttachmentBlobAdapter Payments Attachment
PurchaseOrdersAttachmentBlobAdapter PurchaseOrders Attachment
RequisitionQuotationBlobAdapter Requisition Quotation
DeliveryNoteDeliveryNoteBlobAdapter DeliveryNote DeliveryNote
ProjectProjectAgreementBlobAdapter Project ProjectAgreement
SupportingDocumentDocumentBlobAdapter SupportingDocument Document
SubTaskSubTaskAttachmentBlobAdapter SubTask SubTaskAttachment
TaskTaskAttachmentBlobAdapter Task TaskAttachment
IssueRegisterIssueAttachmentBlobAdapter IssueRegister IssueAttachment
DisciplinaryActionDisciplinaryActionAttachmentBlobAdapter DisciplinaryAction DisciplinaryActionAttachment
FormalEducationDocumentBlobAdapter Education Document
IPACDocumentBlobAdapter / I_P_A_CDocumentBlobAdapter IPAC Document
Covid19ScreeningDocumentBlobAdapter COVID19_Screening Document
PolicyDocumentsPolicyDocumentBlobAdapter PolicyDocuments PolicyDocument
OperatorSetupLogoBlobAdapter OperatorSetup Logo
BlobStorageKey Global Azure Blob Storage account key (unused)

<system.web> — Key Settings

Setting Current Value Notes
compilation debug true Change to false in production for performance.
targetFramework 4.8 .NET Framework 4.8 — must match the server installation.
authentication mode Forms Forms authentication with login URL ~/login, session timeout 725 minutes.
sessionState mode CustomApplicationSessionState Custom session provider built into the framework.
globalization culture en-ZA South Africa locale for dates, currency, and number formatting.
httpRuntime maxRequestLength 2097151 KB Allows large file uploads.
httpCookies sameSite Strict Security hardening on session cookies.

<system.net><mailSettings>

See the Email Configurations page for full details.


touch-settings.json (/app/touch-settings.json)

Configures the CONPROSOFT client. Key sections:

Setting Current Value Purpose
defaultUI "TouchUI" Activates the responsive SPA interface.
appName "ConproSoft (Development)" Application name shown in the UI header. Remove (Development) for production.
server.bootstrap.js true Improves performance of static bootstrap pages.
server.rest.enabled true REST API flag — configured but not operationally active.
server.rest.authorization.keys Static key mapped to admin API key for REST access. Rotate before production.
server.2FA.setup.mode null Two-factor authentication mode — not enforced by default.
server.2FA.setup.methods app: true, email: true Supported 2FA methods if enabled.
client.enabled false Progressive Web App (PWA) offline mode — disabled.
map.apiKey null Google Maps API key — not configured.

Web.Sitemap (/app/Web.Sitemap)

Defines the full navigation tree of the application. Each <siteMapNode> has:

  • title — display name in the sidebar menu.
  • url — the page URL (maps to a file in /app/pages/).
  • roles — comma-separated list of roles that can see this item.
  • cssClass — Material icon class for the menu icon (e.g. material-icon-request_quote).

The framework uses ApplicationSiteMapProvider (registered in web.config) to read this file and apply security trimming — users only see menu items for roles they hold.


config/oauth2-schema.yaml

Present as part of the standard RAD Framework. Defines the OAuth2 configuration schema. Not active in CONPROSOFT — no third-party identity providers are configured.

web.config

The web.config file in /app defines application-wide configuration, including:

  • Connection strings (e.g. MyCompany for SQL Server access)
  • Compilation target and .NET Framework version
  • Authentication and membership configuration
  • SMTP settings under <system.net>
  • BLOB adapter keys in <appSettings>
  • HTTP handlers and modules required by Code On Time

Key sections to review and update for each environment:

  • <connectionStrings> – database server, database name, credentials.
  • <appSettings> – BLOB adapter settings, custom keys, feature toggles.
  • <system.net> – SMTP settings.
  • <system.web> – authentication mode, custom error settings, and session state.

touch-settings.json

The touch-settings.json file configures the Code On Time Touch UI:

  • appName – application name displayed in the UI (set to “CONPROSOFT (PROD)”).
  • defaultUI – usually "TouchUI", indicating the responsive interface.
  • Theme, icons, and PWA-related manifest entries.
  • Start pages and layout behaviours.

This file should be updated when:

  • Rebranding or renaming the application.
  • Changing the default start view or navigation preferences.
  • Updating icons or PWA metadata for mobile devices.

Other Configuration Artifacts

  • config/oauth2-schema.yaml – defines OAuth2 schema for potential authentication integration.
  • Web.Sitemap – optional sitemap definition for navigation (if used).
  • Web.Sitemap.en-ZA.txt and ClientLibrary.en-ZA.txt – localisation content.

All configuration changes should be tested in a staging environment before being applied to production.