Skip to main content

saluki_components/config_registry/datadog/
trace_obfuscation.rs

1//! Annotations for trace obfuscation transform configuration keys.
2use crate::config_registry::{generated::schema, structs, SalukiAnnotation, SchemaEntry, SupportLevel, ValueType};
3
4// Custom statics for SQL obfuscation fields: no corresponding entries exist in the
5// vendored Agent schema, so these are defined manually with the correct paths.
6
7static SQL_DBMS: SchemaEntry = SchemaEntry {
8    yaml_path: "apm_config.obfuscation.sql.dbms",
9    env_vars: &[],
10    value_type: ValueType::String,
11    default: None,
12};
13
14static SQL_DOLLAR_QUOTED: SchemaEntry = SchemaEntry {
15    yaml_path: "apm_config.obfuscation.sql.dollar_quoted_func",
16    env_vars: &[],
17    value_type: ValueType::Bool,
18    default: None,
19};
20
21static SQL_KEEP_ALIAS: SchemaEntry = SchemaEntry {
22    yaml_path: "apm_config.obfuscation.sql.keep_sql_alias",
23    env_vars: &[],
24    value_type: ValueType::Bool,
25    default: None,
26};
27
28static SQL_REPLACE_DIGITS: SchemaEntry = SchemaEntry {
29    yaml_path: "apm_config.obfuscation.sql.replace_digits",
30    env_vars: &[],
31    value_type: ValueType::Bool,
32    default: None,
33};
34
35static SQL_TABLE_NAMES: SchemaEntry = SchemaEntry {
36    yaml_path: "apm_config.obfuscation.sql.table_names",
37    env_vars: &[],
38    value_type: ValueType::Bool,
39    default: None,
40};
41
42crate::declare_annotations! {
43    /// `apm_config.obfuscation.credit_cards.enabled`
44    CONFIG_CREDIT_CARDS_ENABLED = SalukiAnnotation {
45        schema: &schema::APM_CONFIG_OBFUSCATION_CREDIT_CARDS_ENABLED,
46        support_level: SupportLevel::Full,
47        additional_yaml_paths: &[],
48        env_var_override: None,
49        used_by: &[structs::TRACE_OBFUSCATION_CONFIGURATION],
50        value_type_override: None,
51        test_json: Some("true"),
52    };
53
54    /// `apm_config.obfuscation.credit_cards.keep_values`
55    CONFIG_CREDIT_CARDS_KEEP_VALUES = SalukiAnnotation {
56        schema: &schema::APM_CONFIG_OBFUSCATION_CREDIT_CARDS_KEEP_VALUES,
57        support_level: SupportLevel::Full,
58        additional_yaml_paths: &[],
59        env_var_override: None,
60        used_by: &[structs::TRACE_OBFUSCATION_CONFIGURATION],
61        value_type_override: None,
62        test_json: None,
63    };
64
65    /// `apm_config.obfuscation.credit_cards.luhn`
66    CONFIG_CREDIT_CARDS_LUHN = SalukiAnnotation {
67        schema: &schema::APM_CONFIG_OBFUSCATION_CREDIT_CARDS_LUHN,
68        support_level: SupportLevel::Full,
69        additional_yaml_paths: &[],
70        env_var_override: None,
71        used_by: &[structs::TRACE_OBFUSCATION_CONFIGURATION],
72        value_type_override: None,
73        test_json: None,
74    };
75
76    /// `apm_config.obfuscation.elasticsearch.enabled`
77    CONFIG_ES_ENABLED = SalukiAnnotation {
78        schema: &schema::APM_CONFIG_OBFUSCATION_ELASTICSEARCH_ENABLED,
79        support_level: SupportLevel::Full,
80        additional_yaml_paths: &[],
81        env_var_override: None,
82        used_by: &[structs::TRACE_OBFUSCATION_CONFIGURATION],
83        value_type_override: None,
84        test_json: Some("true"),
85    };
86
87    /// `apm_config.obfuscation.elasticsearch.keep_values`
88    CONFIG_ES_KEEP_VALUES = SalukiAnnotation {
89        schema: &schema::APM_CONFIG_OBFUSCATION_ELASTICSEARCH_KEEP_VALUES,
90        support_level: SupportLevel::Full,
91        additional_yaml_paths: &[],
92        env_var_override: None,
93        used_by: &[structs::TRACE_OBFUSCATION_CONFIGURATION],
94        value_type_override: None,
95        test_json: None,
96    };
97
98    /// `apm_config.obfuscation.elasticsearch.obfuscate_sql_values`
99    CONFIG_ES_OBFUSCATE_SQL_VALUES = SalukiAnnotation {
100        schema: &schema::APM_CONFIG_OBFUSCATION_ELASTICSEARCH_OBFUSCATE_SQL_VALUES,
101        support_level: SupportLevel::Full,
102        additional_yaml_paths: &[],
103        env_var_override: None,
104        used_by: &[structs::TRACE_OBFUSCATION_CONFIGURATION],
105        value_type_override: None,
106        test_json: None,
107    };
108
109    /// `apm_config.obfuscation.http.remove_paths_with_digits`
110    CONFIG_HTTP_REMOVE_PATH_DIGITS = SalukiAnnotation {
111        schema: &schema::APM_CONFIG_OBFUSCATION_HTTP_REMOVE_PATHS_WITH_DIGITS,
112        support_level: SupportLevel::Full,
113        additional_yaml_paths: &[],
114        env_var_override: None,
115        used_by: &[structs::TRACE_OBFUSCATION_CONFIGURATION],
116        value_type_override: None,
117        test_json: None,
118    };
119
120    /// `apm_config.obfuscation.http.remove_query_string`
121    CONFIG_HTTP_REMOVE_QUERY_STRING = SalukiAnnotation {
122        schema: &schema::APM_CONFIG_OBFUSCATION_HTTP_REMOVE_QUERY_STRING,
123        support_level: SupportLevel::Full,
124        additional_yaml_paths: &[],
125        env_var_override: None,
126        used_by: &[structs::TRACE_OBFUSCATION_CONFIGURATION],
127        value_type_override: None,
128        test_json: None,
129    };
130
131    /// `apm_config.obfuscation.memcached.enabled`
132    CONFIG_MEMCACHED_ENABLED = SalukiAnnotation {
133        schema: &schema::APM_CONFIG_OBFUSCATION_MEMCACHED_ENABLED,
134        support_level: SupportLevel::Full,
135        additional_yaml_paths: &[],
136        env_var_override: None,
137        used_by: &[structs::TRACE_OBFUSCATION_CONFIGURATION],
138        value_type_override: None,
139        test_json: Some("true"),
140    };
141
142    /// `apm_config.obfuscation.memcached.keep_command`
143    CONFIG_MEMCACHED_KEEP_COMMAND = SalukiAnnotation {
144        schema: &schema::APM_CONFIG_OBFUSCATION_MEMCACHED_KEEP_COMMAND,
145        support_level: SupportLevel::Full,
146        additional_yaml_paths: &[],
147        env_var_override: None,
148        used_by: &[structs::TRACE_OBFUSCATION_CONFIGURATION],
149        value_type_override: None,
150        test_json: None,
151    };
152
153    /// `apm_config.obfuscation.mongodb.enabled`
154    CONFIG_MONGO_ENABLED = SalukiAnnotation {
155        schema: &schema::APM_CONFIG_OBFUSCATION_MONGODB_ENABLED,
156        support_level: SupportLevel::Full,
157        additional_yaml_paths: &[],
158        env_var_override: None,
159        used_by: &[structs::TRACE_OBFUSCATION_CONFIGURATION],
160        value_type_override: None,
161        test_json: Some("true"),
162    };
163
164    /// `apm_config.obfuscation.mongodb.keep_values`
165    CONFIG_MONGO_KEEP_VALUES = SalukiAnnotation {
166        schema: &schema::APM_CONFIG_OBFUSCATION_MONGODB_KEEP_VALUES,
167        support_level: SupportLevel::Full,
168        additional_yaml_paths: &[],
169        env_var_override: None,
170        used_by: &[structs::TRACE_OBFUSCATION_CONFIGURATION],
171        value_type_override: None,
172        test_json: None,
173    };
174
175    /// `apm_config.obfuscation.mongodb.obfuscate_sql_values`
176    CONFIG_MONGO_OBFUSCATE_SQL_VALUES = SalukiAnnotation {
177        schema: &schema::APM_CONFIG_OBFUSCATION_MONGODB_OBFUSCATE_SQL_VALUES,
178        support_level: SupportLevel::Full,
179        additional_yaml_paths: &[],
180        env_var_override: None,
181        used_by: &[structs::TRACE_OBFUSCATION_CONFIGURATION],
182        value_type_override: None,
183        test_json: None,
184    };
185
186    /// `apm_config.obfuscation.opensearch.enabled`
187    CONFIG_OPEN_SEARCH_ENABLED = SalukiAnnotation {
188        schema: &schema::APM_CONFIG_OBFUSCATION_OPENSEARCH_ENABLED,
189        support_level: SupportLevel::Full,
190        additional_yaml_paths: &[],
191        env_var_override: None,
192        used_by: &[structs::TRACE_OBFUSCATION_CONFIGURATION],
193        value_type_override: None,
194        test_json: Some("true"),
195    };
196
197    /// `apm_config.obfuscation.opensearch.keep_values`
198    CONFIG_OPEN_SEARCH_KEEP_VALUES = SalukiAnnotation {
199        schema: &schema::APM_CONFIG_OBFUSCATION_OPENSEARCH_KEEP_VALUES,
200        support_level: SupportLevel::Full,
201        additional_yaml_paths: &[],
202        env_var_override: None,
203        used_by: &[structs::TRACE_OBFUSCATION_CONFIGURATION],
204        value_type_override: None,
205        test_json: None,
206    };
207
208    /// `apm_config.obfuscation.opensearch.obfuscate_sql_values`
209    CONFIG_OPEN_SEARCH_OBFUSCATE_SQL_VALUES = SalukiAnnotation {
210        schema: &schema::APM_CONFIG_OBFUSCATION_OPENSEARCH_OBFUSCATE_SQL_VALUES,
211        support_level: SupportLevel::Full,
212        additional_yaml_paths: &[],
213        env_var_override: None,
214        used_by: &[structs::TRACE_OBFUSCATION_CONFIGURATION],
215        value_type_override: None,
216        test_json: None,
217    };
218
219    /// `apm_config.obfuscation.redis.enabled`
220    CONFIG_REDIS_ENABLED = SalukiAnnotation {
221        schema: &schema::APM_CONFIG_OBFUSCATION_REDIS_ENABLED,
222        support_level: SupportLevel::Full,
223        additional_yaml_paths: &[],
224        env_var_override: None,
225        used_by: &[structs::TRACE_OBFUSCATION_CONFIGURATION],
226        value_type_override: None,
227        test_json: Some("true"),
228    };
229
230    /// `apm_config.obfuscation.redis.remove_all_args`
231    CONFIG_REDIS_REMOVE_ALL_ARGS = SalukiAnnotation {
232        schema: &schema::APM_CONFIG_OBFUSCATION_REDIS_REMOVE_ALL_ARGS,
233        support_level: SupportLevel::Full,
234        additional_yaml_paths: &[],
235        env_var_override: None,
236        used_by: &[structs::TRACE_OBFUSCATION_CONFIGURATION],
237        value_type_override: None,
238        test_json: None,
239    };
240
241    /// `apm_config.obfuscation.sql.dbms`
242    CONFIG_SQL_DBMS = SalukiAnnotation {
243        schema: &SQL_DBMS,
244        support_level: SupportLevel::Full,
245        additional_yaml_paths: &[],
246        env_var_override: None,
247        used_by: &[structs::TRACE_OBFUSCATION_CONFIGURATION],
248        value_type_override: None,
249        test_json: None,
250    };
251
252    /// `apm_config.obfuscation.sql.dollar_quoted_func`
253    CONFIG_SQL_DOLLAR_QUOTED_FUNC = SalukiAnnotation {
254        schema: &SQL_DOLLAR_QUOTED,
255        support_level: SupportLevel::Full,
256        additional_yaml_paths: &[],
257        env_var_override: None,
258        used_by: &[structs::TRACE_OBFUSCATION_CONFIGURATION],
259        value_type_override: None,
260        test_json: None,
261    };
262
263    /// `apm_config.obfuscation.sql.keep_sql_alias`
264    CONFIG_SQL_KEEP_SQL_ALIAS = SalukiAnnotation {
265        schema: &SQL_KEEP_ALIAS,
266        support_level: SupportLevel::Full,
267        additional_yaml_paths: &[],
268        env_var_override: None,
269        used_by: &[structs::TRACE_OBFUSCATION_CONFIGURATION],
270        value_type_override: None,
271        test_json: None,
272    };
273
274    /// `apm_config.obfuscation.sql.replace_digits`
275    CONFIG_SQL_REPLACE_DIGITS = SalukiAnnotation {
276        schema: &SQL_REPLACE_DIGITS,
277        support_level: SupportLevel::Full,
278        additional_yaml_paths: &[],
279        env_var_override: None,
280        used_by: &[structs::TRACE_OBFUSCATION_CONFIGURATION],
281        value_type_override: None,
282        test_json: None,
283    };
284
285    /// `apm_config.obfuscation.sql.table_names`
286    CONFIG_SQL_TABLE_NAMES = SalukiAnnotation {
287        schema: &SQL_TABLE_NAMES,
288        support_level: SupportLevel::Full,
289        additional_yaml_paths: &[],
290        env_var_override: None,
291        used_by: &[structs::TRACE_OBFUSCATION_CONFIGURATION],
292        value_type_override: None,
293        test_json: None,
294    };
295
296    /// `apm_config.obfuscation.valkey.enabled`
297    CONFIG_VALKEY_ENABLED = SalukiAnnotation {
298        schema: &schema::APM_CONFIG_OBFUSCATION_VALKEY_ENABLED,
299        support_level: SupportLevel::Full,
300        additional_yaml_paths: &[],
301        env_var_override: None,
302        used_by: &[structs::TRACE_OBFUSCATION_CONFIGURATION],
303        value_type_override: None,
304        test_json: Some("true"),
305    };
306
307    /// `apm_config.obfuscation.valkey.remove_all_args`
308    CONFIG_VALKEY_REMOVE_ALL_ARGS = SalukiAnnotation {
309        schema: &schema::APM_CONFIG_OBFUSCATION_VALKEY_REMOVE_ALL_ARGS,
310        support_level: SupportLevel::Full,
311        additional_yaml_paths: &[],
312        env_var_override: None,
313        used_by: &[structs::TRACE_OBFUSCATION_CONFIGURATION],
314        value_type_override: None,
315        test_json: None,
316    };
317}