bullet_train-outgoing_webhooks 1.2.4 → 1.2.5

Sign up to get free protection for your applications and to get access to all the features.
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