Module: SolidObjects::ComponentToken
- Defined in:
- lib/solid_objects/component_token.rb,
sig/generated/lib/solid_objects/component_token.rbs
Constant Summary collapse
- PURPOSE =
"solid_objects.actor_component"- MAXIMUM_TOKEN_BYTES =
16_384- MAXIMUM_DEPENDENCIES =
50
Class Method Summary collapse
- .generate(reference:, component_name:, dependencies:, instance_id:, revision:, refresh_path:) ⇒ Object
- .verify(token) ⇒ Object
Instance Method Summary collapse
- #self?.generate ⇒ String
- #self?.signing_secret ⇒ String
- #self?.validate_component_name! ⇒ void
- #self?.validate_dependencies! ⇒ void
- #self?.validate_payload! ⇒ Hash[String, untyped]
- #self?.validate_refresh_path! ⇒ void
- #self?.validate_revision! ⇒ void
- #self?.verifier ⇒ ActiveSupport::MessageVerifier
- #self?.verify ⇒ Hash[String, untyped]
Class Method Details
.generate(reference:, component_name:, dependencies:, instance_id:, revision:, refresh_path:) ⇒ Object
14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
# File 'lib/solid_objects/component_token.rb', line 14 def generate( reference:, component_name:, dependencies:, instance_id:, revision:, refresh_path: ) payload = { "actor_type" => reference.actor_type, "actor_id" => reference.actor_id, "component_name" => component_name, "dependencies" => dependencies, "instance_id" => instance_id, "revision" => revision, "refresh_path" => refresh_path } validate_payload!(payload) verifier.generate(payload, purpose: PURPOSE).tap do |token| raise InvalidComponentToken, "component token is too large" if token.bytesize > MAXIMUM_TOKEN_BYTES end end |
.verify(token) ⇒ Object
38 39 40 41 42 43 44 45 46 47 48 |
# File 'lib/solid_objects/component_token.rb', line 38 def verify(token) unless token.is_a?(String) && token.bytesize <= MAXIMUM_TOKEN_BYTES raise InvalidComponentToken, "invalid actor component token" end payload = verifier.verified(token, purpose: PURPOSE) validate_payload!(payload) payload rescue ActiveSupport::MessageVerifier::InvalidSignature raise InvalidComponentToken, "invalid actor component token" end |
Instance Method Details
#self?.generate ⇒ String
12 |
# File 'sig/generated/lib/solid_objects/component_token.rbs', line 12
def self?.generate: (reference: Reference, component_name: String, dependencies: Array[String], instance_id: Integer, revision: Integer, refresh_path: String) -> String
|
#self?.signing_secret ⇒ String
36 |
# File 'sig/generated/lib/solid_objects/component_token.rbs', line 36
def self?.signing_secret: () -> String
|
#self?.validate_component_name! ⇒ void
This method returns an undefined value.
21 |
# File 'sig/generated/lib/solid_objects/component_token.rbs', line 21
def self?.validate_component_name!: (String) -> void
|
#self?.validate_dependencies! ⇒ void
This method returns an undefined value.
24 |
# File 'sig/generated/lib/solid_objects/component_token.rbs', line 24
def self?.validate_dependencies!: (Array[untyped]) -> void
|
#self?.validate_payload! ⇒ Hash[String, untyped]
18 |
# File 'sig/generated/lib/solid_objects/component_token.rbs', line 18
def self?.validate_payload!: (Hash[String, untyped]) -> Hash[String, untyped]
|
#self?.validate_refresh_path! ⇒ void
This method returns an undefined value.
30 |
# File 'sig/generated/lib/solid_objects/component_token.rbs', line 30
def self?.validate_refresh_path!: (String) -> void
|
#self?.validate_revision! ⇒ void
This method returns an undefined value.
27 |
# File 'sig/generated/lib/solid_objects/component_token.rbs', line 27
def self?.validate_revision!: (Integer, Integer) -> void
|
#self?.verifier ⇒ ActiveSupport::MessageVerifier
33 |
# File 'sig/generated/lib/solid_objects/component_token.rbs', line 33
def self?.verifier: () -> ActiveSupport::MessageVerifier
|
#self?.verify ⇒ Hash[String, untyped]
15 |
# File 'sig/generated/lib/solid_objects/component_token.rbs', line 15
def self?.verify: (String) -> Hash[String, untyped]
|