Module: SolidObjects::ComponentToken

Defined in:
lib/solid_objects/component_token.rb,
sig/generated/lib/solid_objects/component_token.rbs

Constant Summary collapse

PURPOSE =

Returns:

  • (::String)
"solid_objects.actor_component"
MAXIMUM_TOKEN_BYTES =

Returns:

  • (::Integer)
16_384
MAXIMUM_DEPENDENCIES =

Returns:

  • (::Integer)
50

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.generate(reference:, component_name:, dependencies:, instance_id:, revision:, refresh_path:) ⇒ Object

RBS:

  • (reference: Reference, component_name: String, dependencies: Array[String], instance_id: Integer, revision: Integer, refresh_path: String) -> String



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

RBS:

  • (String) -> Hash[String, untyped]



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?.generateString

RBS:

  • (reference: Reference, component_name: String, dependencies: Array[String], instance_id: Integer, revision: Integer, refresh_path: String) -> String

Parameters:

  • reference: (Reference)
  • component_name: (String)
  • dependencies: (Array[String])
  • instance_id: (Integer)
  • revision: (Integer)
  • refresh_path: (String)

Returns:

  • (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_secretString

RBS:

  • () -> String

Returns:

  • (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.

RBS:

  • (String) -> void

Parameters:

  • (String)


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.

RBS:

  • (Array[untyped]) -> void

Parameters:

  • (Array[untyped])


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]

RBS:

  • (Hash[String, untyped]) -> Hash[String, untyped]

Parameters:

  • (Hash[String, untyped])

Returns:

  • (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.

RBS:

  • (String) -> void

Parameters:

  • (String)


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.

RBS:

  • (Integer, Integer) -> void

Parameters:

  • (Integer)
  • (Integer)


27
# File 'sig/generated/lib/solid_objects/component_token.rbs', line 27

def self?.validate_revision!: (Integer, Integer) -> void

#self?.verifierActiveSupport::MessageVerifier

RBS:

  • () -> ActiveSupport::MessageVerifier

Returns:



33
# File 'sig/generated/lib/solid_objects/component_token.rbs', line 33

def self?.verifier: () -> ActiveSupport::MessageVerifier

#self?.verifyHash[String, untyped]

RBS:

  • (String) -> Hash[String, untyped]

Parameters:

  • (String)

Returns:

  • (Hash[String, untyped])


15
# File 'sig/generated/lib/solid_objects/component_token.rbs', line 15

def self?.verify: (String) -> Hash[String, untyped]