Skip to content

Commit 7beccaa

Browse files
author
Hou Chi Chan
committed
Rename customer-facing name from CYOT to External Phone Provider
CYOT remains the internal code name and is unchanged in wire-level identifiers (type names, CYOT_JWE_PRIVATE_KEY_PEM, SAS User-Agent); CONTRACT.md now notes this explicitly.
1 parent a33d40e commit 7beccaa

6 files changed

Lines changed: 17 additions & 13 deletions

File tree

‎README.md‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# CYOT Azure Function Sample
1+
# External Phone Provider — Azure Function Sample
22

33
A provider-agnostic **OTP-delivery Azure Function** sample, implemented across multiple languages.
44
Each language folder is a self-contained implementation of the **same design and the same

‎docs/CONTRACT.md‎

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,12 @@
1-
# CYOT Function — Language-Agnostic Contract
1+
# External Phone Provider Function — Language-Agnostic Contract
22

33
This is the **source of truth** every language implementation (`javascript/`, `dotnet/`, `python/`)
44
must conform to. If an implementation disagrees with this document, the implementation is wrong.
55

6+
> **Naming.** "CYOT" (Choose Your Own Telecom) is the internal code name for this feature. It still
7+
> appears in wire-level identifiers that must not change — type names (`SendCyotOtpRequest`,
8+
> `CyotDeliveryContext`), the `CYOT_JWE_PRIVATE_KEY_PEM` app setting, and the caller's `User-Agent`.
9+
610
The design is intentionally simple: **one dispatch engine + drop-in provider adapters**. Adding a
711
provider is adding one adapter file; adding a language is re-implementing this contract.
812

‎docs/ONBOARDING.md‎

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
# Customer Onboarding
22

3-
A high-level guide to setting up, securing, and deploying the CYOT OTP Function. The steps are the same
4-
for every language (`javascript/`, `dotnet/`, `python/`); only the build/run commands differ (see each
5-
language's README). All config keys, Key Vault secret names, and behaviors are defined once in
6-
[CONTRACT.md](CONTRACT.md).
3+
A high-level guide to setting up, securing, and deploying the External Phone Provider OTP Function. The
4+
steps are the same for every language (`javascript/`, `dotnet/`, `python/`); only the build/run commands
5+
differ (see each language's README). All config keys, Key Vault secret names, and behaviors are defined
6+
once in [CONTRACT.md](CONTRACT.md).
77

88
## 1. Pick a language and a provider
99

‎dotnet/README.md‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
# CYOT Function — C# (.NET isolated worker)
1+
# External Phone Provider Function — C# (.NET isolated worker)
22

3-
A C# implementation of the CYOT OTP-delivery Function, conforming to the shared
3+
A C# implementation of the External Phone Provider OTP-delivery Function, conforming to the shared
44
[contract](../docs/CONTRACT.md). Same design as the [`javascript/`](../javascript/) version:
55
one dispatch engine + drop-in provider adapters, env-provisioned config, secrets in Key Vault.
66

‎javascript/README.md‎

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# CYOT — Azure Function (delivery endpoint)
1+
# External Phone Provider — Azure Function (delivery endpoint)
22

33
An Azure Function (Node.js) that receives an OTP dispatch request and forwards it to a telephony
44
provider (**Infobip**, **Telesign**, **Sinch**, or **Soprano**).
@@ -29,7 +29,7 @@ func azure functionapp publish <your-function-app-name>
2929

3030
## Configuration
3131

32-
CYOT is **plug-and-play by provider**. The **shared infrastructure** — token validation, dispatch,
32+
The endpoint is **plug-and-play by provider**. The **shared infrastructure** — token validation, dispatch,
3333
response normalization, message templating, and
3434
logging — is identical for every provider and needs no per-provider code. You **choose one provider**;
3535
the only provider-specific parts are its **adapter** (the outbound API call) and the **few settings** below.
@@ -155,7 +155,7 @@ The engine handles the rest — provider resolution, Key Vault credential fetch
155155

156156
## Request contract
157157

158-
`POST /api/SendOtp` — the SAS → CYOT delivery endpoint. The cleartext body is a routing envelope; the
158+
`POST /api/SendOtp` — the SAS → External Phone Provider delivery endpoint. The cleartext body is a routing envelope; the
159159
PII (phone + rendered message, which contains the passcode) is encrypted in a JWE. See
160160
[../docs/CONTRACT.md](../docs/CONTRACT.md) for the full contract.
161161

‎python/README.md‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
# CYOT Function — Python (v2 model)
1+
# External Phone Provider Function — Python (v2 model)
22

3-
A Python implementation of the CYOT OTP-delivery Function, conforming to the shared
3+
A Python implementation of the External Phone Provider OTP-delivery Function, conforming to the shared
44
[contract](../docs/CONTRACT.md). Same design as the [`javascript/`](../javascript/) and
55
[`dotnet/`](../dotnet/) versions: one dispatch engine + drop-in provider adapters, env-provisioned
66
config, secrets in Key Vault.

0 commit comments

Comments
 (0)