# AyaNova ↔ Sockeye name map Sockeye's server began as a copy of AyaNova's (`raven/server/AyaNova`). Some names were changed for Sockeye; most code is otherwise the same. Use this map to carry a fix from one codebase to the other. Mapped 2026-10-27, AyaNova `main` (8.3.0) against Sockeye `main` (8.1.x). `compare-with-raven.sh` (beside this file) applies the map and compares the shared files, so only real code differences show: ```bash bash compare-with-raven.sh # every shared file: differing lines, AyaNova lines, path bash compare-with-raven.sh util/DbUtil.cs # the diff for one file (< AyaNova mapped, > Sockeye) ``` ## Renamed | AyaNova | Sockeye | Where | |---|---|---| | namespace `AyaNova.*`, `AyaNova` in text | `Sockeye.*`, `Sockeye` | everywhere | | `AyaType` (enum) | `SockType` | `biz/AyaType.cs` → `biz/SockType.cs` | | `AyaTypeId` | `SockTypeId` | `biz/` | | `AyaEvent` (enum) | `SockEvent` | `biz/` | | `AyaDaysOfWeek` (enum) | `SockDaysOfWeek` | `biz/` | | `AyaNovaVersion` | `SockeyeVersion` | `util/` | | `AyaNovaConnectionString`, `AyaNovaServerURL`, `logRuleAyaNovaItems` | `SockeyeConnectionString`, `SockeyeServerURL`, `logRuleSockeyeItems` | `util/` | | `AyaTypeTranslated`, `ayaTypeColumnName` | `SockTypeTranslated`, `sockTypeColumnName` | DataList, PickList | | stored type property `AType` (JSON `aType`) | `SockType` (JSON `sockType`) | `models/`: Attachment, Event, SearchKey, OpsJob, Report, Review, IntegrationItem, DataListSelectedRequest… | | computed `public AyaType AyaType { get => AyaType.X; }` (JSON `ayaType`) | `public SockType SType { get => SockType.X; }` (JSON `sType`) | business models: Customer, User, Memo, Reminder, Review… | | locals and parameters `ayaType`, `atype`, `ayId`, `ayaEvent` | `sockType`, `sockId`, `sockEvent` (a few `stype`, `sock`) | everywhere | | database columns `atype`, `ayatype`, `ayid`, `ayevent` | `socktype`, `sockid`, `sockevent`, and `stype` on business tables | `util/AySchema.cs`, raw SQL in DataList/PickList/biz | | config keys `AYANOVA_*` | `SOCKEYE_*`, same suffix | `util/ServerBootConfig.cs`, `config.json`, environment | | client `src/api/ayatype.js`, `ayanova-version.js` | `src/api/socktype.js`, `sockeye-version.js` | `raven-client` ↔ `sockeye-client` | The shared `AyaType`/`SockType` members have the same numbers (Customer 8, User 3, Report 57…), and `AyaEvent`/`SockEvent` are identical, so stored values mean the same thing in both. ## Not renamed (same in both) `AyContext`, `AySchema`, `AyaPickListFieldDefinition`, `AyaPickList`, `AyaField`, `AyImportData`, `AyFileInfo`, `AyaNovaLicenseKey`; table names (`aevent`, `asearchkey`, `auser`…); routes (`api/v{version}/…`); the folder layout (`biz`, `ControllerHelpers`, `Controllers`, `DataList`, `generator`, `kpi`, `models`, `PickList`, `resource`, `util`). ## Only in one codebase - **AyaNova only:** the service objects (work orders, quotes, PM, parts, inventory, units, contracts, projects, rates, CSR, loan units, purchase orders, task groups, tax codes), their KPIs, `License.cs` (licence check, client side), `Seeder.cs`, `ReportApiRelay.cs`, `CoreJobLicense`, `CoreJobVersionCheck`, `CoreJobPM*`, `SuperUserDefaultPasswordRoutes`, `CustomerContactRoutes`, and newer config keys (`AYANOVA_TRUSTED_PROXIES`, `AYANOVA_SMTP_ACCEPT_ANY_CERTIFICATE`, `AYANOVA_REMOVE_LICENSE_FROM_DB`, `AYANOVA_REPORT_RENDER_API_URL_OVERRIDE`). Also `AyaDayOfWeek` and `AyaUnitsOfTime` (PM). - **Sockeye only:** licensing and sales (`KeyFactory`, `RavenKeyFactory`, `LicenseBiz`, products, purchases, subscriptions, subscription servers and their states, trial licence requests, vendor notifications, `GZCase`), `SockBot*` jobs, `FetchController`, `RvfController`, `RvrController`, `AutoOrderProcessingUtil`. ## How close the shared files are (2026-10-27) 288 server files exist in both. After mapping, 156 are identical, about 55 differ by 1–10 lines, and the rest differ more, mostly because one codebase has objects the other lacks. Low-level files that differ by more than the names, worth checking when a fix touches them: | File | Differing lines | Main reason | |---|---|---| | `util/RunProgram.cs` | most | AyaNova has `RunNoShell` (backup without a shell, 8.3.0); Sockeye still has the old `Run` | | `generator/CoreJobBackup.cs` | ~50 | same: Sockeye still passes the password in the `pg_dump` URI through a shell | | `util/DbUtil.cs`, `util/AySchema.cs` | many | different tables; check `AdminConnectionString` and drop-and-recreate by hand | | `DataList/DataListSqlFilterCriteriaBuilder.cs` | ~155 | filter fixes went into each separately; compare before changing either | | `util/ServerBootConfig.cs`, `Program.cs`, `Startup.cs` | many | config keys and service wiring differ | | `util/FileUtil.cs`, `util/StringUtil.cs`, `util/DateUtil.cs`, `generator/CoreJobNotify.cs`, `generator/CoreJobSweeper.cs`, `util/Mailer.cs` | 15–90 | partly real drift; check with the script | Rerun the script for current numbers; this table is a snapshot. ## Carrying a fix across 1. Make and test the fix in one codebase. 2. Run `bash compare-with-raven.sh ` on each file touched: if the file matches apart from names, the same change applies with the names above. 3. Record in both repos whether the fix applies (done, n/a, or deferred). In AyaNova that is `raven/devdocs/modernization/NET10-PORT.md`.