zendesk_apps_support 4.45.0 → 4.46.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 8b8758656a8905a32b83c582ea409106a523ae0da29e2d27adab601b1b018600
4
- data.tar.gz: 0b558941ca135311562c1ce19d0de5f7b601e7632aa52b3bd70034602869d5c0
3
+ metadata.gz: b48dcaba8c32f505c72149754b65c91bdded1dfb2ce877e7bd48fcae02bcbe90
4
+ data.tar.gz: daa2d477594e277c7572194b7c72af71f70f5ffbd3536d1ad9a816ad2e676604
5
5
  SHA512:
6
- metadata.gz: ef0392d1072ac538bf2f5aa052a68b9690efa985ad97e8780457dff4cabd75d7a30322b29f7f06b6106e3e34c51e3a759835a04091b27fcd81950527b1d8afd9
7
- data.tar.gz: ecc883ab33aa84393276ef0c67244ba65e876a342252b867ec2ff2eda6ac4dfb013bd9351a19247f5ad9071dd44b08a0bc704cba1c73af7d3ec781038305ceb7
6
+ metadata.gz: 96042b642bdcf700b5b1995385898972c8a10d4bb9a392f5d22d79f866d4e683a72f09eea1a8aec32558820868b98a47a18808e4aa495cc4aecd9db392904542
7
+ data.tar.gz: b566b7972ed3d819ff9d82f30151fb31c08ca81143a796fa0eecb8e98f48d2ce4a34f4972455ea2fcd88c72bc629e4dc1f7cff2bb7c4bb03a706758a68b02a34
@@ -188,6 +188,9 @@ en:
188
188
  property of trigger %{trigger_key} (object: %{object_key}) contains
189
189
  a placeholder %{property_value}. Placeholders are not allowed in trigger
190
190
  definitions.'
191
+ setting_placeholders_not_allowed_in_cov2_requirements: The requirements.json
192
+ file contains a setting placeholder in the custom_objects_v2 requirements.
193
+ Setting placeholders are not allowed in custom_objects_v2 requirements.
191
194
  missing_required_fields: 'Missing required fields in requirements.json:
192
195
  "%{field}" is required in "%{identifier}"'
193
196
  duplicate_requirements:
@@ -265,14 +268,15 @@ en:
265
268
  do not match products in translations (%{translation_products})
266
269
  insecure_token_parameter_in_manifest: 'Make sure to set secure to true
267
270
  when using keys in Settings. Learn more: %{link}'
268
- secure_parameters_with_no_scopes_in_manifest: 'The scopes property is not configured for parameter(s): %{params}.
269
- This may cause token exposure vulnerabilities. Learn about: %{link}'
270
271
  password_parameter_deprecated: 'Password parameter type is deprecated
271
272
  and will not be accepted in the future. Use Basic Access Authentication
272
273
  instead. Learn more: %{link}.'
273
274
  default_secure_or_hidden_parameter_in_manifest: Default values for secure
274
275
  or hidden parameters are not stored securely. Be sure to review them
275
276
  and confirm they do not contain sensitive data
277
+ secure_parameters_with_no_scopes_in_manifest: 'The scopes property is
278
+ not configured for parameter(s): %{params}. This may cause token exposure
279
+ vulnerabilities. Learn about: %{link}'
276
280
  stylesheet_error: 'Sass error: %{sass_error}'
277
281
  invalid_type_parameter:
278
282
  one: "%{invalid_types} is an invalid parameter type."
@@ -315,16 +315,24 @@ parts:
315
315
  title: 'App builder job: requirements file contains placeholder in custom objects v2 object property. Placeholders are not allowed in object definitions. Leave requirements.json as is (do not translate). Do not translate "objects" as it is part of schema.'
316
316
  value: 'The requirements.json file contains a placeholder in the objects array. The %{property_name} property of object %{object_key} contains a placeholder %{property_value}. Placeholders are not allowed in object definitions.'
317
317
  screenshot: "https://drive.google.com/file/d/1UYrBruLjZ27WoQ40sWXqd07DNwtblg2W/view?usp=sharing"
318
+ obsolete: "2026-02-05"
318
319
  - translation:
319
320
  key: "txt.apps.admin.error.app_build.cov2_field_setting_placeholder_not_allowed"
320
321
  title: 'App builder job: requirements file contains placeholder in custom objects v2 field property. Placeholders are not allowed in field definitions. Leave requirements.json as is (do not translate). Do not translate "object_fields" as it is part of schema.'
321
322
  value: 'The requirements.json file contains a placeholder in the object_fields array. The %{property_name} property of field %{field_key} (object: %{object_key}) contains a placeholder %{property_value}. Placeholders are not allowed in field definitions.'
322
323
  screenshot: "https://drive.google.com/file/d/1Bprc1VNv8kmzgbNeQn-noU0ItSci2obm/view?usp=sharing"
324
+ obsolete: "2026-02-05"
323
325
  - translation:
324
326
  key: "txt.apps.admin.error.app_build.cov2_trigger_setting_placeholder_not_allowed"
325
327
  title: 'App builder job: requirements file contains placeholder in custom objects v2 trigger identifier. Placeholders are not allowed in trigger identifiers. Leave requirements.json as is (do not translate). Do not translate "object_triggers" as it is part of schema.'
326
328
  value: 'The requirements.json file contains a placeholder in the object_triggers array. The %{property_name} property of trigger %{trigger_key} (object: %{object_key}) contains a placeholder %{property_value}. Placeholders are not allowed in trigger definitions.'
327
329
  screenshot: "https://drive.google.com/file/d/1FwnzKj9srIDTxtk-WryA3xHTXGD7uS-W/view?usp=sharing"
330
+ obsolete: "2026-02-05"
331
+ - translation:
332
+ key: "txt.apps.admin.error.app_build.setting_placeholders_not_allowed_in_cov2_requirements"
333
+ title: 'App builder job: requirements file contains placeholder in custom objects v2 requirements. Placeholders are not allowed in custom objects v2 definitions. Leave requirements.json, custom_objects_v2 as is (do not translate)'
334
+ value: 'The requirements.json file contains a setting placeholder in the custom_objects_v2 requirements. Setting placeholders are not allowed in custom_objects_v2 requirements.'
335
+ screenshot: "https://drive.google.com/file/d/18Q9bTUO3gaSg2O0wZzn0OehE5SqmR49e/view?usp=sharing"
328
336
  - translation:
329
337
  key: "txt.apps.admin.error.app_build.missing_required_fields"
330
338
  title: "App builder job: required key missing in requirements, e.g. \"title\" is required in \"my_custom_email_target\""
@@ -669,4 +677,4 @@ parts:
669
677
  title: "Validation message to indicate missing scopes field in manifest's secure parameter.
670
678
  Do not translate 'scopes'. %{params} refers to secure parameters with no scopes configured.
671
679
  Scopes in manifest refers to https://developer.zendesk.com/documentation/apps/getting-started/setting-up-new-apps/#scopes"
672
- value: "The scopes property is not configured for parameter(s): %{params}. This may cause token exposure vulnerabilities. Learn about: %{link}"
680
+ value: "The scopes property is not configured for parameter(s): %{params}. This may cause token exposure vulnerabilities. Learn about: %{link}"
@@ -12,11 +12,15 @@ module ZendeskAppsSupport
12
12
  include Constants
13
13
  include ValidationHelpers
14
14
 
15
+ SETTING_PLACEHOLDER_REGEXP = /\{\{\s*setting\.([\w.-]+)\s*\}\}/
16
+
15
17
  def call(requirements)
16
18
  structural_errors = validate_overall_requirements_structure(requirements)
17
19
  return structural_errors if structural_errors.any?
18
20
 
19
- payload_size_errors = validate_payload_size(requirements)
21
+ requirements_json = requirements.to_json
22
+
23
+ payload_size_errors = validate_payload_size(requirements_json)
20
24
  return payload_size_errors if payload_size_errors.any?
21
25
 
22
26
  limits_and_schema_errors = [
@@ -26,18 +30,27 @@ module ZendeskAppsSupport
26
30
 
27
31
  return limits_and_schema_errors if limits_and_schema_errors.any?
28
32
 
33
+ setting_placeholder_errors = validate_setting_placeholders(requirements_json)
34
+ return setting_placeholder_errors if setting_placeholder_errors.any?
35
+
29
36
  validate_object_references(requirements)
30
37
  end
31
38
 
32
39
  private
33
40
 
34
- def validate_payload_size(requirements)
35
- payload_size = requirements.to_json.bytesize
41
+ def validate_payload_size(requirements_json)
42
+ payload_size = requirements_json.bytesize
36
43
  return [] if payload_size <= MAX_PAYLOAD_SIZE_BYTES
37
44
 
38
45
  [ValidationError.new(:excessive_cov2_payload_size)]
39
46
  end
40
47
 
48
+ def validate_setting_placeholders(requirements_json)
49
+ return [] unless requirements_json.match?(SETTING_PLACEHOLDER_REGEXP)
50
+
51
+ [ValidationError.new(:setting_placeholders_not_allowed_in_cov2_requirements)]
52
+ end
53
+
41
54
  def validate_overall_requirements_structure(requirements)
42
55
  errors = validate_structural_requirements(requirements)
43
56
  return errors unless errors.empty?
@@ -1,3 +1,3 @@
1
1
  module ZendeskAppsSupport
2
- VERSION = "4.45.0"
2
+ VERSION = '4.46.0'
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: zendesk_apps_support
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.45.0
4
+ version: 4.46.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - James A. Rosen
@@ -11,7 +11,7 @@ authors:
11
11
  autorequire:
12
12
  bindir: bin
13
13
  cert_chain: []
14
- date: 2025-12-04 00:00:00.000000000 Z
14
+ date: 2025-12-09 00:00:00.000000000 Z
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
17
17
  name: i18n