bullet_train-outgoing_webhooks 1.2.4 → 1.2.5

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: 6be4e0d5f7f4402a856328977644650feed3518bda7416ffccdb37daee3af9e5
4
- data.tar.gz: 489154f44092593888ac060b6b9c1f854e75b5d97cda359e3e3cca3bd658a869
3
+ metadata.gz: e8374fc77da7bb26e3f82e7b38f7324fac6b5e817a285810e57c61c596a13a8e
4
+ data.tar.gz: f508d273562d3c44b0792f70e4ceb4730e301f77d338f4af43d343d41869d10b
5
5
  SHA512:
6
- metadata.gz: df4f726e66ff41bf55013e7080b90393ad246b6ea9294747a1c2d8260c060f0678be3b880ac67442aeb6705bcf5c0939f32791352cda3e8ae782ad274396a90b
7
- data.tar.gz: e583f36d727b71c1d5e919773140033809ce34477255fad81b18449e319b2352c75c41b05f6cdf4b648ccd81fce619200baa39a13bc86c4a6d7e35d9ac1c2201
6
+ metadata.gz: 959cacc6c161f66a9910a512810592aba4a38f99bfad0b60f1b37932d90cf6b6deb261d64d8a3eebf96d30840b9a7970b8f9c90e981e61005ac38dfcc8c6f0e6
7
+ data.tar.gz: 42df3deb39cdc68862cf1aeaf444940bf182f704badaeedfff5f6cf318a31a9e292c57d4fb13584b091586532653bf5a9735f09fdf6a8d4854a502cc3c34432e
@@ -41,8 +41,10 @@ class Api::V1::Webhooks::Outgoing::EndpointsController < Api::V1::ApplicationCon
41
41
  *permitted_fields,
42
42
  :url,
43
43
  :name,
44
+ :scaffolding_absolutely_abstract_creative_concept_id,
44
45
  # 🚅 super scaffolding will insert new fields above this line.
45
46
  *permitted_arrays,
47
+ event_type_ids: [],
46
48
  # 🚅 super scaffolding will insert new arrays above this line.
47
49
  )
48
50
 
@@ -31,13 +31,21 @@ module Webhooks::Outgoing::DeliveryAttemptSupport
31
31
  def attempt
32
32
  uri = URI.parse(delivery.endpoint_url)
33
33
 
34
- unless allowed_uri?(uri)
35
- self.response_code = 0
36
- self.error_message = "URI is not allowed: " + uri
37
- return false
34
+ if BulletTrain::OutgoingWebhooks.advanced_hostname_security
35
+ unless allowed_uri?(uri)
36
+ self.response_code = 0
37
+ self.error_message = "URI is not allowed: " + uri
38
+ return false
39
+ end
40
+ end
41
+
42
+ hostname = if BulletTrain::OutgoingWebhooks.advanced_hostname_security
43
+ resolve_ip_from_authoritative(uri.hostname.downcase)
44
+ else
45
+ uri.hostname.downcase
38
46
  end
39
47
 
40
- http = Net::HTTP.new(resolve_ip_from_authoritative(uri.hostname.downcase), uri.port)
48
+ http = Net::HTTP.new(hostname, uri.port)
41
49
  http.use_ssl = true if uri.scheme == "https"
42
50
  request = Net::HTTP::Post.new(uri.path)
43
51
  request.add_field("Host", uri.host)
@@ -30,11 +30,11 @@ module Webhooks::Outgoing::EventSupport
30
30
  def endpoints
31
31
  endpoints = send(BulletTrain::OutgoingWebhooks.parent_association).webhooks_outgoing_endpoints.listening_for_event_type_id(event_type_id)
32
32
 
33
- case self.class.name
33
+ case subject_type
34
34
  when "Scaffolding::AbsolutelyAbstract::CreativeConcept"
35
- endpoints.where(scaffolding_absolutely_abstract_creative_concept_id: [object.id, nil])
35
+ endpoints.where(scaffolding_absolutely_abstract_creative_concept_id: [subject.id, nil])
36
36
  when "Scaffolding::CompletelyConcrete::TangibleThing"
37
- endpoints.where(scaffolding_absolutely_abstract_creative_concept_id: [object.absolutely_abstract_creative_concept_id, nil])
37
+ endpoints.where(scaffolding_absolutely_abstract_creative_concept_id: [subject.absolutely_abstract_creative_concept_id, nil])
38
38
  else
39
39
  endpoints
40
40
  end
@@ -4,10 +4,10 @@
4
4
  <% with_field_settings form: form do %>
5
5
  <%= render 'shared/fields/text_field', method: :name, options: {autofocus: true} %>
6
6
  <%= render 'shared/fields/text_field', method: :url %>
7
- <%= render 'shared/fields/super_select', method: :scaffolding_absolutely_abstract_creative_concept_id,
8
- choices: [['None', '']] + @endpoint.creative_concepts.map { |event_type| [event_type.name, event_type.id] }, other_options: {search: true} %>
9
7
  <%= render 'shared/fields/super_select', method: :event_type_ids, html_options: {multiple: true},
10
- choices: @endpoint.valid_event_types.map { |event_type| [event_type.label_string, event_type.id] } %>
8
+ choices: @endpoint.valid_event_types.map { |event_type| [event_type.label_string, event_type.id] } %>
9
+ <%= render 'shared/fields/super_select', method: :scaffolding_absolutely_abstract_creative_concept_id,
10
+ choices: [['None', '']] + @endpoint.creative_concepts.map { |event_type| [event_type.name, event_type.id] }, other_options: {search: true} %>
11
11
  <%# 🚅 super scaffolding will insert new fields above this line. %>
12
12
  <% end %>
13
13
 
@@ -12,6 +12,7 @@
12
12
  <% with_attribute_settings object: @endpoint, strategy: :label do %>
13
13
  <%= render 'shared/attributes/text', attribute: :name %>
14
14
  <%= render 'shared/attributes/code', attribute: :url %>
15
+
15
16
  <% # TODO We should make the `has_many` attribute partial configurable enough to handle this use case. %>
16
17
  <%= render 'shared/attributes/attribute', attribute: :event_types do %>
17
18
  <% if @endpoint.event_type_ids.any? %>
@@ -25,6 +26,8 @@
25
26
  <%= t('webhooks/outgoing/endpoints.fields.event_types.all') %>
26
27
  <% end %>
27
28
  <% end %>
29
+
30
+ <%= render 'shared/attributes/belongs_to', attribute: :scaffolding_absolutely_abstract_creative_concept %>
28
31
  <%# 🚅 super scaffolding will insert new fields above this line. %>
29
32
  <% end %>
30
33
  <% end %>
@@ -46,11 +46,12 @@ en:
46
46
  all: All Events
47
47
  event_types: *event_types
48
48
 
49
- scaffolding_absolutely_abstract_creative_concept_id:
50
- _: &scaffolding_absolutely_abstract_creative_concept_id Creative Concept
49
+ scaffolding_absolutely_abstract_creative_concept_id: &scaffolding_absolutely_abstract_creative_concept
50
+ _: &scaffolding_absolutely_abstract_creative_concept_id Within Creative Concept
51
51
  label: *scaffolding_absolutely_abstract_creative_concept_id
52
52
  heading: *scaffolding_absolutely_abstract_creative_concept_id
53
- placeholder: "Type your response here"
53
+
54
+ scaffolding_absolutely_abstract_creative_concept: *scaffolding_absolutely_abstract_creative_concept
54
55
 
55
56
  # 🚅 super scaffolding will insert new fields above this line.
56
57
  created_at:
@@ -1,5 +1,5 @@
1
1
  module BulletTrain
2
2
  module OutgoingWebhooks
3
- VERSION = "1.2.4"
3
+ VERSION = "1.2.5"
4
4
  end
5
5
  end
@@ -9,6 +9,7 @@ module BulletTrain
9
9
 
10
10
  mattr_accessor :parent_class, default: default_for(BulletTrain, :parent_class, "Team")
11
11
  mattr_accessor :base_class, default: default_for(BulletTrain, :base_class, "ApplicationRecord")
12
+ mattr_accessor :advanced_hostname_security, default: false
12
13
 
13
14
  def self.parent_association
14
15
  parent_class.underscore.to_sym
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bullet_train-outgoing_webhooks
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.4
4
+ version: 1.2.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Andrew Culver
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-12-17 00:00:00.000000000 Z
11
+ date: 2022-12-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: standard