# Features — ieb

Evidence date: 2026-10-13. Inspected revision: `main` at `193927fc`.

Paths are relative to `Evolution Software Unified Framework/Evolution Software Unified Framework/` unless noted.

Feature status in this file:

- **Current** — present on `main` and referenced by code that still compiles into a website or project.
- **Completed in git** — a commit subject records the change; the files remain on `main`.
- **In development** — only on an unmerged branch.
- **Not in this repository** — named by the readme or by another Silicon Ark set, and absent here.
- **Unconfirmed** — files exist; no evidence that a tenant still enables them.

## Current — framework platform

The generic site `core/` and the copied tenant sites expose these surfaces. Module ids are `pNums.Module`. Provenance: **Implemented**.

| Area | Evidence |
|---|---|
| Sign-in, reset, session heartbeat | `Admin_SignIn.aspx`, `Reset.aspx`, `SessionHeartbeat.ashx`, `Default.aspx` |
| Administration shell | `Administration.master`, `Admin.aspx` |
| Canvases and surfaces | `Canvas.aspx`, `Admin_Canvas.aspx`, `Admin_Surface.aspx`, `Admin_SurfaceCode.aspx` |
| Users, customers, setup | `Admin_Users.aspx`, `Admin_Customers.aspx`, `Admin_Setup.aspx` |
| Content, pages, templates, FAQ, media, gallery, banners | Matching `Admin_*.aspx` pages. Modules 1, 7, 8, 9, 20, 45, 66–73 |
| Products, categories, brands, cart | `Admin_Products.aspx`, `Products.aspx`, `Cart.aspx` |
| Sales and purchases | `Sales_SalesItems.aspx`, `pNums.Module.Sales`, `Purchases`. Status enums in `pNums` |
| Tasks and jobcards | `Admin_Tasks.aspx`, `Admin_Jobcards.aspx`. Task status from ToDo through InReview |
| Calendar | `Admin_Calendar.aspx` |
| Campaigns and promotions | `Admin_Campaigns.aspx`, `Admin_Promotions.aspx` |
| Loyalty | `Admin_LoyaltyGroups.aspx`, `Admin_LoyaltyStores.aspx`, `App_Code/Loyalty.cs` |
| Medical practice tables | `Medical_*.aspx` pages (conditions, diagnosis, doctors, ICD-10, schemes, procedures, tariffs, trauma, symptoms) |
| Reports | `Admin_Report.aspx`. Report field types Surface and Custom |
| SMS credit | `Admin_SMSCredit.aspx` |
| File upload and attachments | Field type Attachment; module FileUploader and FileExplorer |
| Notes | Note types General, Email, Task, surface created/changed, Statement, Payment, Claim, Ideas, Billing, Confidential |
| Search, unsubscribe, error | `Search.aspx`, `Unsubscribe.aspx`, `Error.aspx` |
| WCF interaction and version files | `service/framework_service.svc` |
| Object constructor and exporter | `tools/constructor`, `tools/exporter` |
| Scheduler project | `tools/scheduler` and `SchedulerTool/` |
| Themes named in code | `pNums.Theme`: palette, evolution, hawkeye, aquaman |

Field types the surface renderer knows (`pNums.FieldType`) include tab, group, text, number, decimal, picklist, multi-picklist, date, time, datetime, checkbox, radio, grid, attachment, formula, note, address, barcode, Mediswitch, composite, sales, and debtors. **Implemented** as the enum. Which types a given tenant surface uses is data, not a file in git. **Unknown** per tenant.

## Current — named IEB projects

From `ReadME.txt` (**Documented**) plus a `core_custom` folder (**Implemented**).

| Feature | Code | Folder | Notes |
|---|---|---|---|
| Exams | INDE-1 | `core_custom/INDE-1` | `website` = `IEB:: Exams (INDE-1)`. Catalog `Framework_INDE-1`. This is the only tenant with commits after 2025-08-18 |
| CRM | INDE-2 | `core_custom/INDE-2` | Second `website` value `IEB CRM`. Readme says Docs (INDE-4) uses the INDE-2 user table. That sharing was not re-verified in SQL |
| Website | INDE-3 | `core_custom/INDE-3` | `website` = `IEB:: Website`. Not in the readme's named list. In the readme DLL checklist |
| Docs | INDE-4 | `core_custom/INDE-4` | Second `website` value `IEB CRM` |
| CPS | INDE-5 | `core_custom/INDE-5` | Second `website` value `IEB CRM`. Deeper CPS behaviour is in `silicon_ark/ieb-inde-5` for the other repository |
| Postbox | INDE-6 | `core_custom/INDE-6` | Email queue is in this tree. The `website` keys say `IEB (INDE-6 Local)` then `IEB CRM`, not "Postbox" |
| Website | INDE-7 | `core_custom/INDE-7` | `website` = `IEB:: Website`. No `.sln`. Not in the readme's named list |

## Current — other tenant sites

Present as `core_custom` websites. Product names are the `website` appSetting, not a readme. **Implemented** as folders and config text. Whether each is still operated is **Unconfirmed**.

| Code | Name stored in `website` |
|---|---|
| AFRI-1 | Africa Skills |
| ASSE-1 | ASSET |
| CAPI-1 | CEP (CAPI-1 Local), and Palette One Framework |
| CHUU-1 | Chuuz |
| DISA-1 | Disa Scholarship Programme |
| FAST-2 | FastTrack (FAST-2) |
| GLOB-1 | Global Welness Centre (GLOB-1) |
| LIGS-1 | Ligstad Online (LIGS-1) |
| OLIV-1 | Olivedale Superspar (OLIV-1) |
| PROP-1 | The Property Soluton (PROP-1 LOCAL) |
| SHOU-1 | The Shoulder Practice SHOU-1 DEV |
| STUD-1 | Evolution Software Framework DEV |
| TVET-3 | TVET College Website |
| BASE-1, BASE-2, BLUE-1, DEMO-1, EVOL-1, EVOL-2, JEWE-1 | Evolution Software Framework |
| CLOS-1, REAP-1, SCHO-1, SHEN-1, SPAC-1 | `IEB (INDE-1 Local)` copied into the config. See `project-plan.md` discrepancies |

`tools/CAPI.Custom` and `tools/CEP` sit beside the CAPI-1 tenant. Their behaviour was not traced.

## Current — Postbox email queue

**Completed in git** at `38b1cbb` and still on `main`.

- `business/classes/xEmailQueue.cs`
- `library/objects/oEmailQueue.cs` and `oEmailQueueLog`
- `core_custom/INDE-6/App_Code/classes/PostboxEmails.cs`
- `tools/EmailQueueProcessor/` Windows service, project included in `INDE-6.sln`

Details and the retry gap are in `prd.md` FR-015 to FR-017.

## Current — INDE-1 exam changes after 2025-08-18

All of these remain on `main`. Source locations are under `core_custom/INDE-1/`.

| When | Commit | Feature |
|---|---|---|
| 2026-04-17 | `972cb4e` | Direct URL to an exam subject is refused for users below SuperUser who have no subject role. Resource picklists tolerate a missing selected value |
| 2026-05-27 | `bc7f1f2` | Duplicate examination papers and empty subject name. SQL scripts under `scripts/sql/` |
| 2026-05-29 | `0010068` | Paper types, including AET June and November back-up lookups 4188 and 4189. Print-ready paper controls |
| 2026-06-08 | `bdc6799` | Long filename handling on document-pack forms |
| 2026-06-19 | `fd80a94` | Missing information filled when a record is opened |
| 2026-06-24 | `7cdc9bc` | New subject create (`#140`) |
| 2026-06-30 | `509c08f` | Unlink moderator (`#152`, `#153`, `#154`) |
| 2026-07-02 | `2997ebf` | Exam paper filter on the grid |
| 2026-08-04 | `193927fc` | Surface session: do not apply a stale parcel; attach the control before binding so view state keeps picklists and the entity; do not clear the active tab on postback |

Earlier exam-only commits still on `main`:

| When | Commit | Feature |
|---|---|---|
| 2025-03-24 | `bec948b` | Revision numbering sequence |
| 2025-06-17 to 2025-06-20 | `08358ed`, `cc9d2fe`, `03f9be2` | AET backup option added, reverted, added again |
| 2025-08-12 | `e69e29e` | External-moderation compliance criterion surface controls |

## Current — mail transport

`1ee1420` sets TLS 1.2, TLS 1.1, and TLS on `ServicePointManager` before SMTP send. **Completed in git.** File: `library/classes/communication.cs`.

## In development

| Branch | Tip | Subject | Status |
|---|---|---|---|
| `feature/ieb-client-proposals` | `4740d58` (2026-08-21) | Add AI model selection line item to a pilot proposal | Not merged. Diff not reviewed |

`josh_work` (`1e06723`) was merged to `main` by pull request #1 (`83c4c22`, 2026-06-23). It is not an open line of work.

## Not in this repository

| Name | Evidence |
|---|---|
| INDE-8 ISC CRM | `ReadME.txt` only. No `core_custom/INDE-8` |
| INDE-9 ISC Docs | `ReadME.txt` only. No `core_custom/INDE-9` |
| ROBI-1 | `data/Scripts/ROBI-1` exists. No `core_custom/ROBI-1` |
| `repos/`, `sonar-project.old`, `sonarqube_scan.bat` | Named by the onboarding scan. Absent at `193927fc` |
| BCrypt password storage and login lockout | Present in the later `shou-1` repository (`silicon_ark/SHOU-1`). Not in this tip's `Admin_SignIn.aspx.cs` |
| `EvoSoft_Lib` sample website | That is `ieb_template`, a different repository |

## Deprecated or removed

| Item | Evidence |
|---|---|
| AET backup option (first attempt) | `cc9d2fe` reverts `08358ed`. `03f9be2` adds an AET backup option again the same day. The reverted text is not the current behaviour |
| Live Mediswitch gateway keys on INDE-6 | Present but commented. QA keys are the active `add` elements |
| Commented SQL login on INDE-6 `conn` | Commented block above the integrated-security `conn`. Values omitted |

`data/Scripts/archive major 1`, `1.5.9`, `1.6.0`, `1.6.0b`, and `1.6.1` are archived script folders. They were not diffed against the live scripts. Treating them as retired migrations is **Inferred** from the folder names.

`release/1.0.0.1` and `release/1.0.5` are zip bundles. They were not unpacked, so their feature contents are **Unknown**.

## Planned

No roadmap, milestone document, or TODO register was found. The only future-looking text is the unmerged branch subject about a pilot proposal. That is not a planned feature of `main` until someone confirms it.

## Recently changed

The files that differ between the onboarding scan's recorded commit `38b1cbb` and `main` `193927fc` are all under `core_custom/INDE-1/`:

- `App_Code/classes/examHandler.cs`
- `Canvas.aspx.cs`
- `controls/module/surfaceNotes.ascx.cs`
- `controls/structure/navigation.ascx.cs`
- `controls/surface/PrintReadyPapers.ascx` and its form and grid
- `controls/surface_custom/ExaminationAuthoringandModeration_{form,grid,view}`
- `controls/surface_custom/ExaminationDocumentPack_*.ascx.cs` (pack, exam docs, external mod, internal mod)
- `controls/surface_custom/SubjectManagement_form.ascx.cs` and `_grid.ascx.cs`
- `packages.config`
- `scripts/sql/backfill_publ_ExaminationAuthoringandModeration_NoneSubjectSummary_SubjectName.sql`
- `scripts/sql/dedupe_publ_ExaminationAuthoringandModeration_soft_delete.sql`
- `scripts/sql/insert_examination_type_lookups_backup_variants.sql`
- `scripts/sql/list_duplicate_ExaminationAuthoringandModeration_papers.sql`

No other tenant, and no shared library file, changed in that range. Shared mail TLS and the email queue landed at or before `38b1cbb`.
