---
title: Business rules
summary: Rules enforced around the call to the remote service.
status: draft
owner: SAIF.Core documentation
last_reviewed: 2026-09-24
---

# Business rules

The wrapper enforces two client-side rules: it treats the `Code` argument strictly as a pool code rather than a database schema, and it decodes a sentinel token in the Oracle response before returning it to the caller.

---

## BR-DBC-001 Pool code is not a schema

| Field | Value |
| --- | --- |
| Statement | The `userName` argument passed to `GetOracleConnectionString`/`GetSqlServerConnectionString` is a SAIF pool code (for example `CLM`, `IMG`, `AGNT`, `CRYPT`) sent as `ConnectRequestInfo.Code`, never a database schema |
| Trigger | Evaluated whenever `DbConnectionServiceProxy.GetOracleConnectionString` or `GetSqlServerConnectionString` constructs the request message |
| Enforcement | Call site — `ConnectRequestInfo { Code = userName, ... }` |
| Origin | call site |
| Outcome | The actual Oracle or SQL Server user/schema is resolved server-side and is unknown from this repository's source |
| Reached from | [`GetODPConnectString`](reference.md#getodpconnectstring), [`GetSQLConnectString`](reference.md#getsqlconnectstring) — via `DbConnectionServiceProxy.GetOracleConnectionString`/`GetSqlServerConnectionString` |
| Related operation | [`GetODPConnectString`](reference.md#getodpconnectstring), [`GetSQLConnectString`](reference.md#getsqlconnectstring) |
| Source | `Services/SAIF.Services.Web.Proxies/Legacy/DbConnectionsServiceProxy.cs:25-30,38-44` |

---

## BR-DBC-002 ZSPECIALCHAR token decoding

| Field | Value |
| --- | --- |
| Statement | The literal token `"ZSPECIALCHAR"` in the `GetODPConnectString` response is replaced with the ASCII BEL character `(char)7` before the connection string is returned to the caller |
| Trigger | Evaluated after every `GetODPConnectString` call, before the method returns |
| Enforcement | Call site — `.Replace("ZSPECIALCHAR", ((char)7).ToString())` |
| Origin | call site |
| Outcome | A special character (likely part of an Oracle password*) is restored to its literal form; a `null` result from the operation would throw `NullReferenceException` at this call* |
| Reached from | [`GetODPConnectString`](reference.md#getodpconnectstring) — via `DbConnectionServiceProxy.GetOracleConnectionString` |
| Related operation | [`GetODPConnectString`](reference.md#getodpconnectstring) |
| Source | `Services/SAIF.Services.Web.Proxies/Legacy/DbConnectionsServiceProxy.cs:33` |

---

## Related documentation
- [Client index](index.md)
- [Overview](overview.md)
- [Architecture](architecture.md)
- [Contract](contract.md)
- [Operation map](operation-map.md)
- [Client reference](reference.md)
- [Consumption](consumption.md)
- [Dependencies](dependencies.md)
- [Tech debt](tech-debt.md)

> **Note:** Statements marked with `*` were inferred from code structure or contextual
> evidence.

## Sources
- `Services/SAIF.Services.Web.Proxies/Legacy/DbConnectionsServiceProxy.cs`
