🥕⭐ [Enhancement]: Extend Application Name
What
MSSQL telemetry in the application_name
Format
dab_oss_1.2.3.4+<context-settings>|<general-settings>|<runtime-settings>|<entity-settings>
[!Note] Sections are additive. New telemetry can be added at the end, before the
|, for backwards compat.
Example
dab_oss_1.2.3.4+RTPAA|11111M10|10111101M|111110111001M1
[!Important] If a client provides an
application_namelonger than 128 characters, SQL Server silently truncates it to 128.
Telemetry Schema
Any value indicates the encoding logic.
Context Settings
| Ordinal | Property | Values |
|---|---|---|
| 1 | Protocol | R=REST, G=GraphQL, M=MCP |
| 2 | Object | T=Table, V=View, S=Stored Proc, P=Persisted Doc |
| 3 | Source | S=SQL, D=DWSQL, P=Postgres, M=MySQL, C=Cosmos |
| 4 | Role | N=Anonymous, A=Authenticated, C=Custom |
| 5 | Auth | A=Application, O=OBO |
General Settings
| Ordinal | Property | Values |
|---|---|---|
| 1 | rest.enabled | 0/1/M=Missing |
| 2 | graphql.enabled | 0/1/M |
| 3 | mcp.enabled | 0/1/M |
| 4 | runtime.host.mode | 0=Dev, 1=Prod, M=Missing |
| 5 | data-source-files | 0/1/M |
| 6 | azure-key-vault | 0/1/M |
| 7 | health.enabled | 0/1/M |
| 8 | cache.enabled | 0/1/M |
| 8 | cache.l2 | 0/1/M |
Runtime Settings
| Ordinal | Property | Values |
|---|---|---|
| 1 | rest.request-body-strict | 0/1/M |
| 2 | graphql.allow-introspection | 0/1/M |
| 3 | graphql.multiple-mutations.create.enabled | 0/1/M |
| 4 | telemetry.open-telemetry.enabled | 0/1/M |
| 5 | telemetry.application-insights.enabled | 0/1/M |
| 6 | telemetry.azure-log-analytics.enabled | 0/1/M |
| 7 | telemetry.file-sink.enabled | 0/1/M |
| 8 | pagination.next-link-relative | 0/1/M |
Entity Settings
| Ordinal | Property | Values |
|---|---|---|
| 1 | Entities: any use table | 0/1/M |
| 2 | Entities: any use view | 0/1/M |
| 3 | Entities: any use stored procedures | 0/1/M |
| 4 | Entities: any use wildcard | 0/1/M |
| 5 | Entities: any use persisted documents | 0/1/M |
| 6 | Entities: any use cache | 0/1/M |
| 7 | Entities: any use MCP dml-tools | 0/1/M |
| 8 | Entities: any use MCP custom-tool | 0/1/M |
| 9 | Entities: any use REST | 0/1/M |
| 10 | Entities: any use GraphQL | 0/1/M |
| 11 | Entities: any use policies | 0/1/M |
| 12 | Entities: any use descriptions | 0/1/M |
| 13 | Entities: any use relationships | 0/1/M |
| 13 | Entities: any use mappings | 0/1/M |
Command line
dab appname --encode dab-config.json
Outputs the app_name, like : dab_oss_1.2.3.4+RTPAA|11111M10|10111101M|111110111001M1
dab appname [--output file.json] --decode dab_oss_1.2.3.4+RTPAA|11111M10|10111101M|111110111001M1
- When
--outputis omitted, the output is simplyConsole.Write. - Decode must be tolerant in the event that
app_namewas truncated for some reason.
Do we want the decoder to be part of DAB, maybe in the CLI itself which takes in the encoded-value and try to generate the config out of it?
Original PR for adding Application Name: https://github.com/Azure/data-api-builder/pull/1620 this can be referenced to see what files might need change.