data-api-builder icon indicating copy to clipboard operation
data-api-builder copied to clipboard

🥕⭐ [Enhancement]: Extend Application Name

Open JerryNixon opened this issue 1 year ago • 2 comments

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_name longer 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 --output is omitted, the output is simply Console.Write.
  • Decode must be tolerant in the event that app_name was truncated for some reason.

JerryNixon avatar Oct 03 '24 20:10 JerryNixon

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?

abhishekkumams avatar Oct 29 '24 05:10 abhishekkumams

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.

abhishekkumams avatar Nov 06 '24 04:11 abhishekkumams