You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Add additional charts.
Correct existing charts.
Add additional information about the update service.
Add links to the component map table.
Change from bold section headers to actual headers.
- **Azure Table Storage** for update service configuration
63
66
- **LicenseGPT** - Chat interactions are transient. Prompts are sent to the API and responses are returned in-session, never stored.
64
67
65
-
## Update service (channels & rings)
68
+
## SHIELD Update Service
66
69
67
70
Data Gateway controls update delivery using **channels** (e.g., stable, beta, alpha) and **rings** (e.g., ring 0, ring 1). Configuration is stored in **Azure Table Storage**; package files are stored in **Azure Blob Storage**.
68
71
72
+
### Example Channel Configuration
73
+
74
+
The below channel configuration demonstrates how the update system can be configured where various tenants are assigned by default to a ring in a channel.
75
+
The tenant's default channel can be overridden by API call. If this happens it defaults to ring 0 on the other channel.
76
+
In the below diagram, the channel is not named, all channels follow the below architecture.
77
+
There can be an unlimited number of rings in a channel. `N...` represents all numbers above 1.
78
+
79
+
The Alpha channel is RBAC gated and is not available by default. SHI has to approve Alpha access per-tenant.
80
+
81
+
```mermaid
82
+
flowchart TD
83
+
84
+
%% Tenant Configs
85
+
CxTenant1[/Tenant 1\]
86
+
CxTenant2[/Tenant 2\]
87
+
CxTenant3[/Tenant 3\]
88
+
DevTenant1[/Dev Tenant 1\]
89
+
DevTenant2[/Dev Tenant 2\]
90
+
91
+
%% Channel Example
92
+
subgraph Channel["Channel"]
93
+
Ring0(("Ring 0<br>Latest"))
94
+
Ring1(("Ring 1<br>Latest"))
95
+
RingN(("Ring N...<br>Previous"))
96
+
end
97
+
98
+
%% Available Versions
99
+
Versions["Latest: 3.0.0<br>Previous: 2.5.0"]
100
+
101
+
%% Relationships
102
+
Versions --> Channel
103
+
Ring0 --> CxTenant1
104
+
Ring1 --> CxTenant2
105
+
RingN --> CxTenant3
106
+
Ring0 --> DevTenant1
107
+
Ring0 --> DevTenant2
108
+
```
109
+
110
+
### Data Flow
111
+
112
+
The below chart demonstrates how the data storage systems relate to each other and how the configurations flow to Data Gateway.
113
+
69
114
```mermaid
70
115
flowchart LR
71
116
72
117
%% Tenant and API
73
-
TEN([Tenant]):::external
74
-
API[Data Gateway API]:::component
118
+
Client([SHIELD])
119
+
API{{Data Gateway API}}
75
120
76
121
%% Configuration in Table Storage
77
-
subgraph CFG[Azure Table Storage - update config]
78
-
79
-
%% spacer line to avoid overlap with title
80
-
space[" "]:::transparent
81
-
82
-
CHAN[["Channels (latest, previous)"]]:::datastore
83
-
RING[["Rings (latest true or false)"]]:::datastore
| Data Gateway UI | Web Browser, [GitHub Pages](https://docs.github.com/en/pages)| Entry point for user interactions (Tenant Manager, LicenseGPT) |
172
+
| Data Gateway API | HTTPS, [Entra ID auth](https://learn.microsoft.com/en-us/entra/identity-platform/application-model#multitenant-apps)| Authenticates tokens and brokers access to data stores |
| LicenseGPT |[Azure OpenAI Services](https://learn.microsoft.com/en-us/azure/ai-foundry/openai/overview)| Provides LLM and Embeddings to the Data Gateway service |
0 commit comments